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

Comme n’importe quel plugin.

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 :

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

Discussion

354 discussions

  • 1

    bonsoir,
    j’utilise spip 2.1.8 et le plugin Menus
    j’ai un soucis avec l’affichage d’une sous- rubrique d’une rubrique
    le titre de la sous-rubrique s’affiche pas complet
    exemple : nom de la s-rubrique : laboratoire d’analyse de discours
    sur le menu s’affiche que (laboratoire d’analyse du ) sans la suite
    aidez moi svp

    merci.

    • bonjour,
      à vrai dire on ne voit pas ce que tu veux dire : peux-tu mettre un lien vers le site pour se rendre compte ?
      En général les menus doivent être courts.
      A+

    Répondre à ce message

  • Juste pour signaler que le plugin Liens sociaux propose une nouvelle entrée « Lien vers un réseau social (Twitter, Facebook, etc.). » dans Menus.

    Répondre à ce message

  • 6

    Bonjour,
    c’est la deuxieme fois en quelques jours que le plugin MENUS est cassé,
    la première fois je n’avais pas tous les types d’entrées pour la construction du menu,
    maintenant à nouveau j’ai perdu 2 éléments types d’entrées (enfin éléments qui ne sont pas masqués dans la configuration des menus), mais en plus je ne peux pas voir( et aussi modifier) les menus existants.
    et de plus je n’étais pas en train de modifier mes menus ... :/
    voilà la page d’un menu ...

    est-ce identifié ?

    • Bah la question c’est : qu’est-ce que tu as fait entre temps. Quels plugins installés ou désinstallés, ou autre modification ?

    • bonsoir, à la réinstallation le 6/03 j’ai créé le menu principal, et ce matin créer un menu latéral, aucun autre plugin de toucher.
      Je suis entrain de définir des css pour ces menus
      Pour les tests de css, j’ai voulu supprimer l’extraclass du menu latéral et donc je suis tombé sur ce problème.
      Et le problème apparait pour les 2 menus, et il est impossible d’en créer un nouveau...
      J’ai laissé des logs sur la liste devel.

      Avant le repas, sauf toucher à l’installation du plugin, j’ai simplement supprimé le dossier tmp.

      Depuis je peux créer un nouveau menu, mais il a disparu le type d’entrée (cf png ci-dessous) dont on a parlé le 6-7/03 sur IRC « Liste ou arborescence de rubriques et d’articles avec beaucoup d’options ».
      Maintenant je vais supprimer le plugin et réinstaller.

    • Tiens ça vient juste de se répèter,
      logs de spip.log
      2016-03-09 19:27:52 82.240.95.168 (pid 84641) :Pri:ERREUR : fonction execute_pipeline_taches_generales_cron absente : pipeline desactive
      2016-03-09 21:26:11 8.29.198.26 (pid 85160) :Pub:ERREUR : Erreur mysql 1146
      2016-03-09 21:26:11 8.29.198.26 (pid 85160) :Pub:ERREUR : Table ’spipr.ALBUM’ doesn’t exist - SHOW CREATE TABLE ALBUM
      2016-03-09 21:26:11 8.29.198.26 (pid 85160) :Pub : !INFO : trouver_table : table inconnue ’’ ’ALBUM’
      2016-03-09 21:26:11 8.29.198.26 (pid 85160) :Pub : !INFO : spip_connect : fichier de connexion ’config/album.php’ non trouve
      — -
      et mysql.log2016-03-09 21:26:11 8.29.198.26 (pid 85160) :Pub:ERREUR : Table ’spipr.ALBUM’ doesn’t exist - SHOW CREATE TABLE ALBUM
      (c’est pas mon IP)

    • Rastapopoulos ... mes excuses....

      le problème vient du fait que j’ai surchargé la fonction rubriques_completes.html dans squelettes...
      Je l’ai fait innocemment depuis l’éditeur de squelettes depuis ma page et var_mode=inclure.

      J’ai besoin de modifier le fonctionnement (notamment pour ajout de classes des li ul et ul li) dans la partie public, mais en faisant cela j’ai bouleversé le fonctionnement du plugin dans la partie privé....
      comment faire pour que ce soit indépendant ?

      Il me semblait que c’était l’objectif du dossier squelettes ... Y-a-t-il une solution ?

      merci

    • Peut-être qu’il faut le squelette ET son fichier de description au même endroit, donc le copier aussi.

    •  :) c’est sûr que cela marche mieux (enfin comme prévu),

      donc sans squelettes particulier
      j’essaie, depuis quelques temps, en utilisant la configuration du type « Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options) » avec l’option « Classe des liens des éléments parents » que je définis « daddy », je n’obtiens pas cette info dans le HTML.

      avec un squelette spécifique
      en copiant dans squelettes/menus les 2 fichiers rubriques_completes html ET xml, plus de soucis avec la partie privé, et donc en éditant le html j’ai pu rajouté cette fameuse classe (ligne 97) qui ne fonctionnait pas jusque là....

      merci

    Répondre à ce message

  • 2

    Bonjour,

    J’utilisais ce plugin avec zpip sou spip 3.0 et cela fonctionnait sans problème. Je viens de passer à spipr (remplaçant de zpip) sous spip 3.1 et j’ai un soucis : les sous menu s’affichent directement sous forme de liste sous mes menus au lieu d’apparaitre uniquement lorsque je clique sur le menu (C.F. capture ci-joint). Que dois-je modifier pour que ça fonctionne correctement ?

    Merci

    • Ce plugin ne s’occupe absolument pas de ce qui s’affiche. Il ne s’occupe que de proposer une interface d’admin pour composer des menus, puis d’une inclusion pour générer le HTML normalisé de ces menus composés. C’est aux sites de chacun, donc aux thèmes de chacun de gérer comment ce HTML s’affiche, suivant les besoins. Donc ta question serait plutôt à poser dans spipR, et plus précisément quel(s) thème(s) savent gérer les menus à plusieurs niveaux (au moins 2). Car ce sont les thèmes graphiques (et pas spécialement spipR) qui gèrent l’affichage (c’était pareil pour zpip : découpage fort entre le fonctionnel et le thème graphique).

    • Je vais poser la question dans spipR....

    Répondre à ce message

  • 3

    Bonjour,
    Impossible d’obtenir l’affichage d’un menu avec un spip 3.1 sans squelettes
    Quelqu’un peut il me dire ce qu’il faut mettre :
    Monmenu
    barrenav
     ???
    Comportement curieux qui doit dépendre du serveur : le même squelettes affiche bien mon menu chez sfr et pas chez free... sur un spip 3.1
    Bonne journée

    • Bonjour,
      Avec un menu perso bootsrap, quel est la classe css à placer dans la troisième case à renseigner ?
      (Tout marche comme prévu avec menu_animé lorsque je teste ce plugin, mais là je voudrais tester bootsrap)
      J’ai bien une solution perso qui marche mais qui a moins de possibilités d’adaptabilité que le plugin menu, en particulier le renvoi vers des pages squelettes spécifiques.
      La première ligne de ma page nav.html
      <nav class="navbar navbar-default navbar-static-top">

      Identification du menu
      Titre
      Menu1
      Identifiant
      barrenav
      Classes CSS
      Je patauge...

      Bonne soirée

    • Aucune idée, désolé, je n’utilise pas Bootstrap, donc je ne connais pas les classes à utiliser…

    • Bonsoir et merci,
      j’obtiens bien un menu sous forme de liste, sans mise en forme, mais avec toutes les spécifications demandées au plugin menu1 (rubriques cachées, pages spécifiques) mais il est moche... Ce qui me fait penser à un probléme d’adresses vers le js et les css de bootstrap importés dans mon squelettes.
      merci, le plugin est super

    Répondre à ce message

  • 1

    Bonjour,

    J’utilise Menus 1.5.15 avec un SPIP 3.0.21.

    Le menu que j’ai créé contient des rubriques de racine et 3 liens vers des pages spécifiques. Dont 2 vers la même page mais l’une a un paramètre en plus.
    Le plugin ne reconnait pas cette particularité. Est-ce normal ? Ou est-ce un bug ?

    Amicalement,

    Ybbet

    Répondre à ce message

  • 1

    Bonjour,

    J’aime bien ce genre de plugins qui sont faciles à mettre en place et à paramétrer. Merci.

    Mais, sur la version que j’ai téléchargée pour SPIP 3.1 je n’ai pas le choix Mots-clé et groupes de mots (ni l’autre choix pour ajouter des des mots-clés au menu).

    Est-ce normal ? Ils sont bien configurés sur le site pourtant et j’ai un article avec un mot-clé.

    Merci.

    • Oups, je me réponds à moi-même.

      En lisant les messages du forum, j’ai vu que toutes les options n’apparaissent pas et qu’il faut d’abord décocher celles que l’on veut dans la page de gestion des plugins.

      C’est tout bon. Un grand merci.

      NB : ne serait-il pas judicieux d’ajouter cette information à la documentation ? (si ça se trouve j’ai lu trop vite)

    Répondre à ce message

  • Bonjour Rastapopulos,

    J’aurais besoin d’un renseignement.
    Par rapport à un squelette, j’ai besoin de rajouter automatiquement une classe au li généré par la balise #MENUS_AFFICHER_ENTREE si il a des sous menu.
    Je souhaiterais donc surcharger cette balise, et lui passer un parametre indiquant la présence de sous menu ou pas.
    Donc je surcharge la fonction et récupère mon paramètre avec
    $test_sous_menu = interprete_argument_balise(2,$p);
    Par contre, comment puis je passer une valeur à :

    $p->code =  "(!$id_menus_entree) ? _T('zbug_champ_hors_motif', array('champ'=>'AFFICHER_ENTREE', 'motif'=>'MENUS_ENTREES')) : recuperer_fond(
    		'menus/'.$type_entree,
    		array_merge(unserialize($parametres),array($contexte=>true, 'env'=>\$Pile[0]))
    	)";

    Et comment le réafficher aussi ensuite dans le squelette appelé (objet.html ou autre)

    Répondre à ce message

  • 3

    Bonjour,

    Très bel outil qui manquait à SPIP mais je n’arrive pas à avoir mes sous-rubriques sous chaque rubrique. Toutes les articles des sous-rubriques sont directement sous leurs rubriques respectives…

    Article, rubrique ou autre objet SPIP
    Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options)
    Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options)
    Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options)

    donne :

    Article, rubrique ou autre objet SPIP
    Article
    Article
    Article
    Article
    Article
    Article
    Article
    Article
    Article

    • J’ai mis mes Rubriques (Accueil) en tête du site.
      En cliquant dessus, apparaissent dessous mes sous-rubriques (Article, rubrique ou autre objet SPIP) mais n’apparaissent pas mes articles…

      Si je mets mes sous-rubriques (Liste ou arborescence de rubriques et d’articles (avec beaucoup d’options) mes articles apparaissent tous sous la Rubrique (Accueil)…

      Comprends pas très bien comment faire une arborescence :

      Rubrique
         Sous-rubrique 1
            Article 1
            Article 2
         Sous-rubrique 2
            Article 1
            Article 2
            Article 3
            Article 4
    • Je ne peux pas trop te répondre vu que je ne sais ni dans quel ordre tu as mis tes entrées, ni leur configuration à chacune, ni non plus le code HTML généré à la fin pour voir s’il y a une confusion.

    • Mes entrée :

      Accueil -> Rubrique 1

      Puis :

      Article, rubrique ou autre objet SPIP -> sous-rubrique 1

      Ensuite, je ne sais pas trop comment faire apparaître les titres des articles se rapportant à cette « sous-rubrique 1 »…

    Répondre à ce message

  • 1

    Bonjour,
    Tout d’abord merci à ou aux auteurs de ce plugin.
    En spip 3.0.17 j’ai le menu se déconnecter mais pas dans le spip 3.0.20.
    Est ce que j’ai loupé quelque chose ?

    Répondre à ce message

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