PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 08/05/2014 01:02:21

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

[plugin] plxmenu : menu automatique avec sous-menus

Comme PluXml ne propose pas encore de gestion de menu (Spxdatas en propose une géniale, mais pour les pages statiques), voici un plugin qui crée un menu et des sous-menus automatiques, en listant les articles des catégories données pour chaque niveau de menu (ordre des articles déterminé par leur date).
Il est téléchargeable ici.

Explications
Ce plugin crée automatiquement un menu, à partir de la liste des articles d'une catégorie.

Pour afficher un sous-menu sous un article, il suffit d'associer le n° de l'article avec le n° de la catégorie pour le sous-menu (par ex. artcat="art16-cat7"), avec plusieurs associations possibles, séparées par des virgules et dans un ordre quelconque (par ex. artcat="art8-cat5, art16-cat7, art2-cat3").
La fonction étant récursive, il n'y a pas de limitation dans la profondeur des sous-menus.

Exemple d'utilisation
Voici nos catégories :
1 : Menu principal (articles Accueil, Fruits, Légumes, Contact)
2 : Pied de page (articles Mentions légales, Plan du site)
3 : Fruits (articles Pommes, Poires, Oranges)
4 : Légumes (articles Carottes, Salades, Haricots verts)
5 : Types de poires (articles Poires William, Poires Abbate, Poires Rocha)

L'objectif est d'obtenir le menu suivant (ici à trois niveaux) :
• Accueil (article 1)
• Fruits (article 2, associé à la catégorie 3)
   - Pommes (article 3)
   - Poires (article 4, associé à la catégorie 5)
        . Poires William (article 11)
        . Poires Abbate (article 12)
        . Poires Rocha (article 13)
   - Oranges (article 5)
• Légumes (article 6, associé à la catégorie 4)
   - Carottes (article 7)
   - Salades (article 8 )
   - Haricots verts (article 9)
• Contact (article 10)

Il faut donc écrire en PHP :

[== PHP ==]
$menu =  eval($plxShow->callHook('plxmenu', array('numcat'=>'1', 'artcat'=>'art2-cat3, art6-cat4, art4-cat5')));
echo $menu;

ou pour l'affichage de ce menu à l'intérieur d'une page, le shortcode suivant qui affiche la valeur fournie par le plugin (le plugin spxshortcodes doit être activé, le shortcode plxmenu est inclus dans le plugin) :

[-p-plxmenu numcat="1" artcat="art2-cat3, art6-cat4, art4-cat5"]

- Le "-p-" avant plxmenu sert à enlever le paragraphe p autour du shortcode (pour éviter d'avoir <p><ul> ... </ul></p> si le shortcode est écrit dans un éditeur Wysiwyg).

Pour un menu sans sous-menu, il suffit de ne pas mentionner le paramètre artcat (ou de lui attribuer une chaîne vide).

- Début de chaque liste (par défaut, c'est le début de balise ul) : menudebut="..." pour le menu de niveau 1, sousmenudebut="..." pour tous les sous-menus.
- Fin de chaque liste (par défaut, c'est la fin de balise ul) : menufin="..." pour la liste principale, sousmenufin="..." pour tous les sous-menus
=> ceci permet de fournir une balise ul avec une classe, ou bien de ne pas mettre de balise ul pour les sous-menus (dans ce cas, la fin de balise li pour l'article se trouve avant le sous-menu qui lui est associé).

- Classe attribuée à chaque ligne de la liste (par défaut, pas de classe) :
classli="..." pour les lignes du menu de niveau 1, sousmenuclassli="..." pour les lignes de tous les sous-menus.

- Tri des articles dans le menu de niveau 1 : tri="date" (valeur par défaut) pour un affichage par ordre de dates croissantes, tri="dateinv" pour un ordre de dates décroissantes.
- Tri des articles dans tous les sous-menus : sousmenutri="date" (valeur par défaut) pour un affichage par ordre de dates croissantes, sousmenutri="dateinv" pour un ordre de dates décroissantes.

Téléchargement de la dernière version  ► plxmenu

Historique des versions

## Version 1.5 (30/10/2017) ##
[+] Ajout du shortcode dans le plugin (modification du fichier plxmenu.php et ajout du dossier spxshortcodes)

## Version 1.4 (17/03/2016) ##
BUG Remplacement de &lt; et &gt; par < et > dans les paramètres (entités HTML créées par l'éditeur Wysiwyg)

## Version 1.3 (26/09/2014) ##
BUG Correction de bogue lorsqu'il y a plusieurs sous-menus

## Version 1.2 (16/06/2014) ##
BUG Corrections diverses

## Version 1.1 (08/05/2014) ##
BUG Correction d'erreurs

## Version 1.0 (04/05/2014) ##
Version initiale

Dernière modification par Francis (30/10/2017 13:53:10)

Hors ligne

#2 08/05/2014 22:37:00

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

Pour ceux qui auraient téléchargé la version 1.0, elle comportait des erreurs.
J'ai mis en ligne la version 1.1 corrigée.

Dernière modification par Francis (08/05/2014 22:37:14)

Hors ligne

#3 09/05/2014 15:12:52

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

Ça m'a l'air prometteur tout ça. À tester.
Merci Francis.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#4 23/07/2014 23:05:04

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

Juste pour dire que je vais l'utiliser sur un de mes projets. Merci Francis. kiss  big_smile


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#5 23/07/2014 23:38:11

je-evrard
Pluxml Staff
Lieu : pau
Inscription : 08/05/2012
Messages : 1 205
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

J'avais pas vu ce post. Merci francis.

A noter :

- tu peux déclarer ton shortcode dans le plugin plxmenu maintenant
- plus besoin de shortcode_p  smile


Petit à petit l'oiseau fait son nid.
- Sites : Création web - Création artistique
- pluxml : Plugins - Visual Wizard - facebook vw

Hors ligne

#6 24/07/2014 09:31:56

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

Merci Jerry, ça fait plaisir de voir que ce plugin est utile à la communauté  smile

Et merci aussi Jérôme, j'avais oublié de modifier ce post, depuis que le plugin shortocode_p est inclus dans spxshortcodes.
Ça y est, c'est rectifié et c'est plus simple comme ça !

Hors ligne

#7 24/07/2014 21:02:12

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

Juste une petite remarque. Il y a une erreur si tu utilises return dans ta fonction plxmenu principale (c'est dû à l'utilisation d'eval() je crois). Pour l'éviter, il faut le remplacer tout simplement par un echo.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#8 26/09/2014 14:10:04

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

Le plugin plxmenu ne fonctionnait pas bien lorsqu'il y avait plusieurs sous-menus, je m'en suis aperçu il y a peu.

Le problème est corrigé avec la version 1.3 : voir le téléchargement à partir du message initial.

Hors ligne

#9 23/03/2016 00:36:52

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

Version 1.4 qui corrige un problème, lorsqu'une balise HTML de début de liste est spécifiée, par exemple :

[-p-plxmenu numcat="3" menudebut="<ul class='page_sousmenu'>"]

où les symboles < et > sont remplacés par &lt; et &gt; par CKEditor :

<p>[-p-plxmenu numcat="3" menudebut="&lt;ul class='page_sousmenu'&gt;"]</p>

NB : Le shortcode plxmenu est inclus dans le plugin depuis la version 1.5, il faut bien sûr avoir installé et activé le plugin shortcode.

Lien et historique dans le premier message.

Dernière modification par Francis (30/10/2017 13:57:18)

Hors ligne

#10 30/10/2017 13:58:52

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

Re : [plugin] plxmenu : menu automatique avec sous-menus

Version 1.5 en ligne, avec shortcode intégré :
lien et historique dans le premier message.

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2018 PluXml.org, tous droits réservés