From ec99aeac50d57700c975543e15c398889e3abb5e Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Mon, 3 Aug 2009 12:05:26 +0000
Subject: [PATCH] =?UTF-8?q?Donner=20la=20ligne=20fautive=20pour=20un=20mau?=
 =?UTF-8?q?vais=20param=C3=A8tre=20d'inclusion.=20Et=20=C3=A9viter=20que?=
 =?UTF-8?q?=20PHP=20=C3=A9mette=20un=20Parse=20Error=20dans=20la=20foul?=
 =?UTF-8?q?=C3=A9e.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/lang/spip_fr.php    |  2 +-
 ecrire/public/compiler.php | 12 +++++++++---
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ecrire/lang/spip_fr.php b/ecrire/lang/spip_fr.php
index bdcb40aaf4..53d6863c47 100644
--- a/ecrire/lang/spip_fr.php
+++ b/ecrire/lang/spip_fr.php
@@ -768,7 +768,7 @@ et vous reconnecter au site.
 'zbug_info_erreur_squelette' => 'Erreur sur le site',
 'zbug_inversion_ordre_inexistant' => 'Inversion d\'un ordre inexistant',
 'zbug_pagination_sans_critere' => 'Balise #PAGINATION sans crit&egrave;re {pagination} ou employ&eacute; dans une boucle recursive',
-'zbug_parametres_inclus_incorrects' => 'Param&egrave;tres d\'inclusion incorrects',
+'zbug_parametres_inclus_incorrects' => 'Param&egrave;tre d\'inclusion incorrect&nbsp: @param@',
 'zbug_profile' => 'Temps de calcul&nbsp;: @time@',
 'zbug_resultat' => 'r&eacute;sultat',
 'zbug_serveur_indefini' => 'Serveur SQL ind&eacute;fini',
diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php
index 3c1b788cb6..3b16f8c628 100644
--- a/ecrire/public/compiler.php
+++ b/ecrire/public/compiler.php
@@ -60,9 +60,12 @@ function argumenter_inclure($params, $rejet_filtres, $p, &$boucles, $id_boucle,
 		foreach($couple as $n => $val) {
 			$var = $val[0];
 			if ($var->type != 'texte') {
-			  if ($n OR $k)
-				erreur_squelette(_T('zbug_parametres_inclus_incorrects'), $p);
-			  else $l[1] = calculer_liste($val, $p->descr, $boucles, $id_boucle);
+			  if ($n OR $k) {
+			    $msg = array('zbug_parametres_inclus_incorrects',
+					 array('param' => $var->nom_champ));
+			    erreur_squelette($msg, $p);
+			  } 
+			  $l[1] = calculer_liste($val, $p->descr, $boucles, $id_boucle);
 			  break;
 			} else {
 				preg_match(",^([^=]*)(=?)(.*)$,", $var->texte,$m);
@@ -114,6 +117,9 @@ function argumenter_inclure($params, $rejet_filtres, $p, &$boucles, $id_boucle,
 function calculer_inclure($p, &$boucles, $id_boucle) {
 
 	$_contexte = argumenter_inclure($p->param, false, $p, $boucles, $id_boucle);
+	// Eliminer le hack pour #INCLURE, 
+	// (s'il est la, c'est une erreur, mais ce n'est pas a  PHP de le dire)
+	if (isset($_contexte[1])) unset($_contexte[1]);
 	if (is_string($p->texte)) {
 		$fichier = $p->texte;
 		$code = "'$fichier'";
-- 
GitLab