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

Référence aux champs après </BOUCLE> (Jean-Luc)

parent 2745643d
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -124,9 +124,10 @@ function calculer_boucle($id_boucle, &$boucles)
(($flag_parties) ?
calculer_parties($boucle->partie,
$boucle->mode_partie,
$boucle->total_parties) :
((!$boucle->numrows) ? '' : '
$PileNum[$SP] = @spip_num_rows($result);')) .
$boucle->total_parties,
$id_boucle) :
((!$boucle->numrows) ? '' : "
\$PileNum['$id_boucle'] = @spip_num_rows(\$result);")) .
((!$flag_cpt) ? '' : "\n\t\$compteur_boucle = 0;") .
((!$corps) ? "" :
(
......@@ -152,7 +153,7 @@ function calculer_boucle($id_boucle, &$boucles)
// une grosse fonction pour un petit cas
function calculer_parties($partie, $mode_partie, $total_parties)
function calculer_parties($partie, $mode_partie, $total_parties, $id_boucle)
{
return ('
$fin_boucle = @spip_num_rows($result);' .
......@@ -195,7 +196,7 @@ function calculer_parties($partie, $mode_partie, $total_parties)
# ce qui doit re'duire la me'moire ne'cessaire au processus
# En de'coule une combinatoire laborieuse mais sans difficulte'
function calculer_liste($tableau, $prefix, $id_boucle, $niv, $rec, &$boucles, $id_mere)
function calculer_liste($tableau, $prefix, $id_boucle, $niv, &$boucles, $id_mere)
{
if ((!$tableau)) return array("''",'');
$texte = '';
......@@ -226,11 +227,11 @@ function calculer_liste($tableau, $prefix, $id_boucle, $niv, $rec, &$boucles, $i
if ($objet->type == 'boucle') {
$nom = $objet->id_boucle;
list($bc,$bm) = calculer_liste($objet->cond_avant, $prefix,
$objet->id_boucle, $niv+2,$rec, $boucles, $id_mere);
$id_boucle, $niv+2, $boucles, $nom);
list($ac,$am) = calculer_liste($objet->cond_apres, $prefix,
$objet->id_boucle, $niv+2,$rec, $boucles, $id_mere);
$id_boucle, $niv+2, $boucles, $nom);
list($oc,$om) = calculer_liste($objet->cond_altern, $prefix,
$objet->id_boucle, $niv+1,$rec, $boucles, $id_mere);
$id_boucle, $niv+1,$boucles, $nom);
$c = $prefix .
......@@ -238,14 +239,14 @@ function calculer_liste($tableau, $prefix, $id_boucle, $niv, $rec, &$boucles, $i
'($Cache, $PileRow, $doublons, $PileNum, $SP)';
$m = "";
} else {
list($c,$m) =
list($c,$m) =
calculer_champ($objet->fonctions,
$objet->nom_champ,
$id_boucle,
$boucles,
$id_mere);
list($bc,$bm) = calculer_liste($objet->cond_avant, $prefix, $id_boucle, $niv+2,false, $boucles, $id_mere);
list($ac,$am) = calculer_liste($objet->cond_apres, $prefix, $id_boucle, $niv+2,false, $boucles, $id_mere);
list($bc,$bm) = calculer_liste($objet->cond_avant, $prefix, $id_boucle, $niv+2,$boucles, $id_mere);
list($ac,$am) = calculer_liste($objet->cond_apres, $prefix, $id_boucle, $niv+2,$boucles, $id_mere);
$oc = "''";
$om = "";
}
......@@ -343,7 +344,6 @@ function calculer_squelette($squelette, $nom, $gram) {
$nom,
$boucle->param,
1,
true,
$boucles,
$id);
}
......@@ -352,15 +352,12 @@ function calculer_squelette($squelette, $nom, $gram) {
{
if ($boucle->type_requete != 'boucle')
{
# spip_log("calcul_liste $id de type" . $boucle->type_requete);
calculer_params($boucle->type_requete, $boucle->param, $id, $boucles);
$boucles[$id]->return =
calculer_liste($boucle->milieu,
$nom,
$id,
1,
false,
$boucles,
$id);
}
......@@ -370,7 +367,7 @@ function calculer_squelette($squelette, $nom, $gram) {
// idem pour la racine
list($return,$corps) =
calculer_liste($racine, $nom, '',0, false, $boucles, '');
calculer_liste($racine, $nom, '',0, $boucles, '');
// Corps de toutes les fonctions PHP,
// en particulier les requetes SQL et TOTAL_BOUCLE
......
......@@ -123,21 +123,13 @@ function calculer_champ_divers($fonctions, $nom_champ, $id_boucle, &$boucles, $i
break;
case 'TOTAL_BOUCLE':
$n = 0;
$b = $id_boucle;
// si $id_boucle est vide, c'est la racine
// il faudrait dire a` l'auteur du squelette que ca n'a pas de sens
while ($b != $id_mere)
if (!$id_mere)
{
$n++;
$b = $boucles[$b]->id_parent;
// c~a ne devrait pas arriver si id_mere != '',
// mais je ne prends pas le risque
if (!$b) break;
include_local("inc-debug-squel.php3");
erreur_squelette(_L("Champ #TOTAL_BOUCLE hors boucle"), '', $id_boucle);
}
$code = '$PileNum[$SP' . (($n==0) ? "" : "+$n") . ']';
$boucles[$id_boucle]->numrows = true;
# spip_log("TOTAL_BOUCLE: $id_boucle dans $id_mere");
$code = "\$PileNum[$id_mere]";
$boucles[$id_mere]->numrows = true;
break;
case 'POINTS':
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter