From b629d01539d425f76b363434796961bd36ca15cb Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Wed, 3 Oct 2007 15:50:38 +0000
Subject: [PATCH] =?UTF-8?q?Suite=20de=20[10485]:=20la=20hierarchie=20de=20?=
 =?UTF-8?q?id=5Frubrique=20c'est=20id=5Fparent,=20et=20il=20n'est=20pas=20?=
 =?UTF-8?q?toujours=20dans=20les=20requ=C3=AAtes=20SQL=20compil=C3=A9es.?=
 =?UTF-8?q?=20(Pierre=20Fiches).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/public/balises.php  | 6 ++++--
 ecrire/public/composer.php | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index bb233eba60..fde4e6084b 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -303,9 +303,11 @@ function calculer_balise_expose($p, $on, $off)
 	// Ne pas utiliser champ_sql, on jongle avec le nom boucle explicite
 	$c = index_pile($p->id_boucle, $type, $p->boucles);
 
-	if (isset($desc['field']['id_rubrique'])) {
+	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'])) {
+	} elseif  (isset($desc['field']['id_groupe'])) {
 		$parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b);
 	} else $parent = "''";
 		  
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index a611078063..9f7db2da01 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -295,7 +295,7 @@ function calculer_hierarchie($id_rubrique, $exclure_feuille = false) {
 // http://doc.spip.org/@calcul_exposer
 function calcul_exposer ($id, $prim, $reference, $parent, $type) {
 	static $exposer;
-	static $ref_precedente;
+	static $ref_precedente =-1;
 
 	// Que faut-il exposer ? Tous les elements de $reference
 	// ainsi que leur hierarchie ; on ne fait donc ce calcul
@@ -309,6 +309,7 @@ function calcul_exposer ($id, $prim, $reference, $parent, $type) {
 			if ($type == 'id_mot')
 				$exposer['id_groupe'][$parent] = true;
 			if ($type != 'id_groupe') {
+			  if (!$parent) $parent = $principal;
 			  $a = split(',',calculer_hierarchie($parent));
 			  foreach($a as $n) $exposer['id_rubrique'][$n] = true;
 			}
-- 
GitLab