Bonjour, Je rencontre un problème, probablement de compréhension, quand à la manière de déclarer les "LeftMenu" dans un module.
Je suis en train de créer un module intitulé "publication". J'ai donc tout naturellement créé la classe modPublication qui étend DolibarrModules. La déclaration de cette classe se situe dans le fichier de description du module, à savoir : htdocs/publication/core/modules/modPublication.class.php Je souhaiterais sur la même page, pouvoir créer deux blocs leftmenu distinct, un peu dans l'esprit de ce qui s'affiche sur le module Tiers : * Tiers Nouveau tiers Liste prospects * Contact/Adresses Nouveau contact/adresse Liste Je souhaiterais créer la même présentation, mais avec les intitulés suivants : * Gestion des abonnés Liste des abonnés Nouvel abonné * Gestion des abonnements Liste des abonnements Nouvel abonnement Pour faire cela, j'ai donc créé un topmenu qui se nomme "publication" avec "'fk_menu'=>0" S'en suit la déclaration d'un leftmenu de rang=0 nommé PubMenuSubscriber (correspondant à l'intitulé "Gestion des abonnés") puis la déclaration d'un leftmenu de rang=1 nommé PubMenuSubscriberList (correspondant à l'intitulé "Liste des abonnés"). La déclaration du menu intitulé "Nouvel abonné" suit la même logique que précédemment. Jusque là, tout va bien. C'est lorsque je souhaites créer un nouveau menu de rang=0 que les choses se compliquent. Enfin, pas tout à fait puisque le rang=0 s'affiche correctement, mais c'est le nouveau rang=1 qui devrait s'afficher sous le menu intitulé "Gestion des abonnements" qui dérape et s'en va s'afficher sous le menu intitulé "Nouvel abonné". Il en va de même avec le menu intitulé "Nouvel abonnement". Voici donc ce que j'obtiens lorsque j'active mon module Publication : * Gestion des abonnés Liste des abonnés Nouvel abonné Liste des abonnements Nouvel abonnement * Gestion des abonnements C'est je pense une histoire de dépendance et de rang d'une entrée de leftmenu puisque si je modifie à la main la table llx_menu, je parviens à un affichage cohérent. Voici un extrait de cette table avant mon intervention : rowid module type fk_menu position ---------------------------------------- 207 publication top 0 700 208 publication left 207 701 209 publication left 208 702 210 publication left 208 703 211 publication left 207 711 212 publication left 208 712 213 publication left 208 713 Comme on peut le voir, les rowid 212 et 213 dépendent de l'entrée 208. Ce qui se traduit par : les entrées de menu "Liste des abonnements" et "Nouvel abonnement" sont vues comme des sous menus de "Gestion des abonnés". Si je change manuellement dans la base de données les enregistrements conformément au modèle suivant : rowid module type fk_menu position ---------------------------------------- 207 publication top 0 700 208 publication left 207 701 209 publication left 208 702 210 publication left 208 703 211 publication left 207 711 212 publication left 211 712 213 publication left 211 713 Tout s’affiche correctement. Cependant, dès lors que je désactive le module puis je le ré-active, je perds cet ordre pour revenir à l'ordre précédent. Comment puis-je faire en sortes d'associer dans le code l’ordre décrit précédemment ? Voici en pièce jointe comment j'ai procédé pour déclarer ce menu. Merci de votre aide, @ vous lire, -- Marc-Henri Pamiseux SARL Libricks Maison de la technopole 6, rue Léonard de Vinci - BP 0119 53001 LAVAL Cedex
// Main menu entries
$this->menus = array(); // List of menus to add
$r=0;
// Publication Main Top menu
$this->menu[$r]=array( 'fk_menu'=>0,
'type'=>'top',
'titre'=>'Publication',
'mainmenu'=>'publication',
'leftmenu'=>'0',
'url'=>'/publication/index.php',
'langs'=>'publication@publication',
'position'=>700,
'perms'=>'$user->rights->publication->read',
'enabled'=>'$conf->publication->enabled',
// 'perms'=>'1',
'target'=>'',
'user'=>0
);
$r++;
// Menu gestion des abonnés
$this->menu[$r]=array( 'fk_menu'=>'r=0',
'type'=>'left',
'titre'=>'PubMenuSubscriber',
'mainmenu'=>'publication',
'url'=>'/publication/subscriber.php?mainmenu=publication&action=index',
'langs'=>'publication@publication',
'position'=>701,
'perms'=>'$user->rights->publication->read',
'enabled'=>'$conf->publication->enabled',
'target'=>'',
'user'=>0
);
$r++;
// SubMenu Liste des abonnés
$this->menu[$r]=array( 'fk_menu'=>'r=1',
'type'=>'left',
'titre'=>'PubMenuSubscriberList',
'mainmenu'=>'publication',
'url'=>'/publication/subscriber.php?mainmenu=publication&action=list',
'langs'=>'publication@publication',
'position'=>702,
'perms'=>'$user->rights->publication->read',
'enabled'=>'$conf->publication->enabled',
'target'=>'',
'user'=>0
);
$r++;
// SubMenu Nouvel abonné
$this->menu[$r]=array( 'fk_menu'=>'r=1',
'type'=>'left',
'titre'=>'PubMenuSubscriberNew',
'mainmenu'=>'publication',
'url'=>'/publication/subscriber.php?mainmenu=publication&action=create',
'langs'=>'publication@publication',
'position'=>703,
'perms'=>'$user->rights->publication->create',
'enabled'=>'$conf->publication->enabled',
'target'=>'',
'user'=>0
);
$r++;
// Menu Gestion des abonnements
$this->menu[$r]=array( 'fk_menu'=>'r=0',
'type'=>'left',
'titre'=>'PubMenuSubscription',
'mainmenu'=>'publication',
'url'=>'/publication/subscription.php?mainmenu=publication&action=index',
'langs'=>'publication@publication',
'position'=>711,
'perms'=>'$user->rights->publication->read',
'enabled'=>'$conf->publication->enabled',
'target'=>'',
'user'=>0
);
$r++;
// SubMenu Liste de sabonnements
$this->menu[$r]=array( 'fk_menu'=>'r=1',
'type'=>'left',
'titre'=>'PubMenuSubscriptionList',
'mainmenu'=>'publication',
'url'=>'/publication/subscription.php?mainmenu=publication&action=list',
'langs'=>'publication@publication',
'position'=>712,
'perms'=>'$user->rights->publication->read',
'enabled'=>'$conf->publication->enabled',
'target'=>'',
'user'=>0
);
$r++;
// SubMenu Nouvel abonnement subscription
$this->menu[$r]=array( 'fk_menu'=>'r=1',
'type'=>'left',
'titre'=>'PubMenuSubscriptionNew',
'mainmenu'=>'publication',
'url'=>'/publication/subscription.php?mainmenu=publication&action=create',
'langs'=>'publication@publication',
'position'=>713,
'perms'=>'$user->rights->publication->create',
'enabled'=>'$conf->publication->enabled',
'target'=>'',
'user'=>0
);
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Dolibarr-user mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/dolibarr-user
