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