Humeurs, trucs, tutos...
Vous êtes ici : Accueil » SPIP » Afficher directement l’article unique d’une rubrique

Exemple pompé du squelette de SPIP-Contrib.net

Afficher directement l’article unique d’une rubrique

D 24 mars 2012     H 16:21     A François Rygaert (aka Suske)     C 2 messages


C’est parfois un problème avec SPIP : on crée une rubrique pour un seul article, afin que les choses soient bien rangées. Mais du coup, les visiteurs doivent cliquer et recliquer pour rien. Sur SPIP-Contrib, dans ce cas-là, la page de l’article unique est affichée directement. Voici comment.

Le code utilisé sur SPIP-Contrib est visible sur la zone : http://zone.spip.org/trac/spip-zone.... Il contient quelques critères dont nous n’avons pas besoin pour un cas général. Nous les enlevons donc, ce qui donne :

Explication :
- lignes 1 : on définit une variable locale « normale », qui servira a lancer le squelette « normal » si la rubrique appelée contient au moins une sous-rubrique ou plus d’un article.
- lignes 3 : tester s’il existe au moins une sous-rubrique de la rubrique appelée. Si c’est le cas, la BOUCLE_articles_unseul ne sera pas exécutée vu qu’elle est dans la partie alternative de la BOUCLE_test_sousrubrique.
- ligne 4 à 12 si la BOUCLE_test_sousrubrique est vide, BOUCLE_articles_unseul est exécutée. Elle liste les articles de la rubrique. Si leur nombre est égal à 1 (l.5), la fonction SPIP redirige_par_entete est appelée et le navigateur est renvoyé directement sur la page d’article (code 302). On vide la variable « normale » et on s’occupe des statistiques de visite.
- ligne 13 : voici le marqueur qui indique que ce qui précède est à exécuter si la boucle principale ne renvoie rien
- ligne suivante : une dernière boucle sur la rubrique appelée, qui lance en l’occurrence la mécanique de ZPIP si et et seulement si la variable « normale » est positionnée (donc, qu’on a au moins une sous-rubrique ou plus d’un article).

De manière générale, le php n’est pas à utiliser dans les squelettes. On constate ici qu’il est utilisé uniquement pour faire appel à des fonctions ou globales de SPIP, je suppose que c’est ce qui rend cet usage acceptable.

Voilà, voilà. Bon SPIP !

2 Messages

Un message, un commentaire ?
Qui êtes-vous ?
Votre message