SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 318 visiteurs en ce moment

Accueil > Navigation > Gérer les menus > Menus

Menus

18 août 2009 – par RastaPopoulos – 957 commentaires

137 votes

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

Zip - 48 ko
Version 0.9.4
Zip - 140.5 ko
Version 1.6.5

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 !

PNG - 12.6 ko

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.

Voir en ligne : http://plugins.spip.net/menus

Dernière modification de cette page le 17 janvier 2017

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 11 mars 2016 à 12:12, par joz En réponse à : Menus

    Bonjour,
    je rencontre un bug lorsque je surcharge menus/objet.html : dans l’interface privé les objets de menu deviennent non-modifiable.
    Pour pouvoir éditer mon menu je dois renommer objet.html dans mes squetettes en autre chose, éditer mon menu, puis renommer objet.html
    J’ai déjà rencontré ce problème sur plusieurs sites...
    Je ne sais pas si d’autres l’ont rencontrés aussi ?
    joz

    ps : Ce n’est pas ma modification sur objet.html qui cause ce bug.

    • Le 3 juin 2016 à 09:06, par fnjk En réponse à : Menus

      En effet, même problème ici. Il ne faut pas le modifier pour pouvoir éditer les menus dans la zone privée. Cela dit, si votre menu est complet, vous pouvez quand même faire la modification a posteriori pour la partie publique.

    • Le 3 juin 2016 à 14:36, par DD En réponse à : Menus

      Bonjour,

      Problème que j’ai déjà rencontré.. depuis au moins 2 ans.
      Mais il me semblais que c’était réparé avec SPIP3. Quelle version de SPIP avez-vous ?

      dd

    • Le 20 octobre 2016 à 09:44, par ManuC En réponse à : Menus

      Bonjour,

      J’ai également eu ce problème.
      La solution est de copier également le fichier objet.xml dans vos squelettes.

    • Le 17 janvier à 18:01, par Teddy Payet En réponse à : Menus

      Bonjour,

      J’aurai dû lire ce message aussi… Il faudrait l’ajouter dans la documentation :

      Surcharge des fichiers menus/fichier.html

      Si pour des besoins particuliers, nous devons surcharger un fichier du répertoire menus/ du présent plugin, il ne faut pas oublier de copier le fichier .xml qui va bien avec.

      En effet, le plugin cherche le fichier XML au même endroit que le fichier HTML. Le couple étant indissociable actuellement.

    • Le 17 janvier à 19:08, par RastaPopoulos En réponse à : Menus

      C’est ajouté Teddy merci

    • Le 17 janvier à 20:17, par Teddy Payet En réponse à : Menus

      Merci à toi ! ;-)

    Répondre à ce message

  • Le 6 décembre 2016 à 14:03, par PRX En réponse à : Menus

    Bonjour RastaPopoulos ,
    suite à une récente m.a.j, je me pose la question de la source d’un rewriting aléatoire de mes adresses de rubriques dans le menu :
    ex : la 1re rubrique : donne : http://www.productivix.com/?page=rubrique&id_rubrique=24 alors qu’il est affiché (en bas en survol) http://www.productivix.com/rubrique24.html
    la 2e donne bien : http://www.productivix.com/rubrique44.html comme prévu
    de même la 5 ème et 7éme (http://www.productivix.com/?page=rubrique&id_rubrique=4) blaguent comme la 1re ...
    ce ne sont pas que des menus de 1er niveau car http://www.productivix.com/?page=rubrique&id_rubrique=2 blague aussi.
    Une idée ? merci d’avance (j’ai vidé le cache avant)
    Cordialement
    William

    • Le 6 décembre 2016 à 23:12, par RastaPopoulos En réponse à : Menus

      Je ne vois aucun problème sur ton propre site là en y allant. Et de toute façon, si dans le HTML ça génère le bon lien (puisque tu dis qu’en le survolant ton navigateur t’affiche le bon lien) c’est tout ce que fait le plugin Menus, de générer le HTML. Une fois cliqué dessus ça n’a plus aucun rapport avec Menus, donc ça ne peut pas venir de lui.

    • Le 6 décembre 2016 à 23:15, par PRX En réponse à : Menus

      bonsoir et merci ,
      désolé , je me suis aperçu vers 18:00 que c’est en fait le tampon du navigateur Firefox qui faisait cela !! en le purgeant cela ne faisait plus rien de tordu.
      Sans doute bien de purger ce post ?

    Répondre à ce message

  • Le 30 novembre 2016 à 13:08, par Shnoulle En réponse à : Menus

    Bonjour,

    Je suis passé à spip 3.1 sur certains de mes sites, précdemment en zpip ou spipr selon le cas. Mais je voudrais retrouver la dist. Donc j’ai menu + spip3.1 + dist tout à jour.

    Si je nomme le menu barrenav : j’ai comme html :

    1. <div class="menu-conteneur navbar-inner">
    2. <ul class="menu-liste menu-items">
    3. <li class="menu-entree item">
    4. <a href="http://blog.example.org/">Accueil</a>
    5.  
    6. </li>
    7. </ul></div>

    Télécharger

    alors que la dist attend un contenu de ce type

    1. <div class="nav clearfix" id="nav">
    2. <ul>
    3. <li class="nav-item first"><a href="a-propo">A propos</a></li>
    4.  
    5. </ul>
    6. </div>

    Télécharger

    Les classes .nav et .nav .nav-item ne fonctionne donc pas.

    Je peux donc modifer les classes, mais je me pose la question du meilleur moyen de le faire.

    Utiliser #ENV{class} dans inclure/nav du squelette ? utiliser #VAL{_MENUS_EXTRA_CLASS} ? ou modifier directement inclure/menu et inclure/barre-nav ?

    Merci :)
    PS : a moins que cela soit déjà prévu
    PS2 : le simple ajout de la classe nav règle le soucis, mais ca serait cooool que cela soit « direct compatible »

    Répondre à ce message

  • Le 24 novembre 2016 à 11:36, par jfg35 En réponse à : Menus

    login et login public - conflit entre sarkaspipr et menus - suite

    Mille excuses !
    D’abord, j’ai oublié l’élémentaire « bonjour ».
    Ensuite, il s’agit de sarkaspipr et non de spipr.
    En tous cas, merci à l’avance si une solution est possible.

    Répondre à ce message

  • Le 24 novembre 2016 à 11:23, par jfg35 En réponse à : Menus

    login et login public - conflit entre spipr et menus

    Lorsqu’on utilise spipr, on a le choix entre login et login public à la connexion.
    Par contre, si menus est activé, le plugin ne propose que l’accès à l’espace privé.
    Y a t’il une solution à ce problème ?
    Merci

    Répondre à ce message

  • Le 18 novembre 2016 à 13:58, par robert46 En réponse à : Menus

    Bonjour.

    J"ai créé un menu avec un sous menu.

    Je ne voudrai pas changer le sous menu, mais la nature du sommet du sous menu (de page en article ou rubrique). Suis-je obligé de détruire le sous menu pour recréer le tout en ayant changé le sommet (c’est me semble-t-il ainsi quand on utilise l’outil de création de menus).

    Merci.

    Répondre à ce message

  • Le 6 novembre 2016 à 12:10, par Yohooo En réponse à : Menus

    Hello,

    -  J’ai un menu composé à son premier niveau par des objets de type rubrique.
    -  l’id_menu est 1

    Quand je le menu se trouve dans une page rubrique, j’aimerai ajouter juste en dessous de lui un menu déroulant de la rubrique en cours seulement si celle-ci ne se trouve pas dans le menu par défaut.

    Pour cela, je dois faire passer une variable doublons pour ne pas répéter les mêmes boutons.

    Y a t’il un moyen plus simple que de reconstituer le menu comme ceci :

    1. [(#REM) Pour éviter les doublons avec le menu (pas trouvé mieux ... ) ]
    2. <BOUCLE_entrees(MENUS_ENTREES){id_menu=1}{par rang}>#SET{entree,''}
    3. <BOUCLE_session(DATA){source tableau,#PARAMETRES}>
    4. <BOUCLE_rubdoublons(RUBRIQUES){si #CLE=id_objet}{id_rubrique=#VALEUR}>
    5. <BOUCLE_rubrdoub(RUBRIQUES){doublons menu}/>
    6. </BOUCLE_rubdoublons>
    7. </BOUCLE_session>
    8. </BOUCLE_entrees>
    9. <BOUCLE_menu(RUBRIQUES){id_rubrique ?}{doublons menu}>
    10. Mon menu qui apparait
    11. </BOUCLE_menu>

    Télécharger

    • Le 6 novembre 2016 à 12:14, par RastaPopoulos En réponse à : Menus

      J’ai pas trop tout pigé mais je ne sais pas si c’est forcément une bonne idée d’utiliser Menus pour faire un menu dynamique personnalisé suivant un contexte, avec des tests etc. C’est avant tout pour faire des Menus à la main avec une interface. C’est personnalisable ok, mais ya des limites à mon avis (mais bon, si ça marche tant mieux hein…).

    • Le 18 novembre 2016 à 13:43, par Yohooo En réponse à : Menus

      Merci RastaPopoulos,

      Merci pour ta réponse. Je me contenterai donc de ma méthode.

      Juste pour expliciter mon besoin par l’exemple (on ne sait jamais, ça peut servir) :

      -  J’ai un menu principal de site de type accordéon comprenant 6 secteurs du site. C’est le client qui configure le menu. Lorsque l’on visite une rubrique, le menu correspondant s’ouvre pour faire apparaître le sous-menu corrspondant. Exemple sur site en construction : http://vps321533.ovh.net/spip.php?rubrique30
      -  Lorsque je ne suis pas dans l’un de ces 6 secteurs principaux (il peut s’agir d’un secteur de moindre importance dont l’attrait ne justifie pas de la faire apparaître sur le menu principal, je rajoute un niveau à mon menu pour faire en sorte qui apparaisse juste dans ce cas de figure. Exemple sur le site en construction : http://vps321533.ovh.net/spip.php?rubrique54

      C’est dans ce type de cas de figure qu’une variable de type doublons incorporée au menu serait utile. Mais bon... en attendant, je garde ma méthode.

      On pourrait aussi imaginer un nouveau champ du type « Obliger à être dans la rubrique de l’élément » calqué sur le fonctionnement du champ « Obliger à être connecté (mettre « session ») ou déconnecté (mettre « nosession ») ».

      Voila,

    Répondre à ce message

  • Le 20 octobre 2016 à 09:41, par ManuC En réponse à : Menus

    Bonjour,

    Il est possible que j’ai trouvé un petit bug dans le plugin (je n’en suis pas sur à 100% le plugin est super complet et assez complexe dans sa gestion des états).
    Le bug se produit dans le cas d’un site multilingue (avec utilisation des plugins Traduction d’article autrement et Traductions de rubriques autrement, le tout sous SPIP v3.1.3).
    L’état actif de l’entrée du menu correspondant à la page en cours ne se faisait pas lorsque j’étais en langue anglaise mais fonctionnait correctement en langue française.
    En regardant le code, j’ai remarqué que dans le fichier menus/objet.html

    1. <li class="menu-entree item[ (#ENV{css})][ (#ENV{id_objet}|menus_exposer{#ENV{type_objet},#ENV*{env}})]">

    il y avait #ENV{id_objet}.
    J’ai remplacé par un #GET

    1. <li class="menu-entree item[ (#ENV{css})][ (#GET{id_objet}|menus_exposer{#ENV{type_objet},#ENV*{env}})]">

    et maintenant l’état actif est bien positionné quelque soit la langue.

    Pourquoi cela fonctionnait avec le #ENV en français mais pas en anglais ?
    mystère !

    Répondre à ce message

  • Le 17 août 2016 à 22:28, par Alexandre Tomas En réponse à : Menus

    Bonjour,

    J’ai créé un nouvel objet éditorial « information » et j’ai inclus certaines de ses dites informations en tant qu’entrées de sous-menus de la même façon qu’avec un article par exemple.

    Hors quand une information est active dans l’environnement (alors qu’elle correspond à une entrée d’un sous-menu), sa rubrique ne dispose pas des classes « on » et « active » dans le menu.

    Pour faire simple je vais détailler les comportements, suivant que nous soyons dans une page article ou dans une page information. Dans le cas du menu schématisé ci-dessous, si nous sommes dans la page de l’article1, l’ENTREE 1 du menu prend les class « on active », par contre si nous sommes dans la page de l’information 1, l’ENTREE 2 du menu ne prend pas les class « on active » (ce qui est injuste) :

    ENTREE 1 du menu -> rubrique1 (qui contient l’article1)
    -  entrée 1 du sous-menu de ENTREE 1-> article1

    ENTREE 2 du menu -> rubrique2 (qui contient l’information1)
    -  entrée 1 du sous-menu de ENTREE 2 -> information1

    J’ai décortiqué le plugin menus et j’ai trouvé la fonction « menus_exposer » dans le fichier « menus_fonctions.php » mais je ne parviens pas à remonter correctement la chaîne de traitement...

    La solution est certainement très simple, mais pour l’instant ça ne vient pas.

    Merci de votre aide et bonne soirée.

    • Le 20 août 2016 à 19:02, par RastaPopoulos En réponse à : Menus

      C’est fait par la fonction du noyau « calcul_exposer », mais je ne crois pas qu’elle sache s’occuper de la hiérarchie des nouveaux objets :(
      https://core.spip.net/projects/spip/repository/entry/spip/ecrire/public/quete.php#L517

    • Le 20 août 2016 à 21:40, par Alexandre Tomas En réponse à : Menus

      Merci, à priori et à première vue si je rajoute dans la ligne 547 :

      1. 'id_rubrique' => array('id_information')

      ça devrait fonctionner... Faut peut-être compléter la fonction un peu plus loin aussi...

      Dès que j’ai pu mettre en œuvre mon expérience je reviens ici même pour dire si ça fonctionne.

      Merci beaucoup pour cette piste !

    Répondre à ce message

  • Le 8 avril 2016 à 11:27, par PRX En réponse à : Menus

    Bonjour,

    je voudrai intégrer ce menu avec une liste d’articles correspondant à un mot clé (là pas de soucis) dans un squelette dans lequel il reste 22 caractères environ dans un pavé : et là les titres trop long se surchargent à la ligne.

    J’ai écrit :

    <:NOUVEAUTÉS SUR CE SITE :>

    [(#PLUGINmenus|oui)
    [(#INCLUREfond=inclure/barre-nav, env, identifiant=slidernav|couper22, ’...’|oui)menu, env, identifiant=slidernav}>]
    ]

    cela ne va pas (les bouts des articles qui dépassent passent à la ligne.
    Pourriez-vous m’aider SVP ?
    merci d’avance.

    • Le 14 avril 2016 à 16:45, par PRX En réponse à : Menus

      suis-je au bon endroit ? est-ce clair ?
      est ce dans le Css, le menu ou le squelette qu’il faut agir ?

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • cisf : plugin « saisie facile » pour SPIP 3

    27 mai 2015 – 125 commentaires

    Cette nouvelle version est compatible avec SPIP 3.0, SPIP 3.1 (tout en restant compatible avec SPIP 2.1). Ce plugin « saisie facile » permet de créer ou de modifier facilement un article directement depuis le site public. Ce plugin : Diminue (...)

  • Menus

    18 août 2009 – 956 commentaires

    Créez enfin vos menus facilement !

  • Partageur

    29 janvier 2011 – 45 commentaires

    Permet de recopier facilement des articles d’un site SPIP partageur à l’autre. Ce plugin est encore en version beta. Les retours et critiques sont les bienvenus ... Présentation Ce plugin est né d’un besoin de partager des articles entre sites (...)

  • ScolaSPIP 4

    19 janvier 2016 – 149 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • ciag : plugin « Groupes d’auteurs »

    30 novembre 2011 – 15 commentaires

    Ce plugin facilite l’affectation des auteurs aux rubriques, via des groupes d’auteurs. Il offre également des vues globales des affectations de rubriques aux auteurs. Les objectifs de ce plugin Le premier objectif est de faciliter (...)