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