Menus

Créez enfin vos menus facilement !

Introduction

Lorsqu’on ne se sert pas du plugin ’Menus’, on est obligé de définir tous ses menus dans les squelettes, ce qui fait que les administrateurs du site n’ont pas directement la main dessus, que lorsqu’ils veulent y changer quelque chose, ils sont obligés d’en faire la demande à la personne en charge des squelettes.

De plus, lorsqu’on veut des liens statiques (un lien vers un article précis, ou vers une page précise, ou vers un site externe) il faut les écrire en dur dans le squelette du menu.

Le but du plugin ’Menus’ est donc de permettre de facilement élaborer des menus au moyen d’une interface conviviale, directement dans la partie privée.

Attention ! Ce plugin ne s’occupe pas de la manière dont seront affichés les menus. Il permet de les créer facilement et d’en générer le HTML.

Pour l’affichage, voyez avec votre thème ou des plugins spécifiques tels que Menu animé déroulant, Menu Déroulant 2, Menu Accordéon 2 ou Menu jQuery Superfish.

Installation

Menus (0.9.5)
Menus (1.7.23)

Télécharger le paquet ZIP du plugin et placer son contenu dans votre répertoire “plugins/”. Activez-le ensuite dans la page de gestion des plugins.

Vous devez aussi avoir le plugin SPIP Bonux déjà installé.

Création d’un menu

Le plugin ajoute un lien dans le bandeau de SPIP :

La page liste tous vos menus, et vous propose d’en créer un nouveau :

D’abord vous devez identifier votre menu. Il faut lui donner un titre, ainsi qu’un mot-clé qui vous permettra de l’appeler facilement. En effet, vous ne pouvez pas prévoir à l’avance dans vos squelettes le numéro du menu. Grâce à ce mot-clé identifiant, vous n’avez donc pas à modifier vos squelettes à chaque fois. Vous pouvez également saisir une classe qui sera ajoutée au premier élément ul du menu généré. Ceci peut permettre d’activer la gestion de l’affichage par un plugin tiers.

Vous pouvez alors commencer à construire le menu en ajoutant des entrées :

Les différents types d’entrées

Les Menus sont fournis pour l’instant avec plus de dix types d’entrées qui permettent déjà de construire la plupart des menus facilement.

N’hésitez pas à en proposer d’autres !

Voici la description de quelques uns des types d’entrées disponibles :

-  Lien arbitraire : vous pouvez créer des liens vers ce que vous voulez en donnant une adresse et un titre.

-  Objet de SPIP : crée un lien vers n’importe quel objet éditorial de SPIP. Ça peut être un article, une rubrique ou n’importe quoi venant d’un plugin.

-  Liste dynamique de rubriques et d’articles : vous pouvez afficher les rubriques de SPIP, y compris de manière arborescente. Pour cela, il suffit de définir la rubrique dans laquelle il faut commencer la liste, le niveau maximum de sous-rubriques, les exclusions éventuelles, le type de tri... Vous pouvez aussi inclure les articles dans l’arborescence, limiter leur nombre, en gérer le tri...

Modification des entrées

Lorsque vous avez déjà ajouté des choses, vous obtenez alors la liste des entrées sous cette forme :

Vous pouvez alors déplacer les entrées pour modifier leur ordre, les supprimer, changer leurs paramètres et créer des sous-menus en-dessous des entrées qui le permettent.

Utiliser les menus dans votre site

Pour afficher un menu dans votre site, il vous suffit d’inclure un petit squelette où vous le désirez :

  1. #INCLURE{fond=inclure/menu, env, identifiant=<votre_menu>}

Vous pouvez aussi tester votre menu facilement en cliquant sur le bouton «Voir en ligne» ou en allant sur la page : spip.php?menu<numero>

Exporter les menus vers un autre site

Imaginons que sur une version de votre site en local vous réorganisez tous les menus. Pour reporter ces changements en prod, il faut exporter les menus dans un fichier et les réimporter en prod.

S’assurer tout d’abord que le plugin Yaml est activé .

Lorsqu’il est activé une icône apparaît : exporter ce menu

Le sauvegarder sur votre ordinateur

Sur le site de destination, il suffit de créer un nouveau menu avec le même identifiant ( penser à le supprimer avant s’il existe). Et à la création, si le plugin YAML est bien activé, la boite de choix de fichier est proposée.

Surcharge des fichiers menus/<type>.html

Si pour des besoins particuliers, on doit surcharger un fichier du répertoire menus/, il ne faut pas oublier de copier le fichier XML de description qui va avec.

En effet, le plugin cherche le fichier XML au même endroit que le fichier HTML.

updated on 2 October 2019

Discussion

328 discussions

  • Bonjour,
    J’utilise ce plugin pour la première fois. Il est vraiment pratique.
    J’ai deux questions pour un squelette multilingue et
    -  l’entrée du menu concernant un “Lien vers un squelette page”.
    Concrètement, la page contact : /spip.php?page=contact
    Si je souhaite que le lien soit lié à la langue de la page je rajoute &lang=fr (français) et &lang=en (anglais) mais dans la configuration de la liste des paramètres je ne vois pas comment mettre l’un ou l’autre.
    -  Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options) —> Il n’y a pas la possibilité du champ “trad” comme sur un objet SPIP...il vaut donc mieux les rentrer objet/objet?

    Merci d’avance pour votre aide à la découverte de ce plugin.
    Jérôme

    Reply to this message

  • 2

    Bonjour,
    Lorsque je tente d’activer le plugin Menus, un message “• Le plugin Menus dépend du plugin SAISIES ≥ 1.42.11.” est affiché.
    J’ai pourtant bien le plugin saisies en version 3.23.4 qui est actif (sur un SPIP en version 3.2.4)

    Merci d’avance pour votre aide.
    Pascal

    • Que ce message là ?

    • Oui (s’affiche en haut de la liste des plugins)
      Dans l’intervalle, j’ai tenté d’activer le plugin CK Editor et je suis confronté au même message.
      Le problème provient donc a priori du plugin Saisie qui n’est pas correctement reconnu (pourtant dans la gestion des plugins tout à l’air correct)
      Je vais installer la version précédente de ce plugin (2.28.0) pour voir si ça change quelque chose.
      A+

    Reply to this message

  • 7

    Bonjour,
    j’ai le même problème que ygornet, quand je veux créer un menu ne sont pas affichées certains objets :
    Site A


    1 Accueil
    2 Article, rubrique ou autre objet SPIP
    3 Texte libre
    4 Articles d’une rubrique
    5 Articles d’un Mot-clé
    6 Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options)
    7 Se connecter / lien vers espace privé
    8 Lien vers un squelette page
    9 Lien arbitraire
    10 Moteur de recherche
    11 Lien vers un réseau social (Twitter, Facebook, etc.).


    Site B


    1 -
    2 Article, rubrique ou autre objet SPIP
    3 Texte libre
    4 Articles d’une rubrique
    5 Articles d’un Mot-clé
    6 -
    7 Se connecter / lien vers espace privé
    8 Lien vers un squelette page
    9 Lien arbitraire
    10 Moteur de recherche
    11 -


    Il manque donc :
    1 Accueil
    6 Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options)
    11 Lien vers un réseau social (Twitter, Facebook, etc.).

    la proposition 6 [Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options)] me fait cruellement défaut !
    Les plugins “Menus” sur les deux sites sont de la même version et paramétrés à l’identique.
    Avez vous une idée de ce qui cause ce problème ?
    Merci
    Cordialement

    • À part soit un problème de droit d’accès aux fichiers, soit une mauvaise config dans la config du plugin (puisqu’il permet, je le rappelle, de masquer certains types d’entrées), je ne vois rien d’autres qui pourrait enlever des entrées comme ça.

    • Bonjour,
      merci de votre réponse.
      Je ne vois pas non plus. D’autant que dans les options de configuration j’ai et dont aucune n’est cochée (voir capture d’écran) :


      Secteurs de langue
      Article, rubrique ou autre objet SPIP (2)
      Texte libre (3)
      Articles d’un Mot-clé (5)
      Articles d’une rubrique (4)
      Mots-clés et Articles d’un Groupes de mots
      Se connecter / lien vers espace privé (7)
      Lien vers un squelette page (8)
      Lien arbitraire (9)
      Ma page
      Se déconnecter
      Moteur de recherche(10)


      L’option (6) qui m’intéresse ne figure pas
      Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options)
      Savez-vous où les options de configuration sont conservées ?
      Cordialement

    • Bonjour,
      voici des captures d’écran montrant ce qui se produit...
      Il est impossible d’éditer une entrée.
      Avez-vous une idée ?
      Merci
      Cordialement

    • Bonjour,
      petit détail : ce message s’affiche après une restauration :

      Warning: array_merge(): Argument #1 is not an array in /home/xxxxx/www/ecrire/public/composer.php(92) : eval()’d code on line 58

    • «Après» avoir lu les 2 threads reportant ce problème, ca ressemble à une incompat’ plugin cette histoire. ygornet et toi vous avez installé quoi d’autres comme plugin ? (ya peut être un dénominateur commun à repérer...)

    • Bonjour,
      Voici les plugins qui figurent sur le site défaillant :
      Coche Mots 1.2.1 - stable
      Compositions 3.7.3 - stable
      Enluminures typographiques 3.5.13 - stable
      Espace privé plus large 1.0.10 - stable
      Masquer 0.5.3 - stable
      Mots techniques 1.0.4 - stable
      Numérotation Rapide 2.1.1 - stable
      Pages 1.3.7 - stable
      Porte Plume Partout 1.0.9 - test
      Sauvegarde automatique 1.2.6 - stable
      SEO 2.1.7 - test
      Vérifier la compatibilité de vos plugins 1.1.1 - stable
      Cordialemement

    • Est ce que vous n’auriez pas personnalisé les squelettes du menu? Car c’est ce que j’ai fait et là certains choix disparaissent de la sélection.

    Reply to this message

  • 8

    Bonjour,
    je viens de constater un petit souci. Par contre je ne peux dire si c’est sur la dernière version ou d’avant.
    Sur un site (https://www.cpalb.fr) sous Spip 3.2 dernière version et Zpip, j’ai un menu latéral dont une des entrées est paramétrée comme l’image de capture le montre.
    Avant la mise à jour, le menu affichait bien rubrique/sous rubriques/articles. sous forme d’arborescence. Suite à la dernière mise à jour, je n’ai plus que l’affichage des rubriques.
    Le problème a été résolu par la remise en place d’une version antérieure (1.7.11) qui trainait sur mon poste.

    Quelqu’un a-t-il déjà rencontré ce souci ?

    Bon Week End à tous

    • Mais l’affichage des rubriques, c’est bien les rubriques enfants de la rubrique en cours quand même comme demandé ?

      Pour le type d’entrée “rubriques_completes” précisément, la dernière modif c’était uniquement celle de 1.7.11 à 1.7.12, et c’était… juste des ajouts de classes CSS (très précises en BEM donc sans conflit possible) :
      https://zone.spip.net/trac/spip-zone/changeset/113048/spip-zone/_plugins_/menus/trunk/menus/rubriques_completes.html

    • Bonjour,
      je viens de faire un test : je suis repassé de la version 1.7.11 à la dernière version et j’arrive à recréer le problème : mon menu ressemble à ça :

    • Alors qu’avec la version 1.7.11, il ressemble à ça :

      Je précise pour chaque changement de version, j’ai vidé le cache.
      J’ai aussi fait le même test sans dossier squelettes et j’obtiens le même résultat.
      A la base, ce n’est pas vraiment dérangeant, je sais qu’il ne faut pas que je fasse la mise à jour mais ça m’intrigue :D

      Bonne journée

    • Pouet, ça fait trois semaines que j’ai l’onglet ouvert mais toujours pas eu le temps de trouvé, désolé.

      Pour faire gagner du temps, est-ce que tu sais/peux installer le plugin avec SVN ? Cela permettrait que tu testes chaque commit petit à petit depuis la 1.7.11 (svn co -r numéro-du-commit) afin de trouver la version exacte à partir de laquelle ça plante ton menu.

      Ça ferait déjà pas mal avancer, puisqu’on saurait quel commit, donc quelles modifs exactes changent le comportement.

    • Bonjour,
      un peu (Beaucoup) de retard dans la réponse mais je n’étais pas disponible ces derniers temps..

      J’ai donc essayé les différentes versions et jusqu’à la v1.7.14, aucun problème n’apparait.

      C’est la v1.7.15 qui introduit le souci.
      Je suis une bille absolue en programmation mais en regardant les modifications liées à cette version, il semble que ça peut être cohérent, les modifications portant sur les noisettes.

      C’est la révision 113159.

      J’espère que cela pet aider.

      Cordialement.
      Edouard ERNOULD

    • Ah mais en fait tu utilises le Noisetier, et ton menu est inclu avec une noisette ! Du coup forcément moi je cherchais dans le code des entrées de menu ce qui aurait changé, ça pouvait pas être là. :)

      Donc oui, cette modif change un truc dans la noisette, on va revenir en arrière.

    • Et voilà ça devrait être bon avec cette modif :
      https://zone.spip.net/trac/spip-zone/changeset/115001

    • Bonjour,
      je viens de mettre en place la nouvelle version du plugin et le problème est résolu :)

      Merci pour les recherches et le correctif.

      Bonne journée.

    Reply to this message

  • Daniel

    Bonjour,
    J’utilise SPIP 3.2.3 avec le plugin MENUS 1.7.19
    Dans le modèle menus/ articles_rubrique.html, je souhaite utiliser la balise #EXPOSE.
    Malheureusement cette balise n’affiche rien car la variable d’environnement de l’article courant n’est pas connu par ce modèle (#ENVid_article n’affiche rien quand je suis sur un article).
    #ENVid_article affiche bien le n° de l’article jusqu’à l’inclusion de inclure/menu.html mais la balise #MENUS_AFFICHER_ENTREE n’a pas l’air de gérer les variables d’environnement.
    Avez vous remarqué ce problème ?
    Et trouvé une solution ?

    Cordialement
    Daniel

    Reply to this message

  • 2

    Bonjour,

    On peut ajouter des classes à «ul», mais est-il possible de lui attribuer un id (hormis en passant par javascript)?

    Raphaël

    Reply to this message

  • 9

    Sur un site en v3.1.2, le plugin menu v1.7.11 n’affiche pas le type d’entrée ci-dessous, ni dans la configuration du plugin ni malheureusement dans la construction des menus :
    “article, rubrique ou autre objet spip”

    Cela vous est-il déjà arrivé ?
    Connaissez-vous un remède ?

    Cordialement, Yanic

    • je ne suis pas sur de comprendre exactement le souci.

      Mais les objets en questions sont-ils publiés?

    • c’est un site géré depuis plusieurs années
      et le menu fait au début comprenait des entrées du type « article, rubrique ou autre objet spip »
      fabriquées par le formulaire de menu tout à fait normalement

      récemment j’ai voulu ajouter une nouvelle rubrique à ce menu
      et je me suis aperçu que ce type d’entrée n’était plus disponible dans la liste des types d’entrée

      j’ai vérifié que le plugin, régulièrement mis à jour, comprenait bien tous ses fichiers
      j’ai vérifié sur un autre site utilisant le même plugin que ce type d’entrée n’avait disparu pour je ne sais quelle raison, ce qui n’est bien sûr pas la cas

      donc : je ne comprends pas pourquoi ce type d’entrée ne s’affiche plus, y compris quand je tente d’éditer une entrée déjà saisie à l’époque où tout fonctionnait correctement
      et surtout je ne sais pas où chercher l’erreur ni la corriger...

    • c’est très bizarre. j’imagine que tu as essayé de vider les caches.

      as tu pu voir si par hasard il y aurait des souci de description de chemin.

      as tu essayé de renvoyer les fichiers du plugins? ca se trouve il y a eu un bug lors d’une maj.

    • cache vidé et revidé
      le dossier du plugin a été supprimé, rechargé
      les fichiers objet.html et objet.xml sont présents
      tous les autres types s’affichent

      je ne vois pas ce qui bloque l’affichage de ce type
      y compris lorsque je veux éditer une entrée ancienne qui utilise ce type
      et c’est bien mon petit problème !

    • effectivement. Le problème se pose que ce soit en local ou à distance? pour savoir si c’est la base qui est corrompu oÙ si le problème vient d’un code php...

    • Il y a une configuration au plugin, qui permet de masquer volontairement certains types d’entrées. Est-ce que ce type est désactivé ?

    • le phénomène arrive en local et en ligne
      dans la configuration du plugin, le type n’est pas listé

    • Vraiment, personne n’arrive à reproduire, du coup c’est difficile de pouvoir trouver d’où ça vient, mais forcément d’un truc propre à ton installation, à priori. :(

    • Bonjour,
      Est-ce qu’il n’y aurait pas des fichiers perso type objet.html dans le répertoire /squeletttes/formulaires ou /squeletttes/menus ?
      Il m’est arrivé de tout casser après une mise à jour du plugin menus lorsque j’avais des fichiers perso.

    Reply to this message

  • 2

    La version 1.7.2 ne s’installe pas!
    Il y a un problème dans la déclaration des clef primaires

    :Pri:ERREUR: Erreur 1072 de mysql: Key column ’id_menu_entree’ doesn’t exist in table
    in /var/www/spip3.2/ecrire/base/create.php L73 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),
    serie_alter(),maj_while(),maj_plugin(),menus_upgrade(),spip_plugin_install(),(...)

    Merci d’avance!

    Reply to this message

  • 2

    bonjour,
    suite à la mise à jour vers 1.7.10 de la précédente immédiate sur Spip 3.1.8, on a une erreur quand on fait une recherche dans la partie privée :

    1 Erreur SQL 1054
    Unknown column ’points’ in ’order clause’
    SELECT ’’, menus.id_menu, menus.titre, menus.identifiant FROM spip_menus AS `menus` ORDER BY points
    /home/productivixcom/www/ecrire/public/composer.php calculer_select() sql_select(); 1005

    Tous les plugins sont à jour

    Reply to this message

  • 2

    Bonjour,
    je teste mon site en W3C et il m’indique l’erreur suivante :

    there is no attribute “data-depth”

    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