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

samedi 24 mars 2012, par François Rygaert (aka Suske)

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 !

Messages

Un message, un commentaire ?

Forum sur abonnement

Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d’indiquer ci-dessous l’identifiant personnel qui vous a été fourni. Si vous n’êtes pas enregistré, vous devez vous inscrire.