Je me permets de déterrer ce Topic car il m'a aidé à solutionner un des problèmes exposés au cours de la discussion.
Ma problématique initiale consistait à mettre en évidence uniquement la rubrique ou la sous-rubrique courante de mon menu arborescent placé dans un bloc div ( pour info, mon arborescence n'affiche pas les articles ). Un petit schéma pour mieux comprendre :
Architecture grossière du site :
Rubrique 1
Rubrique 1.1
Rubrique 1.1.1
Rubrique 1.1.2
Rubrique 1.2
Rubrique 1.3
Rubrique 1.3.1
Rubrique 1.3.2
Rubrique 1.3.3
Rubrique 2
Rubrique 2.1
Rubrique 2.1.1
Rubrique 2.1.2
Rubrique 2.1.2.1
Rubrique 2.1.2.2
Rubrique 2.1.3
Rubrique 2.2 Rubrique 2.2.1
Rubrique 2.3
Rubrique 2.3.1
Rubrique 2.3.2
Rubrique 3
Etc.
Pour info, la boucle de mon arborescence est faite de telle sorte que seule l'arborescence de la rubrique de niveau 1 (Rubrique 1 ou Rubrique 2 ou Rubrique 3 ou etc.) dans laquelle je me trouve est affichée :
- Par exemple, si je parcours la Rubrique 2 mon arborescence affiche :
Rubrique 2
Rubrique 2.1
Rubrique 2.2
Rubrique 2.3
- Ou alors, si je parcours la Rubrique 2.1 mon arborescence affiche :
Rubrique 2
Rubrique 2.1
Rubrique 2.1.1
Rubrique 2.1.2
Rubrique 2.1.3
Rubrique 2.2
Rubrique 2.3
- Ou encore, si je parcours la Rubrique 2.1.2 mon arborescence affiche :
Rubrique 2
Rubrique 2.1
Rubrique 2.1.1
Rubrique 2.1.2
Rubrique 2.1.2.1
Rubrique 2.1.2.2
Rubrique 2.1.3
Rubrique 2.2
Rubrique 2.3
Vous aurez donc remarqué que dans mes exemples, les Rubriques 1 et 3 ne sont pas affichées car je suis dans la Rubrique 2.
Je mets au cas où la structure de ma boucle qui est placée dans un fichier html à part et qui est à inclure dans les fichiers squelettes où on souhaite faire apparaître ce menu de navigation (par exemple : rubrique.html, article.html, etc.) :
<BOUCLE_secteur(HIERARCHIE){tout}{id_rubrique}{racine}{0,1}>
<B_rubriques>
<div id="menu_rubriques">
<a href="#URL_RUBRIQUE">#TITRE</a>
<hr/>
<ul>
<BOUCLE_rubriques(RUBRIQUES) {id_parent} {par num titre, titre}>
<li>
<a href="#URL_RUBRIQUE">#TITRE</a>
<B_sous_rubriques>
<ul>
<BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par num titre}{!par date}><BOUCLE_test_expose(RUBRIQUES) {id_enfant}>#EXPOSE{' '}</BOUCLE_test_expose>
<li><a href="#URL_RUBRIQUE">#TITRE</a><BOUCLE_re(BOUCLE_sous_rubriques)></BOUCLE_re></li>
</B_test_expose></BOUCLE_sous_rubriques>
</ul>
</B_sous_rubriques>
</li>
</BOUCLE_rubriques>
</ul>
</div>
</B_rubriques>
</BOUCLE_secteur>
La feuille de style associée :
#menu_rubriques li {
font-size: .8em;
margin-left: 1em;
}
#menu_rubriques li ul li{
font-size: 1em;
margin-left: 1em;
}
#menu_rubriques ul { list-style-type: disc; }
#menu_rubriques li ul { list-style-type: square; margin-left: 0.2em; }
#menu_rubriques li li ul { list-style-type: circle; margin-left: 0.2em; }
#menu_rubriques li li li ul { list-style-type: disc; margin-left: 0.2em; }
#menu_rubriques li li li li ul { list-style-type: square; margin-left: 0.2em; }
#menu_rubriques hr {margin : 0.4em 0;}
Et donc, à partir de cette base, l'objectif souhaité était de mettre en évidence uniquement la rubrique ou la sous-rubrique courante de manière à l'affichée en noire et qu'elle ne renvoie pas de lien, comme ceci :
- Si je parcours la Rubrique 2.1.2 mon arborescence affiche (il faut imaginer que toute les rubriques renvoient vers des liens sauf celle en gras) :
Rubrique 2
Rubrique 2.1
Rubrique 2.1.1
Rubrique 2.1.2
Rubrique 2.1.2.1
Rubrique 2.1.2.2
Rubrique 2.1.3
Rubrique 2.2
Rubrique 2.3
Grâce à la discussion de ce topic et aux infos trouvées sur cette page http://www.spip.net/fr_article2319.html , j'ai fini par trouver la solution à mon problème. Voici donc le code exposé ci-dessus et adapté pour répondre aux critères souhaités :
<BOUCLE_secteur(HIERARCHIE){tout}{id_rubrique}{racine}{0,1}>
<B_rubriques>
<div id="menu_rubriques">
[(#ENV{id_rubrique}|=={#ID_RUBRIQUE}|?{<span class="nav_current_rub">#TITRE</span>}|sinon{<a href="#URL_RUBRIQUE">#TITRE</a>})]
<hr/>
<ul>
<BOUCLE_rubriques(RUBRIQUES) {id_parent} {par num titre, titre}>
<li>[(#ENV{id_rubrique}|=={#ID_RUBRIQUE}|?{<span class="nav_current_rub">#TITRE</span>}|sinon{<a href="#URL_RUBRIQUE">#TITRE</a>})]
<B_sous_rubriques>
<ul>
<BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par num titre}{!par date}>
<BOUCLE_test_expose(RUBRIQUES) {id_enfant}>#EXPOSE{' '}</BOUCLE_test_expose>
<li>[(#ENV{id_rubrique}|=={#ID_RUBRIQUE}|?{<span class="nav_current_rub">#TITRE</span>}|sinon{<a href="#URL_RUBRIQUE">#TITRE</a>})]<BOUCLE_re(BOUCLE_sous_rubriques)></BOUCLE_re></li>
</B_test_expose>
</BOUCLE_sous_rubriques>
</ul>
</B_sous_rubriques>
</li>
</BOUCLE_rubriques>
</ul>
</div>
</B_rubriques>
</BOUCLE_secteur>
Et la feuille de style associée :
#menu_rubriques li {
font-size: .8em;
margin-left: 1em;
}
#menu_rubriques li ul li{
font-size: 1em;
margin-left: 1em;
}
#menu_rubriques ul { list-style-type: disc; }
#menu_rubriques li ul { list-style-type: square; margin-left: 0.2em; }
#menu_rubriques li li ul { list-style-type: circle; margin-left: 0.2em; }
#menu_rubriques li li li ul { list-style-type: disc; margin-left: 0.2em; }
#menu_rubriques li li li li ul { list-style-type: square; margin-left: 0.2em; }
#menu_rubriques hr {margin : 0.4em 0;}
.nav_current_rub {color: black;}
Voilà, en espérant aider ceux qui chercheront à l'avenir à créer ce genre de menu de navigation en arborescence .