[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Dolibarr-dev] [dolibarr] Ajout de CustomFields module et correction
From: |
Laurent Destailleur (eldy) |
Subject: |
Re: [Dolibarr-dev] [dolibarr] Ajout de CustomFields module et correction de bugs pour PayPal et autres (#20) |
Date: |
Sun, 16 Oct 2011 02:05:41 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 |
Le 15/10/2011 08:31, Stephen L. a écrit :
Bon je viens passer un bon bout de temps à essayer de porter CF avec les hooks,
mais je ne vois pas de façon élégante de le faire pour le moment.
De ce que je comprends, le module dans lequel je dois implémenter CF (prenons
comme exemple product), doit lui-même déclarer les modules qui peuvent se
hooker à lui. Au final, je dois quand même modifier le module product pour
supporter CF :
1- ajouter CF dans $this->const
2- ajouter les hooks aux endroits requis (et 2bis mettre en array les
paramètres requis?)
3- déplacer le code d'appel à CF dans
/htdocs/product/class/action_product.class.php, que je devrais recopier dans
tous les autres hooks files.
Proposition: ne serait-il pas plus judicieux pour le hookmanager de scanner
tous les descripteurs (ou seulement un dossier de descripteurs spéciaux à la
triggers) et de les charger si eux-mêmes se sont liés au module hooké ?
Par exemple : dans /htdocs/include/module/modCustomFields.class.php je rajoute :
$this->const = array(0=>array('MAIN_MODULE_MYMODULENAME_HOOKS','all'));
Le 'all' n'est pas géré. Erreur de doc.
Pour hooker tout, ou juste:
$this->const =
array(0=>array('MAIN_MODULE_MYMODULENAME_HOOKS',array('product'=>array('showInputFields','AnotherMethod'),'service'=>array('showInputFields'))));
Pour juste hooker products et services (qui sont en vrai le meme module mais
passons).
Non, ce serait juste
$this->const =
array(0=>array('MAIN_MODULE_MYMODULENAME_HOOKS',array('mymodulename'=>array('product','productdao'));
pour dire "mymodule" se déclenche dans le contexte product (affichage
page produit/service) et dans le contexte productdao (execution des
fonctions CRUD du produit/service).
Ensuite le fait d'avoir les méthode showInputFields fera que la methode
sera appelé ou non, mais les methodes ne se déclare pas.
Ensuite, je n'aurais qu'à créer un fichier
/htdocs/customfields/hooks/actions_customfields.class.php et redéfinir dedans
les méthodes qui seront appelées par le hookermanager.
oui
Le chemin exact dit etre
/htdocs/customfields/class/actions_customfields.class.php
Je reroute le mail sur la ML dolibarr dev qui doit etre utilisé pour ces
discussions.
Qu'en pensez-vous ?
----
Néanmoins je ne pense pas pouvoir continuer davantage à contribuer, je dois
maintenant passer à d'autres projets. Dans le cas où vous voudriez porter CF
avec les hooks dans le futur, je pense qu'un simple copier coller des parties
qui sont dans les modules (chercher customfields_print_creation_form() et
customfields_print_main_form() ) et les déplacer simplement dans un hook
devrait relativement bien fonctionner (ne pas oublier le paramètre
$currentmodule - je ne sais pas si $object contient l'information de nom du
module courant). Ah oui et contrairement à ExtraFields, CF gère avec 2
fonctions différentes l'affichage selon que le formulaire est la première
création ou si c'est sur le datasheet.
Voilà, merci pour vos réponses et support messieurs, bon courage dans la
continuation de votre projet.
--
Eldy (Laurent Destailleur).
---------------------------------------------------------------
EMail: address@hidden
Web: http://www.destailleur.fr
Dolibarr (Project leader): http://www.dolibarr.org
To make a donation for Dolibarr project via Paypal: address@hidden
AWStats (Author) : http://awstats.sourceforge.net
To make a donation for AWStats project via Paypal: address@hidden
AWBot (Author) : http://awbot.sourceforge.net
CVSChangeLogBuilder (Author) : http://cvschangelogb.sourceforge.net
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Dolibarr-dev] [dolibarr] Ajout de CustomFields module et correction de bugs pour PayPal et autres (#20),
Laurent Destailleur (eldy) <=