Submitted by Zigazou on
Bonjour à tous,
Je viens de réaliser un module qui permet de régler certains problèmes de fil d'Ariane et de menu.
Je recherche des bonnes âmes pour :
- trouver un nom valable pour le module
- le tester
- proposer des évolutions
- détecter des inconsistances
- proposer des modifications lui permettant de fonctionner sur la version 5
- ...
Pour l'instant, je l'appelle 'pathmenu'. Vous pouvez télécharger le module pathmenu.
Que fait donc pathmenu ?
Il lit un ensemble de règles composées de conditions et d'actions et les exécutent. Plutôt qu'un long discours, voici un exemple de règle :
nodetype(story)->parentmenu(54)
Traduction : si le type de noeud est "story", alors la page sera rattachée temporairement au menu dont l'identifiant est 54.
Prenons le menu suivant :
- Menu principal
- Recettes
- Entrée
- Viande
- Poisson <-- menu 54
- Fromage
- Dessert
- Recettes
Quand Drupal affichera un noeud de type "story", le menu principal sera déplié afin de voir l'entrée "Poisson" ainsi que ses sous-menus. Le fil d'Ariane sera "Accueil >> Recettes >> Poisson".
Les conditions utilisables sont :
- nodetype(type de noeud) : condition sur le type de noeud
- nodeid(identifiant du noeud) : condition sur l'identifiant d'un noeud
- term(identifiant de terme) : condition sur un terme (taxonomy) auquel le noeud se rattache
- urlstart(début d'url) : condition sur le début d'url
Les actions possibles sont :
- parentmenu(identifiant du menu parent) : rattache la page courante au menu indiqué
- parentpath(chemin interne) : rattache la page courante au chemin indiqué
- localtask(titre,chemin) : ajoute une tâche locale à la page courante
Les conditions et les actions peuvent se cumuler :
urlstart(recette/)+nodetype(story)->parentmenu(54)+localtask(info,node/3/info)
Notes :
- pathmenu ne crée aucune table
- dès qu'une condition est remplie, l'action correspondante est exécutée, les règles suivantes sont ignorées, l'ordre d'écriture des règles est donc important
- les règles sont saisies dans une textarea, chaque règle doit tenir sur une ligne, toute ligne commençant par // est considérée comme un commentaire
- les règles sont compilées en code PHP lors de leur soumission afin de limiter leur impact sur le système
Impressionnant et très
Permalien Soumis par Damien Tournoud le 25 Février, 2007 - 20:55
Impressionnant et très utile!
Pas encore eu le temps de
Permalien Soumis par drupalfrance le 25 Février, 2007 - 23:55
Pas encore eu le temps de télécharger/tester, mais c'est une excellente idée ! Merci.
Bon, ben c'est en ligne sur
Permalien Soumis par Zigazou le 4 Mars, 2007 - 18:35
Bon, ben c'est en ligne sur drupal.org/project/pathmenu.
J'ai rajouté l'une ou l'autre condition/action, mis des commentaires comme il faut, mis en place le système de hook pour rajouter ses propres conditions et actions, rédigé une doc en anglais.
Y'a quelqu'un pour nous le tester sur une 5.0 ?
C'est parti :) Je viens de
Permalien Soumis par doppler le 19 Avril, 2007 - 11:07
C'est parti :)
Je viens de le balancer dans sites/all/modules et je suppose qu'en passant par Administrer » Construction du site » Modules, dans "Other" je devrais pouvoir le trouver. Mais ce n'est pas le cas.
(testé sur 3 sites)
Alors j'ai pas teste si le
Permalien Soumis par tostinni le 19 Avril, 2007 - 18:49
Alors j'ai pas teste si le code etait compatible avec la version 5 de Drupal, cependant vu qu'il manque le fichier .info, de toutes facons, Drupal va pas le voir.
Donc il suffit de rajouter un fichier pathmenu.info avec les infos suivantes:
; $Id$
name = pathmenu
description = Solve problems whit breadcrumb.
package = Other
Et voila.
Bien vu! :) Une fois fait
Permalien Soumis par doppler le 20 Avril, 2007 - 12:46
Bien vu! :)
Une fois fait (et les droits d'usages de pathmenu ajouté au groupe utlisateur) sa réaction est étrange...
Il n'apparait nulle part dans l'administration mais s'affiche tout de même dans les menus types nice_menus ou admin_menu. Un peu comme s'il était considéré non pas comme une fonction mais comme une catégorie. (et pas dans Administration » Configuration comme on pourrait s'y attendre)
En cliquant sur pathmenu via ces dits menus css je tombe sur un:
warning: call_user_func_array(): First argumented is expected to be a valid callback, 'pathmenu_form' was given in /(...)/includes/form.inc on line 218.
la ligne en question...
// If $callback was returned by a hook_forms() implementation, call it.
// Otherwise, call the function named after the form id.
$form = call_user_func_array(isset($callback) ? $callback : $form_id, $args);
Cela semble intimement lié avec ce qui est évoqué ici: http://drupalfr.org/node/1134
Mais comme je suis une brêle j'ai du mal à percuter.
Bonsoir Le module marche à
Permalien Soumis par floown@drupal.org le 20 Juin, 2007 - 23:20
Bonsoir
Le module marche à présent ? Je crois que c'est exactement ce dont j'ai besoin.
Hello, Ben apparement
Permalien Soumis par doppler le 4 Juillet, 2007 - 17:23
Hello,
Ben apparement Zigazou s'est éloigné de la chose, c'est la vie...
Peut-être faudrait il trouver des développeurs pour reprendre ce module qui semble excessivement pratique et utile, je ne sais...