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 Déroulant 2, Menu Accordéon 2 ou Menu jQuery Superfish.
Installation
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>





Télécharger le plugin
Vos commentaires
# Le 31 janvier à 12:57, par benoloas
En réponse à : Menus
Bonjour à tous,
J’ai réalisé un site multilingue, par secteur.
Sans appel &LANG=#LANG, il semble que les langues « secondaires » ne puissent s’afficher correctement. Comment/où puis-je rajouter d’après vous ce paramètre à l’URL de renvoi des menus ?
En vous remerciant !!!
# Le 1er février à 23:06, par RastaPopoulos
En réponse à : Menus
Je n’ai malheureusement rien compris. :)
Répondre à ce message
# Le 26 janvier à 22:44, par Flammy
En réponse à : Menus
Bonjour !
Tout d’abord merci beaucoup pour ce plugin, fort utile et pratique ! Ceci-dit, j’aurai une question concernant le code html qui est generee : j’ai cree un menu de type « Liste ou arborescence de rubriques et d’articles » et les articles sont inclus dans le menu. Tout est parfait, mon soucis est que la class « on », lorsque je suis dans un article, est appliquee aussi a la rubrique correspondante, ce qui me pose probleme dans le css pour mettre en relief l’article correspondant a travers la class « on ».
Y’aurait-il moyen de contourner ce probleme en modifiant le code genere par exemple ? Si oui de quelle maniere ?
Merci beaucoup !
# Le 1er février à 23:05, par RastaPopoulos
En réponse à : Menus
L’exposition concerne toute la branche, comme c’est le cas dans les menus par défaut de la dist d’ailleurs. À toi de ne styler en CSS que la partie qui convient, et non pas forcément tous les
.on.Répondre à ce message
# Le 19 janvier à 16:03, par Matthieu
En réponse à : Menus
Bonjour, et félicitation pour ce plugin !
Juste une idée de type d’entrée comme ça. Un bouton Facebook « J’aime » pourrait être sympa non ?
Cordialement.
Répondre à ce message
# Le 16 janvier à 14:48, par F. Hamonno
En réponse à : Menus
Bonjour
J’utilise menus 0.8.15 sous spip 2.1.11 et j’aimerais savoir où insérer le filtre "supprimer_numero afin de supprimer les nombres utilisés pour classer les titres.
NB : J’ai spécifié le filtre dans mes_options.php, mais cela ne marche pas dans le menu.
Merci d’avance pour l’info.
François
# Le 18 janvier à 10:50, par anonymous
En réponse à : Menus
J’ai résolu ce problème en dé commentant la ligne :
dans ecrire/inc_version.php
# Le 18 janvier à 10:59, par RastaPopoulos
En réponse à : Menus
Grands Dieux non ! On ne modifie jamais un fichier du logiciel ! :)
Soit il faut mettre cette directive dans
config/mes_options.php, soit il faut utiliser un plugin comme Couteau KISS qui propose cette option.# Le 18 janvier à 14:43, par F. Hamonno
En réponse à : Menus
Merci pour la réponse.
Je suis d’accord sur le fond de la remarque (mais la forme est un peu agressive !).
Dommage que ce fichier ne puisse pas être surchargé...
J’ai déplacé mes_options.php dans config/ et ça marche !
NB : Jusqu’ici mes sites étaient sous SPIP V1.x
Cordialement
François
Répondre à ce message
# Le 10 janvier à 15:40, par Alexandre Tomas
En réponse à : Menus
Bonjour, j’utilise ce plugin, et dans la boucle menu, j’affiche donc chaque entrée avec #MENUS_AFFICHER_ENTREE mais cependant, il est apparemment impossible de savoir dans la boucle si l’entrée affichée est la dernière.
L’intérêt de cette question est par exemple d’intercaler entre chaque entrée affichée le caractère « | », ce qui sous-entend donc de savoir quelle est la dernière entrée afin de ne pas mettre ce caractère à la suite.
Je n’ai pas trouvé dans les filtres SPIP celui qui permettrait une telle prouesse. Je ne doute pas qu’il y ait une réponse évidente à côté de laquelle je serais passé. Si tel était le cas, j’aimerais bien la connaître... Merci d’avance pour votre aide éventuelle.
# Le 11 janvier à 00:12, par Alexandre Tomas
En réponse à : Menus
Dans la même veine, il serait carrément judicieux de pouvoir isoler l’url et le libellé de l’entrée, de sorte qu’il soit possible d’être plus libre dans le choix de l’affichage qu’avec #MENUS_AFFICHER_ENTREE qui regroupe l’ensemble si j’ai bien compris.
J’ai jeté un oeil dans le plugin pour rajouter une ou deux balises mais j’ai du mal à comprendre comment les données sont traitées. Si j’ai une petite piste je pourrai faire un peu de PHP et arranger ça.
Merci de toute façon pour ce plugin très abouti.
# Le 11 janvier à 00:24, par Maïeul
En réponse à : Menus
non, par pitié, pas de PHP !!!!
http://geekographie.maieul.net/Pourquoi-ne-pas-mettre-de-PHP-dans
pour la première question, la solution est la suivante
</BOUCLE_xxx>
cela se charge automatiquement d’insérer | entre chaque itération de la boucle. Cf http://www.spip.net/fr_article900.html tout en bas « affichage entre les résultats ».
Pour le second point, il faudrait regarder comment fonctionne #MENU et voir si on peut faire une modification générique. Mais pas ce soir :-)
# Le 11 janvier à 02:24, par Alexandre Tomas
En réponse à : Menus
Merci infiniment, je me disais bien qu’il y avait encore une solution simple. Du coup ça résout parfaitement la première question.
Pour le second point, rien de pressé, la liberté attendra bien un peu... Encore merci !
# Le 11 janvier à 02:37, par Alexandre Tomas
En réponse à : Menus
Et j’oubliais, c’est vrai que le PHP on peut l’éviter. Avec les boucles SPIP on reste beaucoup plus lisible, le tout c’est de potasser un peu la doc. Merci pour les liens.
Répondre à ce message
# Le 12 décembre 2011 à 06:19, par jmfre
En réponse à : Menus
Bonjour
Merci pour votre plugin.
Je voudrais exposer l’item de la page en cours d’affichage (je pensais à la balise #EXPOSE), je n’ai pas trouvé ou la mettre.
Il semble qu’une réponse ait été apportée à cette question le 18/08/09, mais ce forum s’arrête au 19/08/09 (loupé, de peu).
Bonne journée
# Le 24 décembre 2011 à 09:49, par jmfre
En réponse à : Menus
Après recherches
- si j’utilise le plugin menus sans le plugin sarkaspip, une classe « on » est présente,
- si j’utilise le plugin menus et le plugin sarkaspip, la classe « on » n’est pas présente.
La solution à ce pb d’exposition se situe donc quelque part du coté du plugin sarkaspip...
Je reposterai si je trouve une solution.
Joyeux Noël
Répondre à ce message
# Le 15 décembre 2011 à 12:11, par yves_web
En réponse à : Menus
Merci pour le plugin, si tous marchaient aussi bien que celui-ci, spip ça deviendrait des vacances.
Simplement, à l’intention de ceux (dont je fais partie) qui lisent la doc après avoir installé le plugin, serait-il possible d’écrire en haut, en strong, et en blink qu’il faut, pour qu’une rubrique ou un article s’affiche dans la barre, associer un nouveau mot clef à la rubrique ou à l’article en question et que ce mot clef soit l’identifiant de la barre...
Sinon le lien depuis l’item de menu, bien que valable, tombe sur une erreur 404 et on maudit l’auteur du plugin pour 15 générations :-)
Bien cordialement,
Y
# Le 15 décembre 2011 à 12:15, par RastaPopoulos
En réponse à : Menus
Je ne comprends pas de quoi tu parles. Ya jamais eu d’histoire de mot-clé dans de plugin. Ce que tu décris là tient plus d’une incantation magique.
# Le 15 décembre 2011 à 13:06, par yves_web
En réponse à : Menus
Bin... Disons que je veut bien dire que j’ai écrit une c... mais...
Ce qui m’est arrivé, c’est que j’ai voulu faire un cv de l’auteur d’un site sur lequel je bosse, qu’il soit dispo dans la barre avec le retour à l’accueil du site
J’ai fait un article, et dans la config du menu j’ai donné le type : article, donné le N°, ça s’affichait bien dans la barre de menu, mais quand je cliquais dessus ça donnait « erreur 404 » j’ai fait la même chose avec une rubrique, idem.
Du coup ayant lu « Il faut lui donner un titre, ainsi qu’un mot-clé qui vous permettra de l’appeler facilement » j’ai créé et associé un mot clef à mon article (l’identifiant de ma barre) et ça marche.
Voila...
Si tu veux je te passe l’url du site etc. si veux voir ce que ça fait.
En tout cas, encore merci.
Bien cordialement,
Y
# Le 15 décembre 2011 à 14:18, par RastaPopoulos
En réponse à : Menus
Le « mot-clé » dont parle l’article, c’est l’identifiant du menu, ça n’a rien à voir.
Si un objet éditorial donne une page 404, c’est juste qu’il n’est pas publié. Un article est publié, si son statut est « publié ». Une rubrique est publiée si elle a au moins un contenu publié.
# Le 15 décembre 2011 à 14:43, par yves_web
En réponse à : Menus
Ok, pour le mot clef... Mais bon...
Pour le coup de la publication, merci, je savais.
Bonne journée
Y
Répondre à ce message
# Le 2 décembre 2011 à 11:56, par Capsco
En réponse à : Menus
Bonjour,
Je viens d’installer ce plugin et je rencontre un pb sous IE9 alors que ça fonctionne sur Firefox8.
Quand je créé un menu et que je clique sur "Ajouter une entrée" l’icône de travail bouge pendant 2 secondes mais cela ne fait rien.
J’ai cette erreur dans la console :
SCRIPT5007 : La valeur de la propriété « $ » est null ou non définie, pas un objet Function _ ?exec=menus_editer, Ligne 85 Caractère 2
Pour info je suis sur SPIP 2.1.12.
Merci
Répondre à ce message
# Le 22 novembre 2011 à 17:20, par JBPE
En réponse à : Menus
Bonjour, je reviens avec mon problème d’appel du menu, depuis trois semaines..
Je m’explique, j’ai intégré le mini-squelette dans le fichier de l’entête, en dessous-du titre et rien ne se passe.
<div id="entete"><a rel="start home" href="#URL_SITE_SPIP/" title="<:accueil_site:>" class="accueil">[(#LOGO_SITE_SPIP|image_reduire{300,100}) ]<strong id="nom_site_spip">#NOM_SITE_SPIP</strong></a>
#INCLURE{fond=inclure/menu, env, identifiant=menuhoriz}
Y-a-t-il quelque chose que je n’ai pas compris quelque part ???
Merci d’avance.
Jean-Baptiste
# Le 22 novembre 2011 à 17:27, par RastaPopoulos
En réponse à : Menus
Ben qu’est-ce que j’en sais moi... :)
Je ne connais pas ton site, ni son code, ni les menus que tu as créé dans l’interface de ce plugin. Tu as bien un menu dont l’identifiant est « menuhoriz » ? Quand tu fais « var_mode=inclure » dans l’URL, tu le vois quelque part ton bout de squelette ?
Répondre à ce message
# Le 22 novembre 2011 à 15:34, par gilles
En réponse à : Menus
Je peine pour l’utilisation de ce plugin sur un petit site multilingue.
Le site n’est pas partagé en secteur.
Les articles sont traduis avec les fonctions de traductions de spip
J’utilise le plugin pour le menu général du site.
Mais je ne vois pas comment faire pour avoir un menu par langue. Est-ce possible avec le plugin ?
Quelqu’un à déjà résolu cela ?
Sinon je trouverais un autre moyen, mais ce plus compliqué pour le propriétaire du site s’il veut changer ses menus.
Merci
# Le 22 novembre 2011 à 16:06, par RastaPopoulos
En réponse à : Menus
Oui j’ai résolu ça ne manière assez sympa d’après moi ça pourrait d’ailleurs être intégré au squelette fournit avec le plugin.
Dans mon squelette « inclure/barre-nav », au lieu d’insérer le menu « barrenav » je fais un test sur la langue et j’inclue le squelette « barrenav-codedelangue » s’il existe, sinon celui par défaut.
Voici le code que j’ai pour l’instant :
Répondre à ce message