Un squelette différent en fonction de la profondeur dans l’arborescence

Permet de différencier les squelettes de rubriques en fonction de la profondeur de celles-ci dans l’arborescence du site.

Objectif

Il est parfois nécessaire d’avoir pour certaines rubriques un squelette différent, SPIP propose une solution pour différencier le squelette d’une rubrique par rapport aux autres, la boucle ci-dessous permet elle de différencier les squelettes de rubriques en fonction de la profondeur de celles-ci dans l’arborescence du site.

installation

-  créer autant de squelettes de rubrique que de niveaux que vous avez à gérer en les nommant:

  • niveau-1.html
  • niveau-2.html
  • ....
  • niveau-n.html

-  copier dans rubrique. html le code suivant:

<BOUCLE_rub(RUBRIQUES){id_rubrique}>
<BOUCLE_x(HIERARCHIE){id_rubrique}{tout}></BOUCLE_x>
<INCLURE{fond=niveau-#_x:TOTAL_BOUCLE}{id_rubrique}>
</B_x>
</BOUCLE_rub>

Principe

-  La variable #TOTAL_BOUCLE de la boucle hierarchie retourne la profondeur de l’arborescence,
-  cette valeur est concaténée au nom niveau- pour construire le nom du squelette.
-  celui-est appelé par un INCLURE

updated on 2 October 2019

Discussion

3 discussions

  • Le Plugin Compositions pour SPIP 2.0 permet maintenant de gérer très facilement les variantes de squelettes en fonction des rubriques, articles etc ...

    Reply to this message

  • 5

    Bonne astuce, il me semble qu’il y a une petite erreur pour fermer la boucle, il faut utiliser </B_x>. Eventuellement on peut ajouter un critère {tout} pour inclure la rubrique et avoir une profondeur qui commence à 1 puis 2,3 ...

    Cela donne donc:

    <BOUCLE_rub(RUBRIQUES){id_rubrique}>
    <BOUCLE_x(HIERARCHIE){id_rubrique}{tout}></BOUCLE_x>
    <INCLURE{fond=niveau-#_x:TOTAL_BOUCLE}{id_rubrique}>
    </B_x>
    </BOUCLE_rub>
    • tu as raison , je contacte les admins pour modifier l’article

      merci

    • Voila, c’est corrigé

      merci encore

    • Bonjour, bravo et merci pour cette contrib. Cela va m’être très utile.

      Je viens de la tester. Il semblerait chez moi que cela ne marche que si je laisse un espace entre l’ouverture et la fermeture de la boucle suivante :

      Ca vous paraît logique ? (je ne suis pas très expérimenté).

      Merci pour vos retours éventuels et surtout grand merci pour la contribution.

      Romain

    • il faut effectivement un espace, sinon la boucle est vide et spip ne la compile pas

      A+

    • ok. normal donc, merci pour la précision.
      bonne fin de journée

    Reply to this message

  • 1
    pietrus

    Bonjour,
    bravo, bonne idée
    mais ce systeme de niveau-X.html permet t’il d’avoir à la fois un systeme de style de rubrique par niveau et la fonctionnalité spip qui permettait de donner un squelette particulier à une rubrique spip en lui donnant un nom de squelette de la forme : rubrique-x.html ?

    car il peut être nécessaire d’utiliser des squelette par niveau mais pour certaines rubriques d’un niveau d’avoir encore un squelette différent.

    • je te laisse tester, dès que tu as la réponse, laisse un message dans le forum

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom