Prenons le fond titi.html
La pagination
Intégrons une première boucle qui va faire la pagination, seulement des premières lettres présentes dans les titres des articles, les affiche, et met un lien vers la page titi avec la lettre demandée :
Le critère fusion
Ce critère permet d’effectuer un group by, c’est à dire un groupement des résultats identiques selon un critère. Ici, on groupe par la première lettre du titre avec LEFT(titre,1)
. On aurait pu, si les titres ont des espaces, mettre un LTRIM pour les enlever : LEFT(LTRIM(titre),1)
L’affichage
On peut dans la même page afficher les articles :
L’opérateur == permet de sélectionner selon une expression régulière, ici suivant le debut du titre. ^Z
cherchera tous les articles commençant par Z. Pour ne pas prendre en compte les premiers espaces des titres, une syntaxe doit pouvoir être appliquée, comme ^\s*Z
qui indique qu’il peut y avoir 0 à n espace avant la lettre Z. On pourrait dont écrire le critère ainsi : {titre==^\s*(#ENV{lettre,A})}
Inclure cette page
En modifiant l’url, par exemple en remplaçant dans titi.html #URL_PAGE{titi}
par #SELF
, il devient possible d’appeler le squelette depuis un autre.
En modèle
Il n’est par contre pas possible de mettre cette structure dans un modèle. Pour explication, si nous avons un modèle modeles/titi.html
et que nous l’appelons dans un article par <titi|lettre=P>
, il va bien choisir les lettres commençant par P. Cependant, les liens de pagination ne seront pas valides car un modèle ne peut pas récupérer d’autres variables d’environnement que ce qu’on lui donne. En particulier, il ne pourra pas obtenir les &lettre=X
présents dans l’url ainsi formée et affichera ainsi toujours la lettre P.