From da3b1e0b71b522d06ee8fce8ba568190cf4d52d7 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Mon, 15 May 2006 12:39:01 +0000
Subject: [PATCH] =?UTF-8?q?Comme=20[6382]=C2=A0mais=20pour=20l'espace=20pu?=
 =?UTF-8?q?blic:=20retrait=20de=20scories=20diverses=20ggrace=20a=20error?=
 =?UTF-8?q?=5Freporting(E=5FALL).=20Il=20reste=20encore=20des=20Wargings?=
 =?UTF-8?q?=20cela=20dit?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/balise/formulaire_admin.php |  5 +++--
 ecrire/inc/filtres.php             |  2 +-
 ecrire/inc/sax.php                 |  4 ++--
 ecrire/inc/utils.php               |  4 ++--
 ecrire/public.php                  |  2 +-
 ecrire/public/admin.php            |  2 +-
 ecrire/public/assembler.php        | 23 +++++++++------------
 ecrire/public/cacher.php           | 13 ++++++------
 ecrire/public/compiler.php         | 33 ++++++++++++++++--------------
 ecrire/public/composer.php         |  2 +-
 ecrire/public/criteres.php         |  2 +-
 ecrire/public/debug.php            |  2 +-
 ecrire/public/interfaces.php       |  2 +-
 ecrire/public/parametrer.php       | 11 ++++++----
 ecrire/public/phraser_html.php     |  4 ++--
 ecrire/public/references.php       | 18 ++++++++--------
 16 files changed, 66 insertions(+), 63 deletions(-)

diff --git a/ecrire/balise/formulaire_admin.php b/ecrire/balise/formulaire_admin.php
index b6c759cb1f..f61a9bcd11 100644
--- a/ecrire/balise/formulaire_admin.php
+++ b/ecrire/balise/formulaire_admin.php
@@ -69,6 +69,7 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
 	}
 
 	// Bouton statistiques
+	$visites = $popularite = $statistiques = '';
 	if ($GLOBALS['meta']["activer_statistiques"] != "non" 
 	AND $id_article
 	AND !$var_preview) {
@@ -109,7 +110,7 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
 	// Pas de "modifier ce..." ? -> donner "acces a l'espace prive"
 	if (!($id_article || $id_rubrique || $id_auteur || $id_breve || $id_mot || $id_syndic))
 		$ecrire = _DIR_RESTREINT_ABS;
-
+	else $ecrire = '';
 	// Bouton "preview" si l'objet demande existe et est previsualisable
 	$preview = false;
 
@@ -146,7 +147,7 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
 			'action' => self(),
 			'preview' => $preview?parametre_url(self(),'var_mode','preview','&'):'',
 			'debug' => $debug,
-			'popularite' => ceil($popularite),
+			'popularite' => ($popularite),
 			'statistiques' => $statistiques,
 			'visites' => $visites,
 			'use_cache' => ($use_cache ? '' : ' *'),
diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 0389cdf10d..d9e03c0585 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -347,7 +347,7 @@ function normaliser_date($date) {
 
 function vider_date($letexte) {
 	if (ereg("^0000-00-00", $letexte)) return;
-	if (ereg("^1970-01-01", $date)) return;	// eviter le bug GMT-1
+	if (ereg("^1970-01-01", $letexte)) return;	// eviter le bug GMT-1
 	return $letexte;
 }
 
diff --git a/ecrire/inc/sax.php b/ecrire/inc/sax.php
index 83602ef1b5..74aa47ada3 100644
--- a/ecrire/inc/sax.php
+++ b/ecrire/inc/sax.php
@@ -24,9 +24,9 @@ function debutElement($parser, $name, $attrs)
   $reperes = &$phraseur_xml->reperes;
   $res = &$phraseur_xml->res;
 
-  $t = $ouvrant[$depth];
+  $t = isset($ouvrant[$depth]) ? $ouvrant[$depth] : ' ';
   // espace initial signifie: deja integree au resultat
-  if ($t && $t[0] != ' ')
+  if ($t[0] != ' ')
     {
       $res .= '<' . $t . '>';
       $ouvrant[$depth] = ' ' . $t;
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index d052987f42..38c8879451 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1098,8 +1098,8 @@ function spip_desinfecte(&$t) {
 function verifier_visiteur() {
 	if (!defined('_DIR_SESSIONS'))
 		define('_DIR_SESSIONS', _DIR_RESTREINT . "data/");
-	if ($_COOKIE['spip_session'] OR
-	($_SERVER['PHP_AUTH_USER']  AND !$GLOBALS['ignore_auth_http'])) {
+	if (isset($_COOKIE['spip_session']) OR
+	(isset($_SERVER['PHP_AUTH_USER'])  AND !$GLOBALS['ignore_auth_http'])) {
 		include_spip('inc/session');
 		verifier_session_visiteur();
 	}
diff --git a/ecrire/public.php b/ecrire/public.php
index 90e1d87b48..399d77ca5c 100644
--- a/ecrire/public.php
+++ b/ecrire/public.php
@@ -78,7 +78,7 @@ if (defined('_INC_PUBLIC')) {
 	$f = charger_fonction('assembler', 'public');
 	$page = $f($fond);
 
-	if ($page['status']) {
+	if (isset($page['status'])) {
 		include_spip('inc/headers');
 		http_status($page['status']);
 	}
diff --git a/ecrire/public/admin.php b/ecrire/public/admin.php
index 5c12ef475f..b0d5333f91 100644
--- a/ecrire/public/admin.php
+++ b/ecrire/public/admin.php
@@ -33,7 +33,7 @@ function affiche_boutons_admin($contenu) {
 		$split = explode($regs[0], $contenu, 2);
 		$contenu = $split[0];
 		$suite = $regs[0].$split[1];
-	}
+	} else $suite ='';
 
 	//
 	// Regler les boutons dans la langue de l'admin (sinon tant pis)
diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php
index 1a961e490a..a40e46146d 100644
--- a/ecrire/public/assembler.php
+++ b/ecrire/public/assembler.php
@@ -24,15 +24,15 @@ function public_assembler_dist($fond) {
 		include_spip('inc/lang');
 		verifier_lang_url();
 	}
-	if ($_GET['lang']) {
+	if (isset($_GET['lang'])) {
 		include_spip('inc/lang');
 		lang_select($_GET['lang']);
 	}
 
 	// Si envoi pour un forum, enregistrer puis rediriger
 
-	if (strlen($_POST['confirmer_forum']) > 0
-	    OR ($GLOBALS['afficher_texte']=='non' AND $_POST['ajouter_mot'])) {
+	if (isset($_POST['confirmer_forum'])
+	OR (isset($_POST['ajouter_mot']) AND $GLOBALS['afficher_texte']=='non')) {
 		$f = charger_fonction('forum_insert', 'inc');
 		redirige_par_entete($f());
 	}
@@ -40,7 +40,7 @@ function public_assembler_dist($fond) {
 	// si signature de petition, l'enregistrer avant d'afficher la page
 	// afin que celle-ci contienne la signature
 
-	if ($_GET['var_confirm']) {
+	if (isset($_GET['var_confirm'])) {
 		include_spip('balise/formulaire_signature');
 		reponse_confirmation($_GET['id_article'], $var_confirm);
 	}
@@ -106,14 +106,14 @@ function assembler_page ($fond) {
 
 	// une perennite valide a meme reponse qu'une requete HEAD
 
-	if ($GLOBALS['HTTP_IF_MODIFIED_SINCE'] AND !$var_mode
+	if (isset($GLOBALS['HTTP_IF_MODIFIED_SINCE']) AND !$var_mode
 	AND $chemin_cache AND !$flag_dynamique) {
 		if (!preg_match(',IIS/,', $_SERVER['SERVER_SOFTWARE'])) {
 			$since = preg_replace('/;.*/', '',
 				$GLOBALS['HTTP_IF_MODIFIED_SINCE']);
 			$since = str_replace('GMT', '', $since);
 			if (trim($since) == http_gmoddate($lastmodified)) {
-				$status = 304;
+				$page['status'] = $status;
 				$headers_only = true;
 			}
 		}
@@ -154,7 +154,7 @@ function assembler_page ($fond) {
 				if (trim($page['texte']) === ''
 				    AND $var_mode != 'debug') {
 					$page = message_erreur_404();
-					$status = 404;
+					$page['status'] = $status;
 					$flag_dynamique = true;
 				}
 	// pas de cache client en mode 'observation (ou si deja indique)
@@ -168,8 +168,7 @@ function assembler_page ($fond) {
 
 	if ($lastmodified)
 		$page['entetes']["Last-Modified"]=http_gmoddate($lastmodified)." GMT";
-	if ($status)
-		$page['status'] = $status;
+		
 
 	return $page;
 }
@@ -213,7 +212,7 @@ function inclure_page($fond, $contexte_inclus, $cache_incluant='') {
 		include_spip('inc/lang');
 		lang_select($lang);
 		$lang_select = true; // pour lang_dselect en sortie
-	}
+	} else $lang_select = false;
 
 	// Une fois le chemin-cache decide, on ajoute la date (et date_redac)
 	// dans le contexte inclus, pour que les criteres {age} etc fonctionnent
@@ -232,7 +231,6 @@ function inclure_page($fond, $contexte_inclus, $cache_incluant='') {
 		if ($chemin_cache) 
 			$fcache($contexte_inclus, $use_cache, $chemin_cache, $page, $lastmodified);
 	}
-
 	$page['lang_select'] = $lang_select;
 
 	return $page;
@@ -250,7 +248,7 @@ function inclure_balise_dynamique($texte, $echo=true, $ligne=0) {
 
 		list($fond, $delainc, $contexte_inclus) = $texte;
 
-		if ((!$contexte_inclus['lang']) AND
+		if ((!isset($contexte_inclus['lang'])) AND
 		($GLOBALS['spip_lang'] != $GLOBALS['meta']['langue_site']))
 			$contexte_inclus['lang'] = $GLOBALS['spip_lang'];
 
@@ -258,7 +256,6 @@ function inclure_balise_dynamique($texte, $echo=true, $ligne=0) {
 		$GLOBALS['delais'] = $delainc;
 		$page = inclure_page($fond, $contexte_inclus);
 		$GLOBALS['delais'] = $d;
-
 		if (is_array($page['entetes']))
 			foreach($page['entetes'] as $k => $v) {
 			  // ceci se discute
diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php
index 3cbf6acba6..a10f86100e 100644
--- a/ecrire/public/cacher.php
+++ b/ecrire/public/cacher.php
@@ -22,6 +22,7 @@ function generer_nom_fichier_cache($contexte) {
 	if ($contexte === NULL) {
 		$fichier_requete = nettoyer_uri();
 	} else {
+		$fichier_requete = '';
 		foreach ($contexte as $var=>$val)
 			$fichier_requete .= "&$var=$val";
 	}
@@ -48,7 +49,7 @@ function generer_nom_fichier_cache($contexte) {
 		. $_SERVER['HTTP_HOST'] . ' '
 		. $GLOBALS['fond'] . ' '
 		. $GLOBALS['dossier_squelettes'] . ' '
-		. $GLOBALS['marqueur']
+		. (isset($GLOBALS['marqueur']) ?  $GLOBALS['marqueur'] : '')
 	);
 	$fichier_cache .= '.'.substr($md_cache, 1, 8);
 
@@ -154,7 +155,8 @@ function cache_valide_autodetermine($chemin_cache, $page, $date) {
 
 	if (!$page) return 1;
 
-	if (strlen($duree = $page['entetes']['X-Spip-Cache'])) {
+	if (isset($page['entetes']['X-Spip-Cache'])) {
+		$duree = $page['entetes']['X-Spip-Cache'];
 		if ($duree == 0)  #CACHE{0}
 			return -1;
 		else if ($date + intval($duree) < time())
@@ -217,10 +219,9 @@ function restaurer_meta_donnees ($contenu) {
 				$page[$var] = $val;
 			}
 		}
+		$page['texte'] = substr($contenu, strlen($match[0]));
+	} else	$page['texte'] = $contenu;
 
-	}
-
-	$page['texte'] = substr($contenu, strlen($match[0]));
 	return $page;
 }
 
@@ -276,7 +277,7 @@ function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$la
 	}
 
 	// Faut-il effacer des pages invalidees (en particulier ce cache-ci) ?
-	if ($GLOBALS['meta']['invalider']) {
+	if (isset($GLOBALS['meta']['invalider'])) {
 		// tester si la base est dispo
 		spip_connect();
 		if ($GLOBALS['db_ok']) {
diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php
index 4abbbabfda..6828d5be71 100644
--- a/ecrire/public/compiler.php
+++ b/ecrire/public/compiler.php
@@ -395,17 +395,20 @@ function calculer_parties($boucles, $id_boucle) {
 
 function calculer_liste($tableau, $descr, &$boucles, $id_boucle='') {
 	if (!$tableau) return "''";
+	if (!isset($descr['niv'])) $descr['niv'] = 0;
 	$codes = compile_cas($tableau, $descr, $boucles, $id_boucle);
 	$n = count($codes);
 	if (!$n) return "''";
-	if ($GLOBALS['var_mode_affiche'] != 'validation')
+	$tab = str_repeat("\t", $descr['niv']);
+	if (!isset($GLOBALS['var_mode_affiche'])
+	OR $GLOBALS['var_mode_affiche'] != 'validation')
 	  return
 		(($n==1) ? $codes[0] : 
 			 "(" . join (" .\n$tab", $codes) . ")");
 	else return "debug_sequence('$id_boucle', '" .
 	  ($descr['nom']) .
 	  "', " .
-	  intval($descr['niv']) .
+	  $descr['niv'] .
 	  ",  array(" .
 	  join(" ,\n$tab", $codes) . "))";
 }
@@ -415,10 +418,9 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) {
 	// cas de la boucle recursive
 	if (is_array($id_boucle)) 
 	  $id_boucle = $id_boucle[0];
-	$type = $boucles[$id_boucle]->type_requete;
-	$descr['niv']++;
-	for ($i=0; $i<=$descr['niv']; $i++) $tab .= "\t";
-
+	$type = !$id_boucle ? '' : $boucles[$id_boucle]->type_requete;
+	$tab = str_repeat("\t", ++$descr['niv']);
+	$mode = isset($GLOBALS['var_mode_affiche']) ? $GLOBALS['var_mode_affiche'] : '';
 	// chaque commentaire introduit dans le code doit commencer
 	// par un caractere distinguant le cas, pour exploitation par debug.
 	foreach ($tableau as $p) {
@@ -456,7 +458,7 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) {
 		case 'include':
 			$code = calculer_inclure($p, $descr, $boucles, $id_boucle);
 			
-			$commentaire = '<INCLURE ' . str_replace("\n", ' ', $p->code) . '>';
+			$commentaire = '<INCLURE ' . str_replace("\n", ' ', $code) . '>';
 			$avant='';
 			$apres='';
 			$altern = "''";
@@ -482,12 +484,13 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) {
 			break;
 
 		case 'idiome':
-			$p->code = "_T('" . $p->module . ":" .$p->nom_champ . "')";
-			$p->id_boucle = $id_boucle;
-			$p->boucles = &$boucles;
-			$p->interdire_scripts = false;
+			$code = "_T('" . $p->module . ":" .$p->nom_champ . "')";
+			if ($p->param) {
+			  $p->id_boucle = $id_boucle;
+			  $p->boucles = &$boucles;
+			  $code = compose_filtres($p, $code);
+			}
 			$commentaire = ":";
-			$code = applique_filtres($p);
 			$avant='';
 			$apres='';
 			$altern = "''";
@@ -530,9 +533,9 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) {
 			}
 		}
 		if ($code != "''")
-			$codes[]= (($GLOBALS['var_mode_affiche'] == 'validation') ?
+			$codes[]= (($mode == 'validation') ?
 				"array(" . $p->ligne . ", '$commentaire', $code)"
-				: (($GLOBALS['var_mode_affiche'] == 'code') ?
+				: (($mode == 'code') ?
 				"\n// $commentaire\n$code" :
 				$code));
 	} // foreach
@@ -723,7 +726,7 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile) {
 //
 function " . $nom . '($Cache, $Pile, $doublons=array(), $Numrows=array(), $SP=0) {
 	$page = ' .
-	// ATTENTION, le calcul du l'expression $corps affectera 
+	// ATTENTION, le calcul du l'expression $corps affectera $Cache
 	// c'est pourquoi on l'affecte a cette variable auxiliaire
 	// avant de referencer $Cache
 	$corps . ";
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index 09ef02b442..7344158498 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -310,7 +310,7 @@ function calcul_exposer ($id, $type, $reference) {
 	}
 
 	// And the winner is...
-	return $exposer[$type][$id];
+	return isset($exposer[$type]) ? $exposer[$type][$id] : '';
 }
 
 function lister_objets_avec_logos ($type) {
diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index 14d816f359..0c3d3cbf3c 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -862,7 +862,7 @@ function calculer_critere_infixe_ops($idb, &$boucles, $crit)
 	    }
 	}
 
-	$fct = $args = '';
+	$fct = $args_sql = '';
 	// fonction SQL ?
 	if (preg_match('/^(.*)' . SQL_ARGS . '$/', $col, $m)) {
 	  $fct = $m[1];
diff --git a/ecrire/public/debug.php b/ecrire/public/debug.php
index 45b759209c..1c44684f44 100644
--- a/ecrire/public/debug.php
+++ b/ecrire/public/debug.php
@@ -172,7 +172,7 @@ function debug_sequence($id, $nom, $niv, $sequence) {
 	    $debug_objets['sequence'][$nom.$id] = $sequence;
 	  }
 	$res = "";
-	foreach($sequence as $v) $res .= $v[2];
+	foreach($sequence as $v) if (is_array($v)) $res .= $v[2];
 	return $res;	
 }
 
diff --git a/ecrire/public/interfaces.php b/ecrire/public/interfaces.php
index d06dde12a3..502aec94e7 100644
--- a/ecrire/public/interfaces.php
+++ b/ecrire/public/interfaces.php
@@ -41,7 +41,7 @@ class Boucle {
 	var $avant, $milieu, $apres, $altern;
 	var $lang_select;
 	var $type_requete;
-	var $sql_serveur;
+	var $sql_serveur = '';
 	var $param = array();
 	var $criteres = array();
 	var $separateur = array();
diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php
index e4c8e172a5..b2088ff1be 100644
--- a/ecrire/public/parametrer.php
+++ b/ecrire/public/parametrer.php
@@ -66,7 +66,7 @@ function signaler_squelette($contexte)
 	foreach(array('id_parent', 'id_rubrique', 'id_article', 'id_auteur',
 	'id_breve', 'id_forum', 'id_secteur', 'id_syndic', 'id_syndic_article',
 	'id_mot', 'id_groupe', 'id_document') as $val) {
-		if ($contexte[$val])
+		if (isset($contexte[$val]))
 			$signal['contexte'][$val] = intval($contexte[$val]);
 	}
 
@@ -297,10 +297,13 @@ function public_parametrer_dist($fond, $local='', $cache='')  {
 	// Chercher le fond qui va servir de squelette
 	if ($r = sql_rubrique_fond($local))
 		list($id_rubrique_fond, $lang) = $r;
+
+	// Si inc-urls ou un appel dynamique veut fixer la langue, la recuperer
+	if (isset($local['lang']))
+		$lang = $local['lang'];
+
 	if (!$lang)
 		$lang = $GLOBALS['meta']['langue_site'];
-	// Si inc-urls ou un appel dynamique veut fixer la langue, la recuperer
-	$lang = $local['lang'];
 
 	if (!$GLOBALS['forcer_lang'])
 		lang_select($lang);
@@ -330,7 +333,7 @@ function public_parametrer_dist($fond, $local='', $cache='')  {
 		include_spip('public/debug');
 		debug_dumpfile ($page['texte'], $fonc, 'resultat');
 	}
-	if (!is_array($signal)) $page['signal'] = signaler_squelette($local);
+	$page['signal'] = signaler_squelette($local);
 	return $page;
 }
 ?>
diff --git a/ecrire/public/phraser_html.php b/ecrire/public/phraser_html.php
index f63dbc6ace..ff70a302fd 100644
--- a/ecrire/public/phraser_html.php
+++ b/ecrire/public/phraser_html.php
@@ -199,7 +199,7 @@ function phraser_arg(&$texte, $fin, $sep, $result, &$pointeur_champ) {
       preg_match(",^(\|?[^{)|]*)(.*)$,ms", $texte, $match);
       $suite = ltrim($match[2]);
       $fonc = trim($match[1]);
-      if ($fonc[0] == "|") $fonc = ltrim(substr($fonc,1));
+      if ($fonc && $fonc[0] == "|") $fonc = ltrim(substr($fonc,1));
       $res = array($fonc);
       $args = $suite ;
       // cas du filtre sans argument ou du critere /
@@ -625,7 +625,7 @@ function public_phraser_html($texte, $id_parent, &$boucles, $nom, $ligne=1) {
 		$result->altern = public_phraser_html($result->altern,$id_parent,$boucles, $nom, $result->ligne+$a+$m+$b);
 		$result->milieu = public_phraser_html($milieu, $id_boucle,$boucles, $nom, $result->ligne+$b);
 
-		if ($boucles[$id_boucle]) {
+		if (isset($boucles[$id_boucle])) {
 			erreur_squelette(_T('zbug_erreur_boucle_syntaxe'),
 					 _T('zbug_erreur_boucle_double',
 					 	array('id'=>$id_boucle)));
diff --git a/ecrire/public/references.php b/ecrire/public/references.php
index e9cf216a15..daac68833a 100644
--- a/ecrire/public/references.php
+++ b/ecrire/public/references.php
@@ -42,7 +42,7 @@ function index_pile($idb, $nom_champ, &$boucles, $explicite='') {
 	$nom_champ = strtolower($nom_champ);
 	// attention: entre la boucle nommee 0, "" et le tableau vide,
 	// il y a incoherences qu'il vaut mieux eviter
-	while ($boucles[$idb]) {
+	while (isset($boucles[$idb])) {
 		list ($t, $c) = index_tables_en_pile($idb, $nom_champ, $boucles);
 		if ($t) {
 		  if (!in_array($t, $boucles[$idb]->select))
@@ -108,7 +108,7 @@ function index_tables_en_pile($idb, $nom_champ, &$boucles) {
 
 	$desc= description_type_requete($r, $s);
 
-	if(!desc) {
+	if(!$desc) {
 		erreur_squelette(_T('zbug_table_inconnue', array('table' => $r)),
 				   "'$idb'");
 		# continuer pour chercher l'erreur suivante
@@ -205,7 +205,7 @@ function calculer_balise($nom, $p) {
 
 	// compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour
 	// il faut recracher {...} quand ce n'est finalement pas des args
-	if ((!$p->fonctions[0][0]) AND $p->fonctions[0][1])
+	if ($p->fonctions AND (!$p->fonctions[0][0]) AND $p->fonctions[0][1])
 
 	  {$p->code .= " . '" . addslashes($p->fonctions[0][1]) . "'";}
 	// ne pas passer le filtre securite sur les id_xxx
@@ -296,17 +296,15 @@ function balise_distante_interdite($p) {
 function champs_traitements ($p) {
 	global $table_des_traitements;
 
-	if (!is_array($table_des_traitements[$p->nom_champ]))
-	  // old style
-		$ps = $table_des_traitements[$p->nom_champ];
-	else {
+	$ps = $table_des_traitements[$p->nom_champ];
+	if (is_array($ps)) {
+	  // new style
+
 		if ($p->nom_boucle)
 			$type = $p->boucles[$p->nom_boucle]->type_requete;
 		else
 			$type = $p->type_requete;
-		$ps = $table_des_traitements[$p->nom_champ][$type];
-		if (!$ps)
-			$ps = $table_des_traitements[$p->nom_champ][0];
+		$ps = $ps[isset($ps[$type]) ? $type : 0];
 	}
 
 	if (!$ps) return $p->code;
-- 
GitLab