30,997
edits
(syntaxe) |
mNo edit summary Tag: 2017 source edit |
||
| Line 46: | Line 46: | ||
2- Placer ensuite l'appel des hooks là où l'ajout de code est désiré : | 2- Placer ensuite l'appel des hooks là où l'ajout de code est désiré : | ||
< | <syntaxhighlight lang="PHP"> | ||
$parameters=array(); | $parameters=array(); | ||
$reshook=$hookmanager->executeHooks('hookname',$parameters,$object,$action); // See description below | $reshook=$hookmanager->executeHooks('hookname',$parameters,$object,$action); // See description below | ||
| Line 54: | Line 54: | ||
... // standard code that can be disabled/replaced by hook if return code > 0. | ... // standard code that can be disabled/replaced by hook if return code > 0. | ||
} | } | ||
</ | </syntaxhighlight> | ||
'''$hookmanager->executeHooks()''' accepte 4 paramètres et ajoute un hook (qui est un point d'entrée dans votre script pour des fonctions externes à votre script et module): | '''$hookmanager->executeHooks()''' accepte 4 paramètres et ajoute un hook (qui est un point d'entrée dans votre script pour des fonctions externes à votre script et module): | ||
| Line 61: | Line 61: | ||
- '''$parameters''' est un tableau personnalisé pour transmettre plus de données personnalisées au hook (la fonction dans le hook peut traiter ces données). Placez ici ce que vous voulez, ce peut être un fichier, un tableau de chaînes de caractères, n'importe quoi... Par exemple : | - '''$parameters''' est un tableau personnalisé pour transmettre plus de données personnalisées au hook (la fonction dans le hook peut traiter ces données). Placez ici ce que vous voulez, ce peut être un fichier, un tableau de chaînes de caractères, n'importe quoi... Par exemple : | ||
< | <syntaxhighlight lang="PHP"> | ||
$parameters=array('file'=>'my/path/to/a/file', 'customnames'=>array('henry','david','john')); | $parameters=array('file'=>'my/path/to/a/file', 'customnames'=>array('henry','david','john')); | ||
</ | </syntaxhighlight> | ||
- '''$object''' est l'objet que vous voulez passer à la fonction du hook, certainement les données du module courant (ex: l'objet facture si on est dans un module de facture, etc..). Ce peut être ce que vous voulez, mais souvenez vous qu'il sera le principal composant utilisé par les fonctions du hook. | - '''$object''' est l'objet que vous voulez passer à la fonction du hook, certainement les données du module courant (ex: l'objet facture si on est dans un module de facture, etc..). Ce peut être ce que vous voulez, mais souvenez vous qu'il sera le principal composant utilisé par les fonctions du hook. | ||
| Line 79: | Line 79: | ||
Ce qui veut dire que lorsqu'on se trouve dans le contexte donné, votre code sera appelé. | 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 : | 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 : | ||
< | <syntaxhighlight lang="PHP"> | ||
$this->module_parts = array( | $this->module_parts = array( | ||
'hooks' => array('hookcontext1','hookcontext2') // Set here all hooks context you want to support | 'hooks' => array('hookcontext1','hookcontext2') // Set here all hooks context you want to support | ||
); | ); | ||
</ | </syntaxhighlight> | ||
Note: il est possible de trouver le contexte d'un module en rajoutant | Note: il est possible de trouver le contexte d'un module en rajoutant | ||
< | <syntaxhighlight lang="PHP"> | ||
print('Module context: '.$object->context); | print('Module context: '.$object->context); | ||
</ | </syntaxhighlight> | ||
(rajoutez ce bout de code dans le fichier php où réside l'appel des hooks, et supprimez le, une fois la valeur du contexte relevée). | (rajoutez ce bout de code dans le fichier php où réside l'appel des hooks, et supprimez le, une fois la valeur du contexte relevée). | ||
| Line 98: | Line 98: | ||
Créez '''/htdocs/''yourmodulename''/class/actions_''yourmodulename''.class.php''' dans votre module avec un code qui contient la méthode appelée par le hook (le nom de cette méthode se voit au moment de l'appel executeHooks). Voici un exemple: | Créez '''/htdocs/''yourmodulename''/class/actions_''yourmodulename''.class.php''' dans votre module avec un code qui contient la méthode appelée par le hook (le nom de cette méthode se voit au moment de l'appel executeHooks). Voici un exemple: | ||
< | <syntaxhighlight lang="PHP"> | ||
class ActionsYourModuleName | class ActionsYourModuleName | ||
{ | { | ||
| Line 137: | Line 137: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
La méthode sera alors automatiquement appelée au moment de l'appel du code qui contient le executeHooks fournissant à votre code les éléments $parameters, $object et $action. | La méthode sera alors automatiquement appelée au moment de l'appel du code qui contient le executeHooks fournissant à votre code les éléments $parameters, $object et $action. | ||