menu avec rubriques/articles ou article

Bonjour,

Tout d’abord je m’excuse si ce message arrive en plusieurs exemplaires, j’essaie depuis plusieurs comptes mails (mon premier mail n’est toujours pas passé sur la liste spip@rezo.net après quelques heures).

J’essaie de faire un menu en listes (ul il) avec ces contraintes :

  • dans le premier niveau le TITRE des rubriques avec un lien vers l’article quand la rubrique n’en compte qu’un seul ou pas de lien si la rubrique en compte plusieurs
  • dans le second niveau (quand la rubrique compte plusieurs articles) : le TITRE des articles avec un lien vers l’article en question

exemple :

sachant que sur la vrai version, il y a plus de rubriques, que celles qui sont avec 1 seul article et celles qui sont avec plusieurs articles sont « mélangées » et qu’il n’y a jamais de sous-rubrique.

Voici pour l’instant mon code qui ne fonctionne pas vraiment :

    <BOUCLE_RUBRIQUE (RUBRIQUES) {racine} {par id_rubrique}>
    <BOUCLE_ARTICLES(ARTICLES) {id_rubrique} {par titre}>

    [(#TOTAL_BOUCLE|=={1}|?{[

  • (#_RUBRIQUE:TITRE)
  • ],
    [
  • (#_RUBRIQUE:TITRE)
  • ]})]
    </BOUCLE_ARTICLES>
    </BOUCLE_RUBRIQUE>

-->

Ca fonctionne très bien quand il n’y a qu’un article par rubrique, mais le hic c’est quand il y en pas plusieurs car la partie en grass ci dessus est répétée à chaque article.

Si quelqu’un a la solution, je suis preneur !
Je fais peut être complètement fausse route, mais c’est la seule que mes connaissances limitées mon soufflée.

Sylvain

Ca fonctionne très bien quand il n'y a qu'un article par rubrique, mais le hic c'est quand il y en pas plusieurs car la partie en grass ci dessus est répétée à chaque article.

Si quelqu'un a la solution, je suis preneur !

j'aurais fait un truc plutot avec des boucles conditionnelles mais je peut-etre parce que je suis devenu accro a ca :slight_smile:
ca donnerai un truc dans ce gout la :

<ul id="menu">

        <BOUCLE_RUBRIQUE (RUBRIQUES) {racine} {par id_rubrique}>

       <B_ARTICLES>
        <BOUCLE_ARTICLES(ARTICLES) {id_rubrique} {par titre}{1,1}> </BOUCLE_ARTICLES>
            [(#REM) il y a plus d'un article]
            <BOUCLE_ARTICLES2(ARTICLES) {id_rubrique} {par titre}>
                [*<li><a href=# title="">(#_RUBRIQUE:TITRE)</a><ul>*[<li><a href="#URL_ARTICLE" title="lien vers #TITRE">(#TITRE)</a></li>]*</ul></li>*]
            </BOUCLE_ARTICLES2>
     </B_ARTICLES>
            [(#REM) il y a qu'un seul article]
            <li><a href="#URL_ARTICLE" title="lien vers #TITRE">(#_RUBRIQUE:TITRE)</a></li>
     <//B_ARTICLES>
       </BOUCLE_RUBRIQUE>
   </ul>

Merci pour votre piste, elle m'a bien mis le pied à l'étrier.
Son seul problème était que les <ul> de niveau 2 étaient répétés à chaque article. Ce problème est réglé, voici le code qui fonctionne :

<ul id="menu">

  <BOUCLE_RUBRIQUE (RUBRIQUES) {racine} {par id_rubrique}>

        <B_ARTICLES>
            <BOUCLE_ARTICLES(ARTICLES) {id_rubrique} {par titre}{1,1}> </BOUCLE_ARTICLES>

     [(#REM) il y a plus d'un article]
              
     <B_ARTICLES2>
    [<li><a href="#" title="">(#_RUBRIQUE:TITRE)</a><ul>]
            <BOUCLE_ARTICLES2(ARTICLES) {id_rubrique} {par titre}>
    [<li><a href="#URL_ARTICLE" title="lien vers #TITRE">(#TITRE)</a></li>]
    </BOUCLE_ARTICLES2>
    </ul></li>
    </B_ARTICLES2>
   </B_ARTICLES>

   [(#REM) il y a qu'un seul article]
            [<li><a href="#URL_ARTICLE" title="lien vers #TITRE">(#_RUBRIQUE:TITRE)</a></li>]
   <//B_ARTICLES>
  </BOUCLE_RUBRIQUE>
   </ul>

Le 26 juil. 07 à 09:24, Yoann NOGUES a écrit :

Ca fonctionne très bien quand il n'y a qu'un article par rubrique, mais le hic c'est quand il y en pas plusieurs car la partie en grass ci dessus est répétée à chaque article.

Si quelqu'un a la solution, je suis preneur !

j'aurais fait un truc plutot avec des boucles conditionnelles mais je peut-etre parce que je suis devenu accro a ca :slight_smile:
ca donnerai un truc dans ce gout la :

<ul id="menu">

       <BOUCLE_RUBRIQUE (RUBRIQUES) {racine} {par id_rubrique}>

     <B_ARTICLES>
       <BOUCLE_ARTICLES(ARTICLES) {id_rubrique} {par titre}{1,1}> </BOUCLE_ARTICLES>
           [(#REM) il y a plus d'un article]
           <BOUCLE_ARTICLES2(ARTICLES) {id_rubrique} {par titre}>
               [*<li><a href=# title="">(#_RUBRIQUE:TITRE)</a><ul>*[<li><a href="#URL_ARTICLE" title="lien vers #TITRE">(#TITRE)</a></li>]*</ul></li>*]
           </BOUCLE_ARTICLES2>
    </B_ARTICLES>
           [(#REM) il y a qu'un seul article]
           <li><a href="#URL_ARTICLE" title="lien vers #TITRE">(#_RUBRIQUE:TITRE)</a></li>
    <//B_ARTICLES>
     </BOUCLE_RUBRIQUE>
  </ul>