Créationde menu

Bonjour à tous,

Je désirais faire un menu avec la liste des rubriques du site et mettre en
surbrillance la rubrique où le visiteur se trouve.

J'ai donc fait la boucle suivante :
<B_rubriques>
<BOUCLE_rubriques(RUBRIQUES) {racine} {par titre}>
<tr>
<td class="menu-border" ><br /></td>
<td class="non-sel-bg" > <div class="
<BOUCLE_select_menu_item(RUBRIQUES) {id_rubrique}>
</BOUCLE_select_menu_item>
selectedmenuitem
</B_select_menu_item>
nonselectedmenuitem
<//B_select_menu_item>
"> <a href="#URL_RUBRIQUE"
[title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a>
</div></td>
<td class="menu-border" ><br /></td>
</tr>
</BOUCLE_rubriques>

Les class selectedmenuitem et nonselectedmenuitem correspondent au valeurs
sélectionné et non-sélectionné. D'après la doc de spip, selectedmenuitem ne
devrait être affiché que si la boucle contient au moins un résult. Le
problème, c'est que selectedmenuitem est systématiquement sélectionné.

Est-ce un bug ou j'ai rien compris au mode d'emploi?

C normal que selectedmenuitem soit toujours affiché car le critère{id_rubrique} de ta deuxième
boucle (select_menu_item) correspond à la rubrique sélectionné par la boucle d'avant, i.e. rubriques
et non celle encore d'avant (et qui n'apparait pas dans le code ci-dessous, mais qui devrait être ta
boucle principale).
D'après mes connaissances spipiennes, le seul moyen de retenir la rubrique d'une boucle
pré-précédente est d'utiliser du php genre.

<BOUCLE_principale(RUBRIQUES)>
   <?php $rubrique_courante = '[(#ID_RUBRIQUE|texte_script)]'; ?>
   <BOUCLE_rubriques(RUBRIQUES) {racine} {par titre}>
      <?php $rubrique_item = '[(#ID_RUBRIQUE|texte_script)]'; ?>
      <tr>
         <td class="menu-border" ><br /></td>
         <td class="non-sel-bg" > <div class="
<?php if ($rubrique_courante == $rubrique_item) { ?>
            selectedmenuitem
<?php } else { ?>
            nonselectedmenuitem
<?php } ?>
            "> <a href="#URL_RUBRIQUE"
[title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div></td>
         <td class="menu-border" ><br /></td>
      </tr>
   </BOUCLE_rubriques>
</BOUCLE_principale>

--
Jérémy HETZEL

"schmurz" <the-schmurz@ifrance.com> a écrit dans le message de news: bh6epr$7t6$1@sea.gmane.org...

Bonjour à tous,

Je désirais faire un menu avec la liste des rubriques du site et mettre en
surbrillance la rubrique où le visiteur se trouve.

J'ai donc fait la boucle suivante :
<B_rubriques>
<BOUCLE_rubriques(RUBRIQUES) {racine} {par titre}>
<tr>
<td class="menu-border" ><br /></td>
<td class="non-sel-bg" > <div class="
<BOUCLE_select_menu_item(RUBRIQUES) {id_rubrique}>
</BOUCLE_select_menu_item>
selectedmenuitem
</B_select_menu_item>
nonselectedmenuitem
<//B_select_menu_item>
"> <a href="#URL_RUBRIQUE"
[title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a>
</div></td>
<td class="menu-border" ><br /></td>
</tr>
</BOUCLE_rubriques>

Les class selectedmenuitem et nonselectedmenuitem correspondent au valeurs
sélectionné et non-sélectionné. D'après la doc de spip, selectedmenuitem ne
devrait être affiché que si la boucle contient au moins un résult. Le
problème, c'est que selectedmenuitem est systématiquement sélectionné.

Est-ce un bug ou j'ai rien compris au mode d'emploi?

--------------------------------------------------------------------------------