implémenter un hook sur les demandes fournisseurs

bonjour à tous,

je cherche depuis un moment, mais je rencontre un petit souci avec un « hook »
dans mon module, j’ai déjà un hook sur les propal commerciales qui fonctionne sans problème (simple ajout d’un bouton)

mais je veux également un hook dans le même module mais cette fois-ci pour ajouter un bouton ou un lien dans les propositions fournisseurs
le contexte est me semble - t-il : supplier_proposalcard
donc dans mon fichier de classe modMyModule.class.php j’appelle mes deux contextes

$this->module_parts = array('hooks' => array('propalcard')); $this->module_parts = array('hooks' => array('supplier_proposalcard'));

mais plus rien ne fonctionne quand je déclenche mes actions dans la fonction addMoreActionsButtons de mon fichier de classe
actions_mymodule.class.php dont je vous mets le code en entier car il y a surement un problème là dedans

[code]

<?php class Actionsmymodule { function addMoreActionsButtons($parameters, &$object, &$action, $hookmanager) { $id = GETPOST('id', 'int'); if($parameters['currentcontext'] == "propalcard") print("Mon nouveau lien"); print ("MON NOUVEAU BOUTON"); return 0; [b] if($parameters['currentcontext'] == "supplier_proposalcard") print("Mon nouveau lien"); return 0;[/b] } }[/code] le problème se situe au niveau du code en gras ? on ne peut pas cumuler ces deux contextes dans la même fonction ? Merci à ceux qui maitrisent cela parfaitement, si ils peuvent m'aider un peu ..

Bonjour,

Je pense que le probléme ce situe dans la déclaration.
Normalement c’est $this->module_parts = array( 'hooks' => array('hookcontext1','hookcontext2') // Set here all hooks context you want to support );

https://wiki.dolibarr.org/index.php/Système_de_Hooks

1 « J'aime »

bonjour,
oui c’était bien dans la déclaration le pb, merci !
et si je veux utiliser la base de donnée dans la addMoreActionsButtons ?
je dois passer via la variable $parameters ?
je suppose que oui, mais je ne sais pas ou il faut l’initialiser (dans le fichier modMyModule.class.php ?)
merci encore

j’ai trouvé il suffisait de déclarer $db en variable globale