diff --git a/cosmogramme/php/_init.php b/cosmogramme/php/_init.php
index 706b1f6826245c7844a5dc8c4a8045e789bdff20..3b0ecbc274b1e61f7ae8d01afdb6f9d3189e1952 100644
--- a/cosmogramme/php/_init.php
+++ b/cosmogramme/php/_init.php
@@ -6,6 +6,17 @@ define("APPLI","cosmogramme");
 define("COSMOPATH", "/var/www/html/vhosts/opac2/www/htdocs");
 define("CRLF", chr(13) . chr(10));
 define("BR","<br />");
+define('COM_PERGAME', 1);
+define('COM_OPSYS', 2);
+define('COM_Z3950', 3);
+define('COM_VSMART', 4);
+define('COM_KOHA', 5);
+define('COM_CARTHAME', 6);
+define('COM_NANOOK', 7);
+define('COM_ORPHEE', 8);
+define('COM_MICROBIB', 9);
+define('COM_BIBLIXNET', 10);
+define('COM_DYNIX', 11);
 
 if (!function_exists('xdebug_break')) {
 	function xdebug_break(){};
diff --git a/cosmogramme/php/config_integrations.php b/cosmogramme/php/config_integrations.php
index 415eb1b22f29a99704e21c4ff618ea3c795a3266..ea754766e20c4408cdbe9d2e01ebdea4288f5f34 100644
--- a/cosmogramme/php/config_integrations.php
+++ b/cosmogramme/php/config_integrations.php
@@ -29,17 +29,6 @@ require_once( "fonctions/objets_saisie.php");
 require_once("classe_maj_auto.php");
 require_once("classe_profil_donnees.php");
 
-define('COM_PERGAME', 1);
-define('COM_OPSYS', 2);
-define('COM_Z3950', 3);
-define('COM_VSMART', 4);
-define('COM_KOHA', 5);
-define('COM_CARTHAME', 6);
-define('COM_NANOOK', 7);
-define('COM_ORPHEE', 8);
-define('COM_MICROBIB', 9);
-define('COM_BIBLIXNET', 10);
-define('COM_DYNIX', 11);
 
 $maj=new maj_auto();
 $oProfil=new profil_donnees();
@@ -237,67 +226,5 @@ function getComboTypeDoc($valeur)
 	return $champ_valeur;
 }
 
-// Blocs des parametres de communication avec le sigb
-function getBlocsParams($id_bib,$type,$valeurs)
-{
-	$valeurs=unserialize($valeurs);
-	$types=getCodifsVariable("comm_sigb");
-	foreach($types as $item)
-	{
-		$clef=$item["code"];
-		if($clef == $type) $display="block"; else $display="none";
-		$bloc.='<div id="comm_'.$id_bib.'_'.$clef.'" style="display:'.$display.'">';
-		
-		// Parametres en fonction du type
-		unset($params);
-		unset($champs_params);
-		$titres[0]="Paramètres";
-
-		if (in_array($clef, array(COM_VSMART, COM_KOHA, COM_CARTHAME, COM_NANOOK, COM_ORPHEE, COM_MICROBIB, COM_BIBLIXNET))) 
-			$champs_params[0]=array("url_serveur");
-
-		if ($clef==COM_KOHA)  $champs_params[0]=["url_serveur","Interdire_reservation_doc_dispo"];
-		if ($clef==COM_OPSYS) $champs_params[0]=array("url_serveur", "catalogue_web");
-
-		if ($clef==COM_DYNIX) $champs_params[0]=array("url_serveur", "client_id");
-
-		if($clef==COM_Z3950) $champs_params[0]=array("url_serveur","login","password","nom_base");			// Serveur z39.50
-
-		if($clef==COM_PERGAME) //pergame
-		{
-			$titres=array("Règles de réservations","Règles de prolongations");
-			//$aide=array(BR."0=non,  1=oui");
-			$champs_params[0]=array("Autoriser_docs_disponibles","Max_par_carte","Max_par_document");
-			$champs_params[1]=array("Autoriser_prolongations","Interdire_si_reservation","Nombre_max_par_document","Duree_en_jours","Anteriorite_max_en_jours");
-		}
-		
-		// valorisation
-		for($i=0;$i<count($champs_params);$i++)
-		{
-			if($champs_params[$i])
-			{
-				$num_aide=0;
-				$bloc.='<div style="margin-top:5px"><b>'.$titres[$i].'</b></div>';
-				$bloc.='<table>';
-				foreach($champs_params[$i] as $param)
-				{
-					if($clef == $type) $valeur=$valeurs[$param]; else $valeur="";
-					$bloc.='<tr><td class="form">'.$param.$aide[$num_aide].'</td><td class="form">'.getChamp("comp_".$clef."_".$param,$valeur,30).'</td></tr>';
-					$num_aide++;
-				}
-				$bloc.='</table>';
-
-				if ($clef==COM_NANOOK)
-				{
-					$bloc .= "Format(0.8.7): ip:port/chemin_tomcat/ilsdi/nom_base <br/>";
-					$bloc .= "Ex: 62.193.55.152:8080/afi_NanookWs/ilsdi/NANOOK <br/>";
-					$bloc .= sprintf("<a target='_blank' href='tester_comm_nanook.php?url=%s'>Tester la communication</a>",htmlspecialchars($valeurs['url_serveur']));
-				}
-			}
-		}
-		$bloc.='</div>';
-	}
-	return $bloc;
-}
 
 ?>
\ No newline at end of file
diff --git a/cosmogramme/php/fonctions/objets_saisie.php b/cosmogramme/php/fonctions/objets_saisie.php
index d2248b4b72f15ed7884c4330814f5d02f341b0b0..057d6a7c8308aae29c901cee59d7ab0ad204a4cc 100644
--- a/cosmogramme/php/fonctions/objets_saisie.php
+++ b/cosmogramme/php/fonctions/objets_saisie.php
@@ -83,4 +83,89 @@ function getTextarea($id,$valeur,$largeur,$hauteur)
 	$champ.=$valeur.'</textarea>';
 	return $champ;
 }
+
+
+// Blocs des parametres de communication avec le sigb
+function getBlocsParams($id_bib, $type, $valeurs)
+{
+	$valeurs=unserialize($valeurs);
+	$types=getCodifsVariable("comm_sigb");
+
+	foreach($types as $item)
+	{
+		$clef=$item["code"];
+		if($clef == $type) $display="block"; else $display="none";
+		$bloc.='<div id="comm_'.$id_bib.'_'.$clef.'" style="display:'.$display.'">';
+		
+		// Parametres en fonction du type
+		unset($params);
+		unset($champs_params);
+		$titres[0]="Paramètres";
+
+		if (in_array($clef, array(COM_VSMART, COM_KOHA, COM_CARTHAME, COM_NANOOK, COM_ORPHEE, COM_MICROBIB, COM_BIBLIXNET))) 
+			$champs_params[0]=array("url_serveur");
+
+		if ($clef==COM_KOHA)  
+			$champs_params[0]=[
+				"url_serveur",
+				"Interdire_reservation_doc_dispo",
+				["Codification_disponibilites" => function($id, $valeur){return getTextArea($id, $valeur, 30, 20);} ]
+				];
+
+		if ($clef==COM_OPSYS) $champs_params[0]=array("url_serveur", "catalogue_web");
+
+		if ($clef==COM_DYNIX) $champs_params[0]=array("url_serveur", "client_id");
+
+		if($clef==COM_Z3950) $champs_params[0]=array("url_serveur","login","password","nom_base");			// Serveur z39.50
+
+		if($clef==COM_PERGAME) //pergame
+		{
+			$titres=array("Règles de réservations","Règles de prolongations");
+			//$aide=array(BR."0=non,  1=oui");
+			$champs_params[0]=array("Autoriser_docs_disponibles","Max_par_carte","Max_par_document");
+			$champs_params[1]=array("Autoriser_prolongations","Interdire_si_reservation","Nombre_max_par_document","Duree_en_jours","Anteriorite_max_en_jours");
+		}
+		
+
+		// valorisation
+		$defaultInputRenderer = function($id, $valeur) {
+			return getChamp($id, $valeur,	30);
+		};
+
+		for($i=0;$i<count($champs_params);$i++)
+		{
+			if($champs_params[$i])
+			{
+				$num_aide=0;
+				$bloc.='<div style="margin-top:5px"><b>'.$titres[$i].'</b></div>';
+				$bloc.='<table>';
+				foreach($champs_params[$i] as $param)	{
+					$param_name = is_array($param) ? array_keys($param)[0] : $param;
+					$renderer = is_array($param) ? array_values($param)[0] : $defaultInputRenderer;
+					$valeur = $clef == $type ? $valeurs[$param_name] : '';
+
+					$bloc.=
+						'<tr>'
+						.'<td class="form">'.$param_name.$aide[$num_aide].'</td>'
+						.'<td class="form">'
+						.$renderer("comp_".$clef."_".$param_name,$valeur)
+						.'</td>'
+						.'</tr>';
+
+					$num_aide++;
+				}
+				$bloc.='</table>';
+
+				if ($clef==COM_NANOOK)
+				{
+					$bloc .= "Format(0.8.7): ip:port/chemin_tomcat/ilsdi/nom_base <br/>";
+					$bloc .= "Ex: 62.193.55.152:8080/afi_NanookWs/ilsdi/NANOOK <br/>";
+					$bloc .= sprintf("<a target='_blank' href='tester_comm_nanook.php?url=%s'>Tester la communication</a>",htmlspecialchars($valeurs['url_serveur']));
+				}
+			}
+		}
+		$bloc.='</div>';
+	}
+	return $bloc;
+}
 ?>
\ No newline at end of file