Line 8:
Line 8:
= Implementation =
= Implementation =
−
Pour utiliser un Hook (donc surcharger une fonction), vous devez d'abord avoir défini un module (voir le wiki sur la création d'un module). Ensuite vous devez suivre les étapes suivantes :
+
Pour utiliser un Hook (donc ajouter ou surcharger une partie de code), vous devez d'abord avoir défini un module (voir le wiki sur la création d'un module). Ensuite vous devez suivre les étapes suivantes :
−
−
1. Pour ajouter votre module au contexte où le hook doit d'exécuter
−
Ce qui veut dire que lorsqu'on se trouve dans le contexte donné (module dolibarr), votre module sera appelé.
−
Pour cela, éditer le descripteur de votre module (/htdocs/includes/modYourModuleName.class.php) et renseignez la variable $this->const comme par exemple (modifiez le code en gras selon votre module)
+
1. Ajouter votre module au contexte où le hook doit d'exécuter.
+
Ce qui veut dire que lorsqu'on se trouve dans le contexte donné, votre code sera appelé.
+
Pour cela, éditer le descripteur de votre module (/htdocs/''yourmodulename''/core/modules/mod''YourModuleName''.class.php) et renseignez la variable $this->module_parts comme sur l'exemple :
<source lang="php">
<source lang="php">
−
$this->const = array(
+
$this->module_parts = array(
−
0=>array(''''MAIN_MODULE_YOURMODULENAME_HOOKS'''', 'chaine', ''''productcard:invoicecard:propalcard'''',
+
'hooks' => array('hookcontext1','hookcontext2') // Set here all hooks context managed by module
−
''''Hooks list for managing printing functions of the CustomFields module'''', 0, 'current', 1)
);
);
</source>
</source>
−
Rappel Note: format d'une déclaration de constante :
+
'''IMPORTANT''': n'oubliez pas de désactiver puis de réactiver votre module pour que la modification soit prise en compte car la sauvegarde des couple modules-hooks à gérer est faite en base, laquelle n'est mise à jour qu'au moment de l'activation du module.
−
<source lang="php">
−
$key=>array($const_name,$type,$value,$description,$visible_on_admin_panel=0,$entity='current',$deleteonunactive=0),
−
$key2=>...
−
</source>
−
où $key being est un entier positif.
−
−
'''IMPORTANT''': n'oubliez pas de désactiver puis de réactiver votre module pour que la modification soit prise en compte. Attention le dernier paramètre doit être 1 et no 0 (valeur par défaut) pour écraser une éventuelle valeur précédente.
2. Pour remplacer une fonction existante par la votre (surcharge)
2. Pour remplacer une fonction existante par la votre (surcharge)