Browse Source

Dans le phraseur renseigner id_mere_contexte pour savoir si on est dans le contexte d'une boucle englobante (y compris partie avant ou apres), ne pas l'ecraser quand on revient dans le compilateur

+ dans la fonction calculer_liste() si on passe le nom de la boucle courante en guise de descr, la fonction recree le $descr qui va bien en recuperant le id_mere_contexte. Ceci permet de simplifier l'ecriture des appels a calculer_liste() depuis les fonctions criteres
master
cedric@yterium.com 2 years ago
parent
commit
59f2a4691c
  1. 19
      ecrire/public/compiler.php
  2. 1
      ecrire/public/phraser_html.php

19
ecrire/public/compiler.php

@ -880,6 +880,21 @@ function calculer_liste($tableau, $descr, &$boucles, $id_boucle = '') {
if (!$tableau) {
return "''";
}
if (is_string($descr)) {
if (isset($boucles[$descr])) {
$idb = $descr;
$descr = [];
if (isset($boucles[$idb]->descr['id_mere_contexte'])) {
$descr['id_mere'] = $boucles[$idb]->descr['id_mere_contexte'];
}
if (isset($boucles[$idb]->descr['sourcefile'])) {
$descr['sourcefile'] = $boucles[$idb]->descr['sourcefile'];
}
}
else {
$descr = array();
}
}
if (!isset($descr['niv'])) {
$descr['niv'] = 0;
}
@ -1338,7 +1353,9 @@ function compiler_squelette($squelette, $boucles, $nom, $descr, $sourcefile, $co
$boucles[$id]->from[$x] = $nom_table = $show['table'];
$boucles[$id]->iterateur = 'SQL';
$boucles[$id]->descr = &$descr;
if (empty($boucles[$id]->descr)) {
$boucles[$id]->descr = &$descr;
}
if ((!$boucles[$id]->jointures)
and is_array($show['tables_jointures'])
and count($x = $show['tables_jointures'])

1
ecrire/public/phraser_html.php

@ -903,6 +903,7 @@ function public_phraser_html_dist($texte, $id_parent, &$boucles, $descr, $ligne
}
}
$descr['id_mere_contexte'] = $id_boucle;
$result->avant = public_phraser_html_dist($result->avant, $id_parent, $boucles, $descr, $result->ligne);
$result->apres = public_phraser_html_dist($result->apres, $id_parent, $boucles, $descr, $result->ligne + $b + $m);
$result->altern = public_phraser_html_dist($result->altern, $id_parent, $boucles, $descr, $result->ligne + $a + $m + $b);

Loading…
Cancel
Save