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.25)

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 :

#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 6 April 2020

Discussion

Une discussion

  • 4

    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

    • Bonjour JeromeD,

      Avec un site multilingue, je n’arrive pas non plus a transmettre la langue
      pour « Lien vers un squelette page ».
      Est-ce par les parametres que ca marche?
      As-tu trouve une solution ?

      Merci

    • Bonjour NestorB,
      Je suis désolé mais je n’ai pas poursuivi avec le plugin MENU sur ce site donc je n’ai pas trouvé la réponse à ma question... mais si quelqu’un qui passe par là donne la solution je serai également preneur.
      Faut-il faire 2 menus?

    • Suivant le type d’entrée ça peut être des comportements différents voulus pour le multilingue (parfois une autre page, parfois lang=truc dans l’URL ou autre)
      -  certains cas simples peuvent être intégrés directement dans le code des entrées, mais dans ces cas là il faudrait dire clairement lesquels et faire un ticket dédié pour chacun sur git.spip.net
      -  mais sinon, dans pas mal de cas, je trouve que le plus simple reste de faire un menu différent par langue (et possiblement un menu par défaut quand on ne trouve pas de menu dédié pour la langue en cours) : par ex si le site est français principal, un menu “firstnav” + un menu “firstnav_en” + un menu “firstnav_ru” etc et dans le code de ton squelette un test qui affiche le bon menu suivant la langue de l’environnement.

    • Merci JeromeD et Rastapopoulos pour vos réponses.

      Comme j’ai la langue dans l’environnement, je l’ai finalement ajoutée en paramètre URL au lien de page speciale.html (surcharge sous squelettes /menus).

      ...
              <a href="[(#URL_PAGE{#ENV{nom}, #ENV{parametres}}|parametre_url{lang,#ENV{lang}}|ancre_url{#ENV{ancre}})]" class="menu-items__lien[ (#ENV{css_lien})]">#GET{titre}</a>
      ...

      C’est une bidouille qui a l’air de marcher .

    Reply to this message

Ajouter un commentaire

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