[Résolu] Si env1, sinon si env2 sinon 3

Bonjour,

Je galère un peu avec mes conditions.
Je cherche à afficher une page d’auteurs dans lequelle j’ai 3 possibilités :
soit j’ai l’id_auteur et j’ai un minisquelette spécifique
soit j’ai un id_mot et j’affiche une ribambelle d’auteurs associés à ce mot
soit je n’ai pas de d’id_mot et d’id_auteur et j’affiche tous les auteurs.

Les cas 1 et 2 sont ok, le cas 3 non.

je procède ainsi :
‹ <B_auteur_existe><BOUCLE_auteur_fiche(AUTEURS){id_auteur=#ENV{id_auteur}}>[…]</BOUCLE_auteur_fiche></B_auteur_existe> ›

‹ <B_avec_mot><BOUCLE_auteurs(AUTEURS){tout}{id_mot=#ENV{id_mot}}{par nom}{pagination 20}>[…]</BOUCLE_auteurs></B_avec_mot> ›

‹ <B_sans_parametres><BOUCLE_tous_auteurs(AUTEURS){id_auteur=#ENV{id_auteur}|non}{id_mot=#ENV{id_mot}|non}{tout}{par nom}{pagination 20}>[…]</BOUCLE_tous_auteurs></B_sans_parametres> ›

j’imagine que le noeud du pb serait ‹ {id_auteur=#ENV{id_auteur}|non}{id_mot=#ENV{id_mot}|non} ›.

j’ai essayé de plein de façons différentes, je ne suis pas à l’aise avec les boucles conditionnelles spip, je ne sais pas comment faire d’ailleurs ce « si 1 bcl1 sinon si 2 bcl2 sinon bcl3 » qui m’éviterait cette double négation.

Si qqn peut prendre le temps ce serait fortement apprécié.

Tu peux conditionner ton 3ième cas de figure avec le critère si :

<BOUCLE_tous_les_auteurs(CONDITION)
{si #ENV{id_mot}|non}
{si #ENV{id_auteur}|non}
>
<INCLURE{fond=inclure/liste/auteurs,env} />
</BOUCLE_tous_les_auteurs>

Une seule boucle suffirait avec des critères conditionnels :

<BOUCLE_pof(AUTEURS){id_auteur?}{id_mot?}{par nom}{pagination 20}>...

:ok_hand:

effectivement ce petit ‹ si › règle le pb, merci.

Jluc, oui je m’en rends bien compte.
A la base, j’avais l’idée de faire qqc du genre
<BOUCLE_ficheauteur>{id_auteur?}
</BOUCLE_ficheauteur>
<BOUCLE_motauteurs>{id_mot?}
</BOUCLE_motauteur>

<INCLURE{fond=inclure/liste/auteurs,env}
<//B_motauteur>
<//B_ficheauteur>

et je me suis perdu en route, vu que je suis un peu beaucoup rouillé, j’ai mis 10min pour écrire ce mesg )) après ça m’a permis aussi de lire pas mal de doc spip, l’un dans l’autre le temps n’a pas été perdu.

Tu compliques en effet. Tu pourrais essayer plus simplement une seule boucle direct comme j’ai écrit.