Idée
Dans certain cas, on veut pouvoir faire un affichage un tout petit peu différent pour le premier — ou le dernier — élément retourné par une boucle.
Par exemple, dans une liste d’article, on peut vouloir que le premier <li>
ait un cadre en haut et le dernier un cadre en bas.
Principe
Avec le filtre de test d’égalité, on peut donc tester si le #COMPTEUR_BOUCLE est égal au #TOTAL_BOUCLE de la façon suivante :
[(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|?{'dernière',''})]
ou si le #COMPTEUR_BOUCLE est égal à 1 :
[(#COMPTEUR_BOUCLE|=={1}|?{'première',''})]
Exemples
Ici, on donne une « class » différente au premier élément de la liste et au dernier :
<B_art>
<ul>
<BOUCLE_art(ARTICLES) {0,10}>
<li class="liste[(#COMPTEUR_BOUCLE|=={1}|?{'prems',''})][(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|?{'derr',''})]">
#TITRE
</li>
</BOUCLE_art>
</ul>
</B_art>
Dans ce deuxième exemple, on affiche une liste d’auteurs d’un article, en mettant des virgules entre les auteurs et un « et » pour le dernier auteur : « A, B et C ».
<BOUCLE_aut(AUTEURS) {id_article} {par nom} {" "}>
[(#COMPTEUR_BOUCLE|=={1}|?{'',' '})
[(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|?{'et',','})]
]
#NOM
</BOUCLE_aut>
On regarde d’abord si on n’est pas au début de la boucle. Si c’est le cas, il ne faut rien afficher, on génère donc une chaîne vide avec le filtre |?
.
Si on n’est pas au début de la boucle, on génère une chaîne non vide, on va donc afficher le code optionnel.
Celui-ci teste si on est à la fin d’une boucle. Si c’est le cas, on affiche un « et », sinon on va afficher une virgule « , ».
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |