tri des articles avec les regexp s'il existe au moins un article

Bonjour,

Dans une rubrique j’ai un grand nombre d’articles que je classe par ordre alphabétique.
Pour limiter l’affichage par lettre, j’utilise une solution avec les expressions régulières :

Un bandeau en haut avec toutes les lettres :

A
B
C

Et plus bas dans mon code :

<BOUCLE_articles(ARTICLES){id_rubrique}{par titre}{titre == #ENV{lettre,^.{1}}}>

#TITRE

[(#SOUSTITRE)]

qui me permet d’afficher la liste des articles pour chaque lettre sélectionné.

Ma question :
Existe-t-il un moyen de n’afficher dans mon bandeau haut que les lettres qui correspondent à au moins un article,
c.a.d. Si je n’ai pas d’article qui commence par A alors le A n’apparait pas.

Merci d’avance si quelqu’un a une idée.

yanik

Avec bonux installé pour (POUR) :

<BOUCLE_alphabet(POUR){tableau #ARRAY{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}}>
<BOUCLE_check_articles(ARTICLES){id_rubrique}{par titre}{titre == ^#VALEUR}{0,1}>
#VALEUR
</BOUCLE_check_articles>
</BOUCLE_alphabet>

Yannick Fortin a écrit :

Bonjour,

Je ne connaissais cette contrib, merci.
Cependant, j’ai un petit souci d’affichage de l’index alphabétique.
La boucle ne m’affiche qu’une lettre sur deux
B D F H … soit 13 lettres au lieu des 26.
J’ai pourtant au moins un article qui commence par chaque lettre
Est-ce la version de spip que j’utilise : 2.0.5 [13790] ?

Merci

Yanik

Non, c’est ma faute, j’ai tapé trop vite :slight_smile:
Il faut remplacer {A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z} par {1,A,2,B,3,C,… etc}
#ARRAY crée un tableau de la forme {clé1,valeur1,clé2,valeur2,etc.}

A bientôt
Simon

Yannick Fortin a écrit :

Effectivement cela va beaucoup mieux ainsi.

Merci

yanik