Menu hierarchique, rubriques/articles classés

créer des menus hiérarchisés sans limite de profondeur, en entrelaçant les rubriques et les articles dans les sous-menus, et en les classant selon l’ordre que l’on a défini.

l’intérêt principal, en dehors de l’absence de limite de profondeur, est de ne pas se limiter à lister d’abord les rubriques et ensuite les articles dans les sous-menus, mais de les sortir entrelacées, dans l’ordre que l’on aura choisi.


exemple

le site se compose de

  • rubrique fruits
    • article poires
    • article pommes
  • rubrique légumes
    • article poireaux
    • rubrique pomme de terre
      • article bintje
      • article belle de fontenay
    • article chou-fleur
    • article navet
    • article tomates
    • article poivrons
    • article concombre

ce menu permet de placer la rubrique pomme de terre entre les articles poireaux et chou-fleur : on ne mélange pas les légumes d’hiver avec ceux d’été...

voir ici un exemple en ligne sur un spip 1.7.2 non modifié en ayant juste uploadé tous les fichiers.


contenu

menu.html/menu.php3 : squelette du menu à appeler dans les pages.

menu.css/menu.js : feuille de style et javascript pour l’affichage du menu.

plus.gif/moins.gif : images « + » et « - » pour développer et condenser les sous menus.

mes_fonctions.php3 : deux filtres, pour jouer avec les numéros d’ordre dans les titres des articles et des rubriques.

article.html/article.php3 : squelette d’article rudimentaire contenant l’appel du menu.

rubrique.html/rubrique.php3 : squelette de rubrique rudimentaire contenant l’appel du menu.

sommaire.html/sommaire.php3 : squelette de sommaire rudimentaire contenant l’appel du menu, en dehors d’un contexte d’article ou de rubrique.


mise en oeuvre

-  numérotez les titres des articles et des rubriques pour les classer avec un numéro de la forme « nn. » (numéro d’ordre point espace) ; pour l’exemple ci-dessus, on aurait : « 1. fruits » « 1. poires » « 2. pommes » « 2. légumes » « 1. poireaux » « 2. pommes de terre » « 3. navets » ...

-  filtrez vos appels de titre par (#TITRE ;

-  copier les deux filtres de mes_fonctions.php3 dans le vôtre ;

-  placer les fichiers menu.html, menu.php3, menu.js, menu.css, plus.gif et moins.gif à la racine de votre spip ;

-  copier l’appel du menu :

<INCLURE(menu.php3){id_rubrique}{id_article}>

à l’endroit opportun dans les fichiers où vous en avez besoin ;

-  jouez avec menu.css pour adapter le menu à votre mise en page ;


précautions d’emploi

-  si vous n’utilisez pas article.html/article.php3 et rubrique.html/rubrique.php3 comme squelette d’affichage des articles et des rubriques, il faut modifier menu.html : ligne 29 colone 111 pour rubrique et ligne 41 colone 118 pour article.

-  si les titres des articles et des rubriques ne contiennent pas de numéro, elle seront classées par ordre alphabétique.

Discussion

Aucune discussion

Ajouter un commentaire

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
  • 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 apparaît.

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.

Qui êtes-vous ?
[Se connecter]

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