diff --git a/ecrire/public/interfaces.php b/ecrire/public/interfaces.php index b0f1547a58a0e15f370fd9c6b414c069d40477ff..c5ac87557f3e512ad85da936d44c77cfddd14d77 100644 --- a/ecrire/public/interfaces.php +++ b/ecrire/public/interfaces.php @@ -555,6 +555,16 @@ class Boucle { */ public $debug = []; + /** + * Index de la boucle dont le champ présent dans cette boucle est originaire, + * notamment si le champ a été trouve dans une boucle parente + * + * Tableau nom du champ => index de boucle + * + * @var array $index_champ + */ + public $index_champ = []; + // obsoletes, conserves provisoirement pour compatibilite public $tout = false; public $plat = false; diff --git a/ecrire/public/references.php b/ecrire/public/references.php index 1f3ed7d02d3df8fb78d696b02001131126a83977..fd713aaf01129435ca6e531f7dfa8252665c985d 100644 --- a/ecrire/public/references.php +++ b/ecrire/public/references.php @@ -156,7 +156,7 @@ function index_pile( $boucles[$idb]->select[] = $t; } // renseigner la boucle source de ce champ pour les traitements - $boucles[$idb_origine]->source_champ[$nom_champ_origine] = $idb; + $boucles[$idb_origine]->index_champ[$nom_champ_origine] = $idb; $champ = '$Pile[$SP' . ($i ? "-$i" : "") . '][\'' . $c . '\']'; if (!$joker) { return index_compose($conditionnel, $champ); @@ -733,8 +733,8 @@ function champs_traitements($p) { // Recuperer le type de boucle (articles, DATA) et la table SQL sur laquelle elle porte $idb = index_boucle($p); // si le champ a ete trouve dans une boucle parente sa source est renseignee ici - if (!empty($p->boucles[$idb]->source_champ[$p->nom_champ])) { - $idb = $p->boucles[$idb]->source_champ[$p->nom_champ]; + if (!empty($p->boucles[$idb]->index_champ[$p->nom_champ])) { + $idb = $p->boucles[$idb]->index_champ[$p->nom_champ]; } // mais on peut aussi etre hors boucle. Se mefier.