Menu 100% administrable à la wordpress
je-evrard
Member
Salut à tous,
J'ai dans l'idée de faire un plugin de menu sur 1 ou deux niveaux 100% administrable (pas automatique donc ou peut-etre une option dans la configuration pour démarrer).
J'ai déja attaqué bien sur.
La partie adminstration est plus ou moins réglée (via spxdatas). On pourra créer un ou plusieurs menus un peu comme spxwpolaroid et spxwunslider.
J'ai rajouté la possiblité de faire des drag and drop sur deux niveaux :
[list=*]
[*]vertical pour modifier l'ordre[/*]
[*]horizontal pour les niveaux (menu sous menu)[/*]
[/list]
Pour le menu lui meme on a le choix entre pages statiques, catégories, liens externes ou internes.
A l'usage c'est très simple vous verrez.
Le problème n'est pas vraiment la.
Dans un site on peux souvent dire que l'on a plus ou moins trois menus :
- Un menu principal incluant menu sous menu
- Un menu sur le coté parfois utilie et éventuellement avec des sous menu
- Un menu dans le footer en ligne le plus souvent
Ces menus ont le plus souvent une structure en liste.
Pour récupérer le menu on peux imaginer le système suivant sous forme de shorcode placé dans le thème, dans un article ou dans une page statique.
Par default le menu peux renvoyer une structure html comme pour worpress.
Voir une vidéo sur le sujet : https://www.youtube.com/watch?v=M_L1pl3FQ_E
Le début du code de wordpress est intéressant pour les options du menu.
Ainsi on peux imaginer ceci par exemple
ce qui donne
<ul id='idmymenu' class='mymenu'>
<li>...</li>
...
<ul>
Les paramètres vont permettre de définir la sortie de notre menu html.
Qu'en pensez-vous ?
J'ai dans l'idée de faire un plugin de menu sur 1 ou deux niveaux 100% administrable (pas automatique donc ou peut-etre une option dans la configuration pour démarrer).
J'ai déja attaqué bien sur.
La partie adminstration est plus ou moins réglée (via spxdatas). On pourra créer un ou plusieurs menus un peu comme spxwpolaroid et spxwunslider.
J'ai rajouté la possiblité de faire des drag and drop sur deux niveaux :
[list=*]
[*]vertical pour modifier l'ordre[/*]
[*]horizontal pour les niveaux (menu sous menu)[/*]
[/list]
Pour le menu lui meme on a le choix entre pages statiques, catégories, liens externes ou internes.
A l'usage c'est très simple vous verrez.
Le problème n'est pas vraiment la.
Dans un site on peux souvent dire que l'on a plus ou moins trois menus :
- Un menu principal incluant menu sous menu
- Un menu sur le coté parfois utilie et éventuellement avec des sous menu
- Un menu dans le footer en ligne le plus souvent
Ces menus ont le plus souvent une structure en liste.
Pour récupérer le menu on peux imaginer le système suivant sous forme de shorcode placé dans le thème, dans un article ou dans une page statique.
[== Indéfini ==]
[SPXWMENU id=001]
Par default le menu peux renvoyer une structure html comme pour worpress.
Voir une vidéo sur le sujet : https://www.youtube.com/watch?v=M_L1pl3FQ_E
Le début du code de wordpress est intéressant pour les options du menu.
[== Indéfini ==]
/**
* Displays a navigation menu.
*
* @since 3.0.0
*
* @param array $args {
* Optional. Array of nav menu arguments.
*
* @type string $menu Desired menu. Accepts (matching in order) id, slug, name. Default empty.
* @type string $menu_class CSS class to use for the ul element which forms the menu. Default 'menu'.
* @type string $menu_id The ID that is applied to the ul element which forms the menu.
* Default is the menu slug, incremented.
* @type string $container Whether to wrap the ul, and what to wrap it with. Default 'div'.
* @type string $container_class Class that is applied to the container. Default 'menu-{menu slug}-container'.
* @type string $container_id The ID that is applied to the container. Default empty.
* @type callback|bool $fallback_cb If the menu doesn't exists, a callback function will fire.
* Default is 'wp_page_menu'. Set to false for no fallback.
* @type string $before Text before the link text. Default empty.
* @type string $after Text after the link text. Default empty.
* @type string $link_before Text before the link. Default empty.
* @type string $link_after Text after the link. Default empty.
* @type bool $echo Whether to echo the menu or return it. Default true.
* @type int $depth How many levels of the hierarchy are to be included. 0 means all. Default 0.
* @type string $walker Allows a custom walker class to be specified. Default empty.
* @type string $theme_location Theme location to be used. Must be registered with register_nav_menu()
* in order to be selectable by the user.
* @type string $items_wrap How the list items should be wrapped. Default is a ul with an id and class.
* Uses printf() format with numbered placeholders.
* }
* @return mixed Menu output if $echo is false, false if there are no items or no menu was found.
*/
function wp_nav_menu( $args = array() ) {
static $menu_id_slugs = array();
$defaults = array( 'menu' => '', 'container' => 'div', 'container_class' => '', 'container_id' => '', 'menu_class' => 'menu', 'menu_id' => '',
'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0, 'walker' => '', 'theme_location' => '' );
Ainsi on peux imaginer ceci par exemple
[== Indéfini ==]
[SPXWMENU id=001 menu_class='mymenu' menu_id='idmymenu' ]
ce qui donne
<ul id='idmymenu' class='mymenu'>
<li>...</li>
...
<ul>
Les paramètres vont permettre de définir la sortie de notre menu html.
Qu'en pensez-vous ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ton analyse sur les 3 'type' de menu est très bonne mais ne le prends pas mal, toutes ses ID et class dans Wordpress me font un mal de tête et alourdie le rendus au final pour pas grand chose.
Ensuite il est vrai que ce qui peux manquer dans PluXml, c'est la gestion sur 2 niveau la navigation.
A mon avis ça serait peut être mieux de rendre la tâche plus facile est automatiser en exploitant les groupes de pages statiques qui pour le moment peux ce faire via js pour réaliser un menu déroulant (voir article sur Pluxopolis pour rappel).
En tout cas merci pour ce futur plugin
Je ne le prends pas mal et tu viens justement de me donner une idée (merci). Il m'est tout à fait possible d'automatiser les groupes de page statiques dans l'administration.
Dans l'admin du menu pour chaque lien j'ai le choix de la cible entre :
[list=*]
[*]pages statiques[/*]
[*]catégories[/*]
[*]liens externes ou internes[/*]
[/list]
Je peux rajouter à cette liste le groupe de page statique qui va permettre de rajouter x liens (du groupe) dans la structure html de l'arbre du menu (automatiquement donc).
On peux donc avoir :
[list=*]
[*]pages statiques[/*]
[*]groupes de pages statiques[/*]
[*]catégories[/*]
[*]liens externes ou internes[/*]
[/list]
Je sais que wordpress est une usine à gaz, mais il y a tout de même de bonnes idées a "piquer". L'idée est justement de faire le plus simple et le plus puissant possible.
Le débat est ouvert.
WordPress a plein de bonnes choses mais la gestion des menus de pages statiques est complètement nulle (AMHA) : on définit une hiérarchie des pages, et pour les menus, on est obligé de dupliquer cette même hierarchie ! Faire deux fois le même boulot, c'est chercher à provoquer des erreurs.
Je trouve la logique de PluXml avec les pages statiques intégrés dans le menu directement beaucoup plus censée.
Si on définit plusieurs menus, il suffirait de changer la liste déroulante Afficher | Masquer, par une liste Menu 1 | Menu 2 | Menu 3 | Masquer. On ajoute la gestion de sous menus avec les groupes et il n'y a pas besoin de plus !
Après c'est sur qu'on peut envisager de faire un menu complètement configurable mais combien d'utilisateurs de PluXml, en ont-ils besoin ?
Bonne journée.
Le plugin menu de ouf
Le plugin : spxwmenu
Le premier menu test
L'édition du menu test
Le drag and drop verticale et horizontale
Les options de liens (je vais rajouter les options dont on a parlé)
Le shortcode menu dans un article
L'affichage du menu
A+
jéjé
Franchement, chapeau bas !!! Excellent boulot ton plug-in !
Il est vrai que la manipulation du menu dans PluXml et réduit au strict minimum.
Avec ce plug-in ce sera du pur bonheur
J’ai hâte de pouvoir le tester et de pouvoir l’intégrer dans mon prochain thème.
Bonne continuation....
Le plugin est en bonne voie, mais je dois d'abord finir un gros projet (priorité oblige). [del]Je pense que mi septembre il sera la[/del].
Ne pas hésiter à apporter vos idées d'amélioration.
a+
jerome
Bon ça avance très bien mais encore du boulot dessus.
Pour ce qui est fait et à faire :
- gestion du drag and drop horizontal lattéral : ok
- url groupes statiques + url article catégories : ok
- intégration libraies css + javascript menu bootstrap optionnelles : ok
- personnalisation du menu via le shortcode (class, id, select personnaisable dans les noms): ok --> va permettre de s'adapter a des structure html différentes (superfish...)
- traductions de l'admin : en cours
- interprétation d'un menu de 3ème niveau (pour groupe statique et articles catégories) : à faire
- Aide : à faire
Bon ben c'est pas loin..
a+
jéjé
Ce menu paraît très intéressant.
J'aimerais savoir si on pourrait y mettre aussi les pages Articles ?
Je fais tous mes sites avec des articles, ça me permet d'utiliser le filtrage par catégorie (pour les sous-menus) et à l'occasion le plugin ChampArt.
L'idéal serait qu'on puisse en option faire figurer la liste des articles dans les liens proposés. :
- si comme moi, on utilise les articles pour les pages du site, c'est indispensable.
- pour celui qui utilise les pages statiques pour son site, avec à côté un blog comprenant pas mal d'articles, ça lui éviterait d'encombrer la liste de choix avec tout ces articles.
Qu'en penses-tu ?
Le projet spx (pour ceux qui connaissent) propose pour le moment un menu avec des liens ciblant uniquement pages statique, catégorie et liens personnalisés internes et externes.
Ce nouveau menu change la donne car il va permettre la même chose mais avec deux autres options :
[list=*]
[*]1) Groupe de pages statiques[/*]
[*]2) Articles catégories[/*]
[/list]
Concrètement cela va permettre de créer automatiquement un sous menus constitué soit des pages statiques d'un meme groupe ou des x derniers articles d'une catégorie (pour les articles une option permettra d'en limiter le nombre.)
Cela te convient-il ?
A+
jéjé
- on choisit une catégorie dans "Articles catégories" => tous les articles de cette catégorie vont se trouver dans le sous-menu en question.
- l'ordre des articles se fait en changeant les dates, ils sont classés par ordre de date décroissante.
J'avais fait quelque chose de ce genre pour le plugin plxmenu, mais de façon plus rustique (pas du tout graphique !) et moins complète, puisque ce plugin ne liste que des articles.
En fait, ce que j'imaginais, c'était un menu comme dans Joomla, où pour chaque lien, on choisit un article, ou un lien externe, ou autre chose..., et on lui attribue un texte dans ce menu.
Mais ce genre de truc est plus complexe à faire, ton menu doit déjà l'être pas mal !
C'est tout à fait ça !
Je peux dans une future version proposer une option pour que la liste renvoie aussi directement les articles (en les limitant éventuellement).A cogiter.
Il est en fait d'une complexité moyenne. La partie administration est grandement simplifiée par spxdatas (juste à en faire la description). La partie affichage est intéressante et encore non finalisée mais bien avancée. Etant sur un autre projet actuellement je travaille sur ce plugin en dilettante sans me prendre la tête et sans me mettre la pression. En fait, ce genre de plugin viendra enrichir le futur projet spx5. Mais bon, chaque chose vient en son temps.
A+
On attend ton plugin, mais il n'y a pas le feu, tu t'es déjà mis pas mal de pression pendant des mois avec le méga-plugin spxdatas !
@+ pour des nouvelles !
OK
- gestion du drag and drop horizontal lattéral : ok
- url groupes statiques + url article catégories : ok
- intégration libraies css + javascript menu bootstrap optionnelles : ok
- personnalisation du menu via le shortcode (class, id, select personnaisable dans les noms): ok --> va permettre de s'adapter a des structure html différentes (superfish...)
- interprétation d'un menu de 3ème niveau (pour groupe statique et articles catégories) : ok
A FAIRE
- traductions de l'admin : en cours
- Aide : à faire
a+
jéjé
J'ai pris du retard comme d'habitude. J'espère pouvoir sortir le plugin dans moins de 15 jours...
a+
jéjé
Passe en mode Debian : « Ça sort quand c'est prêt ! »
à plus,
Gzyg
Le plugin est disponible dans le depot spx (spxwmenu).
Pour le moment la doc n'est pas a jour et les fichiers de traduction ne sont pas fait (version 1.1)
Le plugin nécessite spxdatas et spxshortcodes. pour Spxdatas l'installation se fait maintenant en 1 clic depuis la config du plugin (version 1.72).
j'ai mis en, place une Demo live pour montrer le plugin. (demo-spx5)
Il utilise le thème par default avec la modifs suivantes :
1 shortcode dans header.php
1 shorcode dans Sidebar.php
La démo utilise donc deux menus différents (1 bootstrap et 1 default)
Vous pouvez vous connecter dans l'admin ici (login : demo password : demo). Partie widget / menus
Les widgets spxdatas s'étoffent petit à petit.
a+
jéjé