Update of /home/spip-cvs/spip
In directory alan:/tmp/cvs-serv6790
Modified Files:
inc-calcul.php3 inc-compilo-index.php3 inc-criteres.php3
Log Message:
criteres avec param dynamique plus généraux
Index: inc-criteres.php3
RCS file: /home/spip-cvs/spip/inc-criteres.php3,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- inc-criteres.php3 7 Sep 2004 17:18:13 -0000 1.6
+++ inc-criteres.php3 8 Sep 2004 12:10:55 -0000 1.7
@@ -395,6 +395,7 @@
$val = calculer_param_dynamique($match[6], $boucles, $idb);
// erreur
if (is_array($val)) return $val;
+
}
else {
@@ -408,12 +409,12 @@
else if ($val == 'id_enfant')
$val = 'id_parent';
$val = calculer_argument_precedent($idb, $val, $boucles) ;
- }
+ if (ereg('^\$',$val))
+ $val = '" . addslashes(' . $val . ') . "';
+ else
+ $val = addslashes($val);
- if (ereg('^\$',$val))
- $val = '" . addslashes(' . $val . ') . "';
- else
- $val = addslashes($val);
+ }
// Traitement general des relations externes
if ($s = relations_externes($type, $col)) {
@@ -666,23 +667,25 @@
// Calculer les parametres
//
function calculer_param_dynamique($val, &$boucles, $idb) {
- if (ereg("^#([A-Za-z0-9_-]+)$", $val, $m)) {
- $p = new Champ;
- $p->nom_champ = $m[1];
- $p->id_boucle = $idb;
- $p->boucles = &$boucles;
- $p->id_mere = $idb;
- $p = calculer_champ($p, $idb, $boucles,$idb);
- if (ereg("[$]Pile[[][^]]+[]][[]'[^]]*'[]]", $p, $v))
+ if (ereg(NOM_DE_CHAMP, $val, $regs)) {
+ $champ = new Champ;
+ $champ->nom_boucle = $regs[2];
+ $champ->nom_champ = $regs[3];
+ $champ->etoile = $regs[4];
+ $champ->id_boucle = $idb;
+ $champ->boucles = &$boucles;
+ $champ->id_mere = $idb;
+ $champ = calculer_champ($champ);
+ return '" . addslashes(' . $champ . ') . "';
+/*
+ if (ereg("[$]Pile[[][^]]+[]][[]'[^]]*'[]]", $champ, $v))
return $v[0];
- else { return array(L("parametre dynamique inexistant ?"),
- $val);
- }
+ else return $val; */
} else {
- if (ereg('^\$(.*)$',$val,$m))
- return '$Pile[0][\''. $m[1] ."']";
+ if (ereg('^\$(.*)$',$val,$regs))
+ return '" . addslashes($Pile[0][\''. $regs[1] ."']') . ";
else
- return $val;
+ return addslashes($val);
}
}
Index: inc-calcul.php3
RCS file: /home/spip-cvs/spip/inc-calcul.php3,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -d -r1.102 -r1.103
--- inc-calcul.php3 6 Sep 2004 15:10:13 -0000 1.102
+++ inc-calcul.php3 8 Sep 2004 12:10:55 -0000 1.103
@@ -303,28 +303,6 @@
return $page;
}
-
-
-
-
-// Fonction appelee par le skel pour assembler les balises
-function _f($push = false, $texte='') {
- static $pile_f = array();
-
- // push et teste si nul
- if ($push) {
- array_push($pile_f, $texte);
- if ($texte)
- return true;
- }
- // ou pop
- // Attention "return array_pop($pile_f)" provoquerait
- // l'affichage du chiffre zero pour, par exemple, #TOTAL_BOUCLE
- else
- if ($texte = array_pop($pile_f))
- return $texte;
-}
-
### A passer peut-etre dans inc_db_mysql
// Cette fonction est systematiquement appelee par les squelettes
// pour constuire une requete SQL de type "lecture" (SELECT) a partir
Index: inc-compilo-index.php3
RCS file: /home/spip-cvs/spip/inc-compilo-index.php3,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- inc-compilo-index.php3 8 Sep 2004 10:01:23 -0000 1.11
+++ inc-compilo-index.php3 8 Sep 2004 12:10:55 -0000 1.12
@@ -85,7 +85,8 @@
global $exceptions_des_tables, $table_des_tables, $tables_principales;
$i = 0;
- if ($explicite === false) {
+
+ if ($explicite != '') {
// Recherche d'un champ dans un etage superieur
while (($idb != $explicite) && $idb) {
$i++;
@@ -179,7 +180,7 @@
else {
// On regarde ensuite s'il y a un champ SQL homonyme,
// et on definit le type et les traitements
- $p->code = index_pile($p->id_boucle, $nom_champ, $p->boucles, $p->explicite);
+ $p->code = index_pile($p->id_boucle, $nom_champ, $p->boucles, $p->nom_boucle);
if (($p->code) && ($p->code != '$Pile[0][\''.$nom_champ.'\']')) {
// Par defaut basculer en numerique pour les #ID_xxx