From 3bc73185c7b764d734a074b3269a4a3f25ec6d93 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Thu, 13 Jan 2005 16:25:17 +0000
Subject: [PATCH] standardisation du filtre '?'

---
 formulaire_inscription-dist.html |  8 ++++----
 formulaire_login-dist.html       |  4 ++--
 formulaire_oubli-dist.html       |  6 +++---
 formulaire_signature-dist.html   |  4 ++--
 inc-compilo-index.php3           | 17 +++++++++--------
 5 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/formulaire_inscription-dist.html b/formulaire_inscription-dist.html
index 1d5ed31d1e..62db3961bc 100644
--- a/formulaire_inscription-dist.html
+++ b/formulaire_inscription-dist.html
@@ -1,11 +1,11 @@
 [
 (#HTTP_VARS*{message})
 ][
-(#HTTP_VARS*{message}|?{'':' '})[
- (#HTTP_VARS{mode}|=={forum}|?{' ':''})
+(#HTTP_VARS*{message}|?{'',' '})[
+ (#HTTP_VARS{mode}|=={forum}|?{' ',''})
 	<:pass_forum_bla:><br /><br />
 ][
- (#HTTP_VARS{mode}|=={redac}|?{' ':''})
+ (#HTTP_VARS{mode}|=={redac}|?{' ',''})
 	<:pass_espace_prive_bla:><br /><br />
 ]<:form_forum_indiquer_nom_email:>
  <form	id="inscription" method='post' action='#SELF'
@@ -29,7 +29,7 @@ document.inscription.(#HTTP_VARS{focus}).focus()
  ]
 ][<br />
 <div align="right">
-(#HTTP_VARS{target}|?{' ':''})
+(#HTTP_VARS{target}|?{' ',''})
 <script type="text/javascript"><!--
 document.write("<a href='")
 document.write((window.opener) ? "javascript:close()" : "./")
diff --git a/formulaire_login-dist.html b/formulaire_login-dist.html
index fbf1c96e32..299ad36191 100644
--- a/formulaire_login-dist.html
+++ b/formulaire_login-dist.html
@@ -16,7 +16,7 @@
 	<script type="text/javascript" src="ecrire/md5.js"></script>
 	<form	id="login[_(#HTTP_VARS{login})]"
 		action="[(#HTTP_VARS{action2})]"
-		method="post"[(#HTTP_VARS{source}|=={spip}|?{' ':''})
+		method="post"[(#HTTP_VARS{source}|=={spip}|?{' ',''})
 		onSubmit='if (this.session_password.value) {
 			this.session_password_md5.value = calcMD5("[(#HTTP_VARS{alea_actuel})]" + this.session_password.value);
 			this.next_session_password_md5.value = calcMD5("[(#HTTP_VARS{alea_futur})]" + this.session_password.value);
@@ -25,7 +25,7 @@
 		<div class="spip_encadrer" style="[(#URL_SITE_SPIP|style_align)]">[
 			<div class="reponse_formulaire">(#HTTP_VARS*{erreur})<br /><br /></div>
 ][
-			<label><b><:login_login2:></b><br /></label>(#HTTP_VARS{login}|?{'':' '})
+			<label><b><:login_login2:></b><br /></label>(#HTTP_VARS{login}|?{'',' '})
 			<input type="text" id='var_login' name="var_login" class="forml" value="" size="40" />
 ][
 <div>
diff --git a/formulaire_oubli-dist.html b/formulaire_oubli-dist.html
index acbe7f6d62..7c00259cbb 100644
--- a/formulaire_oubli-dist.html
+++ b/formulaire_oubli-dist.html
@@ -1,7 +1,7 @@
 [
 (#HTTP_VARS*{message})
 ][
-(#HTTP_VARS*{message}|?{'':' '})
+(#HTTP_VARS*{message}|?{'',' '})
 <form id="oubli_form" action='spip_pass.php3' method='post'>
 	<fieldset style="border: none;"><legend></legend>[
 	<:pass_nouveau_pass:>
@@ -10,7 +10,7 @@
 	    <:pass_choix_pass:>
 	    <input type="password" name="oubli">
 	</label>][
-	(#HTTP_VARS{p}|?{'':' '})
+	(#HTTP_VARS{p}|?{'',' '})
 	<label>
 	  <:pass_indiquez_cidessous:>
 	  <input type="texte" name="oubli">
@@ -23,7 +23,7 @@
 <div align="right">
 <script type="text/javascript"><!--
 [
-(#HTTP_VARS*{message}|?{'':' '})
+(#HTTP_VARS*{message}|?{'',' '})
 document.oubli_form.oubli.focus()
 ]
 document.write("<a href='")
diff --git a/formulaire_signature-dist.html b/formulaire_signature-dist.html
index 873dd5073c..32c9f36f4c 100644
--- a/formulaire_signature-dist.html
+++ b/formulaire_signature-dist.html
@@ -15,7 +15,7 @@
 	  </label>
 	</fieldset>
 	<br />
-	<p>[(#HTTP_VARS{site_obli}|=={oui}|?{'':' '})<:form_pet_votre_site:><br />]
+	<p>[(#HTTP_VARS{site_obli}|=={oui}|?{'',' '})<:form_pet_votre_site:><br />]
 	<fieldset style='font-size: 110%; font-weight: bold;'>
 	  <legend></legend>
 	  <label>
@@ -30,7 +30,7 @@
 	<br />
 	<fieldset style='font-weight: bold'>
 	  <legend></legend>
-	(#HTTP_VARS{message}|=={oui}|?{' ':''})
+	(#HTTP_VARS{message}|=={oui}|?{' ',''})
 	  <label>
 	  <:form_pet_message_commentaire:><br />
 	    <textarea name="message" rows="3" class="forml" cols="20"></textarea>
diff --git a/inc-compilo-index.php3 b/inc-compilo-index.php3
index dc24d14335..47925e0930 100644
--- a/inc-compilo-index.php3
+++ b/inc-compilo-index.php3
@@ -164,7 +164,7 @@ function calculer_balise_dynamique($p, $nom, $l) {
 	$param = param_balise($p);
 	$p->code = "executer_balise_dynamique('" . $nom . "',\n\tarray("
 	  . join(',',collecter_balise_dynamique($l, $p))
-	  . filtres_arglist($param, $p)
+	  . filtres_arglist($param, $p, ',')
 	  . "),\n\tarray("
 	  . (!$p->fonctions ? '' : ("'" . join("','", $p->fonctions) . "'"))
 	  . "))";
@@ -223,7 +223,7 @@ function applique_filtres($p) {
 				$arglist = '';
 				if (ereg('([^\{\}]*)\{(.+)\}$', $fonc, $regs)) {
 					$fonc = $regs[1];
-				        $arglist = filtres_arglist($regs[2],$p);
+				        $arglist = filtres_arglist($regs[2],$p, ($fonc == '?' ? ':' : ','));
 				}
 				if (function_exists($fonc))
 				  $code = "$fonc($code$arglist)";
@@ -249,20 +249,21 @@ function applique_filtres($p) {
 // analyse des parametres d'un champ etendu
 // [...(#CHAMP{parametres})...] ou [...(#CHAMP|filtre{parametres})...]
 // retourne une suite de N references aux N valeurs indiquées avec N virgules
-// regs2[5] est la pour l'argument special {a:b} du filtre "?".
 
-function filtres_arglist($args, $p) {
-	$arglist ='';;
+function filtres_arglist($args, $p, $sep) {
+	$arglist ='';
 	while (ereg('([^,]+),?(.*)$', $args, $regs)) {
 		$arg = trim($regs[1]);
 		if ($arg) {
-		  if (ereg("^" . NOM_DE_CHAMP ."(.*)$", $arg, $regs2)) {
+			if (ereg("^" . NOM_DE_CHAMP ."(.*)$", $arg, $regs2)) {
 				$p->nom_boucle = $regs2[2];
 				$p->nom_champ = $regs2[3];
-				$arg = calculer_champ($p) . $regs2[5];
+				# faudrait verifier !trim(regs2[5])
+				$arg = calculer_champ($p);
+				
 			} else if ($arg[0] =='$')
 				$arg = '$Pile[0][\'' . substr($arg,1) . "']";
-			$arglist .= ','.$arg;
+			$arglist .= $sep . $arg;
 		}
 		$args=$regs[2];
 	}
-- 
GitLab