Accès direct à l’article de la rubrique
On est souvent gêné par l’obligation de placer chaque article dans une Rubrique, surtout s’il est unique dans cette rubrique, obligeant un clic supplémentaire.
Il s’agit d’un vieux défi en SPIP, comme en témoigne cette archive de 2003, et celle de 2004...voici comment sauter directement à la page article.
Adaptons cette structure à un squelette Zpip : il faut bien sur modifier ./squelettes/contenu/rubrique.html
, qui était :
Après avoir renommé votre squelette rubrique.html
en rubriqueZ.html dans votre répertoire de squelettes...
ci-dessous la boucle simple à mettre dans le contenu/rubrique
pour faire appel selon les cas, à l’article, la rubrique normale (renommée pour garder la compatibilité), ou la page d’erreur...
- <BOUCLE_principale(RUBRIQUES) {id_rubrique} >
- <BOUCLE_articles_plusdun(ARTICLES) {id_rubrique} {1,1}> <INCLURE{fond=rubrique-normal}{id_rubrique}>
- </BOUCLE_articles_plusdun>
- <BOUCLE_articles_unseul(ARTICLES) {id_rubrique} {0,1}>
- <INCLURE{fond=article}{id_article}>
- </BOUCLE_articles_unseul>
- <//B_articles_unseul>
- <//B_articles_plusdun>
- </BOUCLE_principale>
- <INCLURE{fond=404}}{env}>
- <//B_principale>
Noter que la syntaxe simplifiée à partir de la version SPIP 2.1 demande de remplacer e}{
par e,
et le contenu de la noisette ./squelettes/contenu/rubrique.html
en squelettes Zpip :
Vous remarquerez le passage systématique de l’Environnement d’un squelette.
Parcours de plan
Afficher un plan du site est une pratique classique, avec des boucles récursives ; le principe de la récursion, c’est de répéter des exécutions de nature déjà exécutée...
L’exemple ci-dessous, exemple déjà avancé va montrer une application de la récursivité !
Pour afficher un plan, à partir d’une rubrique, on affiche les articles de la rubrique, puis pour chacune des sous-rubriques, on affiche les articles de celle-ci [1] puis pur....
Les possibilités de SPIP permettent de dire que pour chacune des sous-sous-rubriques, on recommence leparcours-type d’une sous-rubrique....
Mais comment recommencer le parcours "dès le départ" ?
- <BOUCLE_depart(RUBRIQUES){id_rubrique}> <!-- id_rubrique ici est le parent de la première rubrique à afficher -->
- [(#REM) On parcours toutes les sous-rubriques
- ---------------------------------------------]
- <BOUCLE_sousrubriques(RUBRIQUES){par titre}{id_parent}>
- <h2>#TITRE</h2>
- [(#REM) Les articles de la rubrique
- -----------------------------------]
- <BOUCLE_articles(ARTICLES){id_rubrique}{"<br />"}>
- #TITRE</BOUCLE_articles>
- <BOUCLE_recursive(BOUCLE_sousrubriques)>
- </BOUCLE_recursive>
- </B_articles>
- </BOUCLE_sousrubriques>
- </BOUCLE_depart>
Noter que la boucle départ ne sert qu’à donner un contexte, que l’on peut omettre si cette noisette est placé dans un contexte de Rubrique (à tester pour un Secteur)
Article publié le 18 mars 2012, et actualisé en octobre 2014 .
Répondre à cet article