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

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

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

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