inc-public-global.php3 inc-text-squel.php3 1.109 1.7 1.110 1.8

Update of /home/spip-cvs/spip
In directory alan:/tmp/cvs-serv8185

Modified Files:
  inc-public-global.php3 inc-text-squel.php3
Log Message:
encore des patches, car les ' et les " peuvent passer dans les critères d'inclusion (exemple : {titre="'"} pour repérer ensuite, dans le squelette inclus, les articles dont le titre contient un ' avec la boucle (ARTICLES){titre==$titre} )

Oui, c'est tordu, mais logique :slight_smile:

Index: inc-public-global.php3

RCS file: /home/spip-cvs/spip/inc-public-global.php3,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -d -r1.109 -r1.110
--- inc-public-global.php3 20 Jul 2004 17:49:24 -0000 1.109
+++ inc-public-global.php3 20 Jul 2004 23:51:19 -0000 1.110
@@ -25,7 +25,7 @@
   // Si on a inclus sans fixer le critere de lang, de deux choses l'une :
   // - on est dans la langue du site, et pas besoin d'inclure inc_lang
   // - on n'y est pas, et alors il faut revenir dans la langue par defaut
- if ($lang = $contexte_inclus['lang']
+ if (($lang = $contexte_inclus['lang'])
   || ($GLOBALS['spip_lang'] != ($lang = lire_meta('langue_site')))) {
     include_ecrire('inc_lang.php3');
     lang_select($lang);

Index: inc-text-squel.php3

RCS file: /home/spip-cvs/spip/inc-text-squel.php3,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- inc-text-squel.php3 20 Jul 2004 23:04:49 -0000 1.7
+++ inc-text-squel.php3 20 Jul 2004 23:51:20 -0000 1.8
@@ -6,30 +6,32 @@
   $criteres = '';
   if ($params) {
     foreach($params as $param) {
- if (ereg("^([_0-9a-zA-Z]+)[[:space:]]*(=[[:space:]]*([^}]+))?$", $param, $args)) {
- $var = $args[1];
- $val = $args[3];
+ if (ereg("^([_0-9a-zA-Z]+)[[:space:]]*(=[[:space:]]*([^}]+))?$", $param, $args)) {
+ $var = $args[1];
+ $val = ereg_replace('^["\'](.*)["\']$', "\\1", trim($args[3]));
+ $val = addslashes(addslashes($val));
+
         // Cas de la langue : passer $spip_lang
         // et non table.lang (car depend de {lang_select})
- if ($var =='lang') {
+ if ($var =='lang') {
           if ($val)
- $l[] = "'\'lang\' => " . addslashes($val) . "'";
+ $l[] = "\'lang\' => \'$val\'";
           else
- $l[] = "'\'lang\' => \''.\$GLOBALS[spip_lang].'\''";
+ $l[] = "\'lang\' => \''.\$GLOBALS[spip_lang].'\'";
         }
- else
+
+ // Cas normal {var=val}
+ else
         if ($val)
- $l[] = "'\'$var\' => " . addslashes($val) . "'";
- else {
- $l[] = "'\'$var\' => \'' . addslashes(" . index_pile($id_boucle, $var, $boucles) . ") .'\''";
- }
+ $l[] = "\'$var\' => \'$val\'";
+ else
+ $l[] = "\'$var\' => \'' . addslashes(" . index_pile($id_boucle, $var, $boucles) . ") .'\'";
         }
- $criteres = ("' . " . join(".', '.\n",$l) . " . '");
+ $criteres = join(", ",$l);
     }
   }
   return "\n'<".
- "?php
- \$contexte_inclus = array($criteres);" .
+ "?php\n\t\$contexte_inclus = array($criteres);\n" .
     (($dossier_squelettes) ?
     ("
       if (@file_exists(\'$dossier_squelettes/$fichier\')){