From 83c0ed84c478cb4f16aad464393b138ab5eb0c45 Mon Sep 17 00:00:00 2001 From: "cedric@yterium.com" <cedric@yterium.com> Date: Tue, 5 May 2020 14:40:52 +0000 Subject: [PATCH] Simplifier index_boucle() et renommer index_boucle_parente() en index_boucle_mere(). --- ecrire/public/balises.php | 10 ++++----- ecrire/public/references.php | 39 +++++++++++++++++------------------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index b34efbf5c9..699bd50e11 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -508,7 +508,7 @@ function balise_RECHERCHE_dist($p) { * Pile complétée par le code à générer **/ function balise_COMPTEUR_BOUCLE_dist($p) { - $b = index_boucle_parente($p); + $b = index_boucle_mere($p); if ($b === '') { $msg = array('zbug_champ_hors_boucle', array('champ' => zbug_presenter_champ($p))); erreur_squelette($msg, $p); @@ -536,7 +536,7 @@ function balise_COMPTEUR_BOUCLE_dist($p) { * Pile complétée par le code à générer **/ function balise_TOTAL_BOUCLE_dist($p) { - $b = index_boucle_parente($p); + $b = index_boucle_mere($p); if ($b === '') { $msg = array('zbug_champ_hors_boucle', array('champ' => zbug_presenter_champ($p))); erreur_squelette($msg, $p); @@ -1092,7 +1092,7 @@ define('CODE_PAGINATION', * Pile complétée par le code à générer */ function balise_PAGINATION_dist($p, $liste = 'true') { - $b = index_boucle_parente($p); + $b = index_boucle_mere($p); // s'il n'y a pas de nom de boucle, on ne peut pas paginer if ($b === '') { @@ -1202,7 +1202,7 @@ function balise_ANCRE_PAGINATION_dist($p) { * Pile complétée par le code à générer **/ function balise_GRAND_TOTAL_dist($p) { - $b = index_boucle_parente($p); + $b = index_boucle_mere($p); if ($b === '') { $msg = array('zbug_champ_hors_boucle', array('champ' => zbug_presenter_champ($p))); erreur_squelette($msg, $p); @@ -2640,7 +2640,7 @@ function balise_HTML5_dist($p) { * Pile complétée par le code à générer */ function balise_TRI_dist($p, $liste = 'true') { - $b = index_boucle_parente($p); + $b = index_boucle_mere($p); // s'il n'y a pas de nom de boucle, on ne peut pas trier if ($b === '') { $msg = array('zbug_champ_hors_boucle', array('champ' => zbug_presenter_champ($p))); diff --git a/ecrire/public/references.php b/ecrire/public/references.php index 01a06a5ed3..8dbf7fcc96 100644 --- a/ecrire/public/references.php +++ b/ecrire/public/references.php @@ -26,7 +26,7 @@ if (!defined('_ECRIRE_INC_VERSION')) { * où une référence explicite est demandée * * - `#MABALISE` : l'index est celui de la première boucle englobante - * - `#_autreboucle:MABALISE` : l'index est celui de la boucle _autreboucle si elle est bien englobante + * - `#_autreboucle:MABALISE` : l'index est celui de la boucle _autreboucle * * @example * Dans une balise dynamique ou calculée : @@ -41,33 +41,27 @@ if (!defined('_ECRIRE_INC_VERSION')) { * - '' si une référence explicite incorrecte est envoyée */ function index_boucle($p) { - - $idb = $p->id_boucle; - $explicite = $p->nom_boucle; - - if (strlen($explicite)) { - // Recherche d'un champ dans un étage supérieur - while (($idb !== $explicite) && ($idb !== '')) { - $idb = $p->boucles[$idb]->id_parent; + if (strlen($p->nom_boucle)) { + // retourne l’index explicite demandé s’il existe + if (!empty($p->boucles[$p->nom_boucle])) { + return $p->nom_boucle; } - } - - return $idb; + return ''; + } + return $p->id_boucle; } /** - * Retrouver l'index de la boucle parente d'une balise (sauf explicitée) - * - * Retrouve la boucle parente d’une balise, sauf si son nom est explicité + * Retrouve la boucle mère d’une balise, sauf si son nom est explicité * * - `#MABALISE` : l'index sera celui de la boucle parente - * - `#_autreboucle:MABALISE` : l'index est celui de la boucle _autreboucle si elle est bien englobante - * + * - `#_autreboucle:MABALISE` : l'index est celui de la boucle _autreboucle, si elle existe + * * @example * Dans une balise dynamique ou calculée : * ``` - * $idb = index_boucle_parente($p); + * $idb = index_boucle_mere($p); * ``` * * @param Champ $p AST au niveau de la balise @@ -76,11 +70,14 @@ function index_boucle($p) { * - Identifiant de la boucle parente possédant ce champ, ou '' si pas de parent. * - '' si une référence explicite incorrecte est envoyée */ -function index_boucle_parente($p) { +function index_boucle_mere($p) { if (strlen($p->nom_boucle)) { // retourne l’index explicite demandé s’il existe - return index_boucle($p); - } + if (!empty($p->boucles[$p->nom_boucle])) { + return $p->nom_boucle; + } + return ''; + } if (!empty($p->descr['id_mere'])) { return $p->descr['id_mere']; } -- GitLab