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

Dernière modification de cette page le 10 avril 2007

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

    Répondre à ce 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

    Répondre à ce 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

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom