Skip to content
Extraits de code Groupes Projets
Valider d5fdd3f5 rédigé par esj's avatar esj
Parcourir les fichiers

criteres avec param dynamique plus généraux

parent e0abb452
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -303,28 +303,6 @@ function calculer_page($chemin_cache, $elements, $delais, $inclusion=false) {
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
......
......@@ -85,7 +85,8 @@ function index_pile($idb, $nom_champ, &$boucles, $explicite='') {
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 @@ function calculer_champ($p) {
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
......
......@@ -395,6 +395,7 @@ function calculer_criteres ($idb, &$boucles) {
$val = calculer_param_dynamique($match[6], $boucles, $idb);
// erreur
if (is_array($val)) return $val;
}
else {
......@@ -408,12 +409,12 @@ function calculer_criteres ($idb, &$boucles) {
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 @@ function calculer_param_date($date_compare, $date_orig) {
// 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);
}
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter