From 735b76acce1a70348d685abadb8fb76ab63f9574 Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Tue, 7 Feb 2017 11:00:22 +0000 Subject: [PATCH] =?UTF-8?q?En=20relation=20avec=20#3870=20:=20=C3=A9viter?= =?UTF-8?q?=20des=20notices=20en=20utilisant=20`#EXPOSE`=20hors=20boucle?= =?UTF-8?q?=20(ce=20qui=20cr=C3=A9e=20tout=20de=20m=C3=AAme=20une=20erreur?= =?UTF-8?q?=20le=20squelette,=20puisque=20que=20ce=20n'est=20pas=20fait=20?= =?UTF-8?q?pour).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/public/balises.php | 39 ++++++++++++++++++++------------------- ecrire/public/quete.php | 2 -- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index d6074c1e14..39e8380ea5 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -736,30 +736,31 @@ function balise_EXPOSE_dist($p) { **/ function calculer_balise_expose($p, $on, $off) { $b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle; - $key = $p->boucles[$b]->primary; - $type = $p->boucles[$p->id_boucle]->primary; - $desc = $p->boucles[$b]->show; - $connect = sql_quote($p->boucles[$b]->sql_serveur); - - if (!$key) { + if (empty($p->boucles[$b]->primary)) { $msg = array('zbug_champ_hors_boucle', array('champ' => '#EXPOSER')); erreur_squelette($msg, $p); - } + } else { - // Ne pas utiliser champ_sql, on jongle avec le nom boucle explicite - $c = index_pile($p->id_boucle, $type, $p->boucles); + $key = $p->boucles[$b]->primary; + $type = $p->boucles[$p->id_boucle]->primary; + $desc = $p->boucles[$b]->show; + $connect = sql_quote($p->boucles[$b]->sql_serveur); - if (isset($desc['field']['id_parent'])) { - $parent = 0; // pour if (!$parent) dans calculer_expose - } elseif (isset($desc['field']['id_rubrique'])) { - $parent = index_pile($p->id_boucle, 'id_rubrique', $p->boucles, $b); - } elseif (isset($desc['field']['id_groupe'])) { - $parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b); - } else { - $parent = "''"; - } + // Ne pas utiliser champ_sql, on jongle avec le nom boucle explicite + $c = index_pile($p->id_boucle, $type, $p->boucles); - $p->code = "(calcul_exposer($c, '$type', \$Pile[0], $parent, '$key', $connect) ? $on : $off)"; + if (isset($desc['field']['id_parent'])) { + $parent = 0; // pour if (!$parent) dans calculer_expose + } elseif (isset($desc['field']['id_rubrique'])) { + $parent = index_pile($p->id_boucle, 'id_rubrique', $p->boucles, $b); + } elseif (isset($desc['field']['id_groupe'])) { + $parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b); + } else { + $parent = "''"; + } + + $p->code = "(calcul_exposer($c, '$type', \$Pile[0], $parent, '$key', $connect) ? $on : $off)"; + } $p->interdire_scripts = false; diff --git a/ecrire/public/quete.php b/ecrire/public/quete.php index 793dd3ef7d..c22e9b1ff5 100644 --- a/ecrire/public/quete.php +++ b/ecrire/public/quete.php @@ -538,8 +538,6 @@ function vignette_logo_document($row, $connect = '') { * Calcul pour savoir si un objet est expose dans le contexte * fournit par $reference * - * http://code.spip.net/@calcul_exposer - * * @param int $id * @param string $prim * @param array $reference -- GitLab