Je ne vois pas vraiment comment dire ça.

Bonsoir,

Je suis tout nouveau sur la liste, j’espère que cela m’apprendra beaucoup de chose.
Je commence mon baptême du feu par une question.
Alors voilà le problème, j’ai ce code :

<BOUCLE_menu2(RUBRIQUES){id_rubrique IN 2,3,4,5,6}>

#TITRE

Et j’aimerai que la boucle nommée smenu ne s’exécute que pour les rubriques 2,3,4,5,6.
Autrement dis, je voudrais que la boucle smenu ignore le premier résultat renvoyer par la boucle menu2.
Je sais que c’est bizarre :s

Pour l’instant je me débrouille en séparant le problème comme ceci :

<BOUCLE_menu1(RUBRIQUES){id_rubrique=1}>

#TITRE
#TITRE

Mais n’existe-t-il pas une façon plus « propre » d’arriver au même résultat ?

Merci d’avance à ceux qui auront le courage de lire ça :smiley:

Grég

Une solution plus généralisable serait d'affecter un mot-clé aux rubriques faisant l'objet du 1er menu (actuellement rubrique 1) et un autre aux rubriques 2,3,4,5,6.

<BOUCLE_menu1(RUBRIQUES) {titre_mot=mot_cle_1}>
...
</BOUCLE_menu1>
<BOUCLE_menu2(RUBRIQUES) {titre_mot=mot_cle_2}>
...
</BOUCLE_menu2>

BMR

Grégoire Chabord a écrit :

Bonsoir,

Je suis tout nouveau sur la liste, j'espère que cela m'apprendra beaucoup de chose.
Je commence mon baptême du feu par une question.
Alors voilà le problème, j'ai ce code :

    <BOUCLE_menu2(RUBRIQUES){id_rubrique IN 2,3,4,5,6}>
        <dl>
        <dt id="menu#ID_RUBRIQUE" onmouseover="javascript:montre('smenu#ID_RUBRIQUE');" onfocus="javascript:montre('smenu#ID_RUBRIQUE');" accesskey="#ID_RUBRIQUE">
        <a href="#URL_RUBRIQUE">#TITRE</a>
        </dt>
            <dd id="smenu#ID_RUBRIQUE">
                <ul>
          <BOUCLE_smenu(RUBRIQUES){id_parent}>
                    <li><a href="#URL_RUBRIQUE">#TITRE</a></li>
                    </BOUCLE_smenu>
                </ul>
            </dd>
    </dl>
  </BOUCLE_menu2>

Et j'aimerai que la boucle nommée smenu ne s'exécute que pour les rubriques 2,3,4,5,6.
Autrement dis, je voudrais que la boucle smenu ignore le premier résultat renvoyer par la boucle menu2.
Je sais que c'est bizarre :s

Pour l'instant je me débrouille en séparant le problème comme ceci :

<BOUCLE_menu1(RUBRIQUES){id_rubrique=1}>
        <dl>
        <dt id="menu#ID_RUBRIQUE" onmouseover="javascript:montre('smenu#ID_RUBRIQUE');" onfocus="javascript:montre('smenu#ID_RUBRIQUE');" accesskey="#ID_RUBRIQUE">
        <a href="#URL_RUBRIQUE">#TITRE</a>
        </dt>
    </dl>
  </BOUCLE_menu1>
        <BOUCLE_menu2(RUBRIQUES){id_rubrique IN 2,3,4,5,6}>
        <dl>
        <dt id="menu#ID_RUBRIQUE" onmouseover="javascript:montre('smenu#ID_RUBRIQUE');" onfocus="javascript:montre('smenu#ID_RUBRIQUE');" accesskey="#ID_RUBRIQUE">
        <a href="#URL_RUBRIQUE">#TITRE</a>
        </dt>
            <dd id="smenu#ID_RUBRIQUE">
                <ul>
          <BOUCLE_smenu(RUBRIQUES){id_parent}>
                    <li><a href="#URL_RUBRIQUE">#TITRE</a></li>
                    </BOUCLE_smenu>
                </ul>
            </dd>
    </dl>
  </BOUCLE_menu2>

Mais n'existe-t-il pas une façon plus "propre" d'arriver au même résultat ?

Merci d'avance à ceux qui auront le courage de lire ça :smiley:

Grég

Grégoire Chabord wrote:

Mais n'existe-t-il pas une façon plus "propre" d'arriver au même résultat ?

Si j'ai bien compris de quoi il s'agit, tu pourrais essayer une structure comme :

<BOUCLE_racine(RUBRIQUES){racine}>
...

<BOUCLE_sauter1(RUBRIQUES){id_rubrique}{id_rubrique != 1}>
<BOUCLE_smenu(RUBRIQUES){id_parent}>
  <a href="#URL_RUBRIQUE">#TITRE</a><br>
</BOUCLE_smenu>
</BOUCLE_sauter1>

</BOUCLE_racine>

Paolo

Merci à tous les deux.
La solution des mots-clès m’étais encore peu familière, mais promis j’essayerai.
Quand à ta proposition Paolo, en fait j’y avait pas pensé, elle est viable mai pour être validé XHTML ma solution me permet de ne pas ouvrir une balise HTML qui se retrouverai vide.

Merci encore à tous.

Grégoire Chabord wrote:

ma solution me permet de ne pas ouvrir
une balise HTML qui se retrouverai vide.

Utiliser les crochets pour éviter de "cracher" de HTML inutile.
Par exemple,

[<div class="chapeau">(#CHAPO)</div>]

rendra les balises div seulement si #CHAPO existe.

De cette manière il est possible de résoudre (presque) toutes les questions de ce genre.

Paolo