From 52cd60e7b9c2ccc06cc82d369e83577d9504c241 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Wed, 13 Sep 2006 11:06:23 +0000
Subject: [PATCH] permettre #GET{#ENV{id_mot}} par exemple c'est un demi bug
 car #SET le permettait deja ...

---
 ecrire/public/balises.php | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index d9119f3801..59dfbb8943 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -1091,28 +1091,31 @@ function balise_ENV_dist($p, $src = NULL) {
 	// le tableau de base de la balise (cf #META ci-dessous)
 	if (!$src) $src = '$Pile[0]';
 
-	if ($a = $p->param) {
-		$sinon = array_shift($a);
-		if  (!array_shift($sinon)) {
-			$p->fonctions = $a;
-			array_shift( $p->param );
-			$nom = array_shift($sinon);
-			$nom = ($nom[0]->type=='texte') ? $nom[0]->texte : "";
-		}
+	$_nom = "";
+	$_sinon = "";
+	if ($p->param && !$p->param[0][0]) {
+		$_nom =  calculer_liste($p->param[0][1],
+					$p->descr,
+					$p->boucles,
+					$p->id_boucle);
+
+		if (isset($p->param[0][2]))
+			$_sinon =  calculer_liste($p->param[0][2],
+						$p->descr,
+						$p->boucles,
+						$p->id_boucle);
 	}
 
-	if (!$nom) {
+	if (!$_nom) {
 		// cas de #ENV sans argument : on retourne le serialize() du tableau
 		// une belle fonction [(#ENV|affiche_env)] serait pratique
 		$p->code = 'serialize('.$src.')';
 	} else {
 		// admet deux arguments : nom de variable, valeur par defaut si vide
-		$p->code = $src.'[\'' . addslashes($nom) . '\']';
-		if ($sinon)
+		$p->code = $src."[$_nom]";
+		if ($_sinon)
 			$p->code = 'sinon('. 
-				$p->code
-				. compose_filtres_args($p, $sinon, ',')
-				. ')';
+				$p->code.",$_sinon)";
 	}
 	#$p->interdire_scripts = true;
 
-- 
GitLab