Entre rubrique et article

  Boucles de plan et récursivité

L’utilisation des boucles RUBRIQUES et ARTICLES est incessante dans un SPIP classique pour atteindre rapidement les articles, et parcourir les branches de l’arborescence : quelques exemples...

Article publié le 18 mars 2012, et actualisé en octobre 2014

 
 
 
 
 
 
 
 
 
 
 
 

 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.

  1.  

Adaptons cette structure à un squelette Zpip : il faut bien sur modifier ./squelettes/contenu/rubrique.html, qui était :

  1.  

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...

  1. <BOUCLE_principale(RUBRIQUES) {id_rubrique} >
  2.  
  3.  <BOUCLE_articles_plusdun(ARTICLES) {id_rubrique} {1,1}>  <INCLURE{fond=rubrique-normal}{id_rubrique}>
  4.  </BOUCLE_articles_plusdun>
  5.  
  6.  <BOUCLE_articles_unseul(ARTICLES) {id_rubrique} {0,1}>
  7.           <INCLURE{fond=article}{id_article}>
  8.           </BOUCLE_articles_unseul>
  9.  <//B_articles_unseul>
  10.  <//B_articles_plusdun>
  11.  
  12.  </BOUCLE_principale>
  13.  <INCLURE{fond=404}}{env}>
  14.  <//B_principale>

Télécharger


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" ?

  1. <BOUCLE_depart(RUBRIQUES){id_rubrique}> <!-- id_rubrique ici est le parent de la première rubrique à afficher -->
  2.        
  3.         [(#REM) On parcours toutes les sous-rubriques
  4.         ---------------------------------------------]
  5.         <BOUCLE_sousrubriques(RUBRIQUES){par titre}{id_parent}>
  6.                 <h2>#TITRE</h2>
  7.        
  8.                 [(#REM) Les articles de la rubrique
  9.                 -----------------------------------]
  10.                 <BOUCLE_articles(ARTICLES){id_rubrique}{"<br />"}>
  11.                         #TITRE</BOUCLE_articles>      
  12.        
  13.                         <BOUCLE_recursive(BOUCLE_sousrubriques)>
  14.                         </BOUCLE_recursive>
  15.  
  16.                 </B_articles>
  17.  
  18.         </BOUCLE_sousrubriques>
  19.  
  20. </BOUCLE_depart>

Télécharger

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)


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1la sous-rubrique...


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 18 mars 2012, et actualisé en octobre 2014 .

Répondre à cet article