dolibarr-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dolibarr-user] Gestion des menus


From: Marc-Henri Pamiseux
Subject: [Dolibarr-user] Gestion des menus
Date: Fri, 03 Aug 2012 19:38:08 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20120430 Thunderbird/12.0.1

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

Attachment: declaration_menu.txt
Description: Text document

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]