[SPIP 1.8] Dorian explique sur SPIP-Contrib comment créer des liens « article précédent », « article suivant ».
Mais comment présenter non pas un, mais plusieurs articles précédents et suivants ?

La boucle meme_rub_avant est très simple, il s’agit simplement de l’extension de ce que faisait Dorian : au lien d’afficher uniquement un seul article, on affiche les trois premiers. La seule difficulté logique est de considérer que l’on trie les articles par ordre chronologique inverse, il faut donc penser que « les trois articles précédents » sont :
— parmi les articles publiés avant l’article actuel ;
— triés par ordre chronologique inverse (donc : les plus récents en tête) ;
— on veut les 3 articles publiés immédiatement avant, c’est-à-dire les 3 articles les plus récents de notre liste ; comme le tri est déjà effectué, ce sont simplement les 3 premiers articles de notre liste.
La seule subtilité réside dans la boucle meme_rub_apres :
— parmi les articles publiés après l’article actuel ;
— triés par ordre chronologique inverse (les plus récents en tête) ;
— on veut les 3 derniers articles publiés avant l’article en cours, c’est-à-dire les 3 articles les plus anciens de notre liste ; selon notre tri, ce sont les 3 derniers articles de notre liste.
Il faut donc utiliser le sélecteur introduit dans SPIP 1.8 : {n-3,3}
:
— on veut afficher les éléments de la liste à partir du troisième élément avant la fin (n-3
) ;
— on veut afficher 3 éléments à partir de celui-ci.
Je conseille vivement aux webmestres de s’intéresser à ces nouveaux critères introduits dans la version 1.8 :
{n-a,b}
,
{a,n-b}
(notez bien : a
et b
sont les valeurs que vous remplacez, alors que n
fait partie de la notation, au même titre que les accolades !), ils vous rendront de nombreux services (c’est typiquement l’un des besoins qui obligeait à ajouter du PHP dans ses squelettes, dans le but de réaliser un affichage particulièrement simple).