...
Comme vous l’avez sûrement déjà constaté, PrestaShop est un logiciel qui vous permet de créer des modules ayant pour but d’interagir directement avec l’affichage ou les événements du cœur de coeur de la solution.
Les « hooks » ou « crochets » vous permettent de récupérer ces événements ou encore modifier l’affichage.
...
Tout d’abord pour utiliser correctement les « hooks », il vous faut créer dans la classe de votre module une méthode non statique publique commençant par le mot clé « hook » suivi du nom du « hook » utilisé.
Puis, un seul et unique argument est passé à la méthode, il s’agit du tableau des différentes informations de contexte envoyées au « hook ».
Code Block |
---|
public function hookNameOfHook($params)
{
}
|
Ensuite, il est important dans l’installation de votre module de l’accrocher aux différents « crochets » désirés. Pour cela, vous utiliserez la méthode « registerHook » n’acceptant qu’un seul paramètre également, il s’agit du nom du « hook »
Code Block |
---|
public function install()
{
return parent::install() && $this->registerHook('NameOfHook');
}
|
...
Le premier appel est la méthode directe. Il prend deux arguments : le nom du « hook » et un tableau des différentes informations de contexte.
Code Block |
---|
$params = array(
'param_1' => 'value_1',
'param_2' => 'value_2',
);
Module::hookExec('NameOfHook', $params);
|
Le second appel est un « raccourci » vers le premier afin d’afficher plus « proprement » l’appel à effectuer. Tous les « raccourcis » sont disponibles dans la classe « Hook ».
Code Block |
---|
class HookCore extends ObjectModel
{
// ...
static public function updateProduct($product)
{
$params = array('product' => $product);
return Module::hookExec('updateProduct', $params);
}
// ...
}
|
L’appel du « hook » nommé « updateProduct » se fera donc comme ci-dessous dans le cœur coeur de PrestaShop.
Code Block |
---|
Hook::updateProduct(new Product(/* ... */));
|
Note |
---|
Nous avons bien appelé la classe « HookCore » en utilisant « Hook » comme nom de classe. Ceci est dû à l’override que nous aborderons la prochaine fois ! |
Code Block |
Comment
...
en
...
ajouter
...
de
...
nouveau
...
?
...
Si
...
vous
...
avez
...
suivi
...
jusqu’ici
...
le
...
déroulement
...
d’utilisation
...
des
...
«
...
hooks
...
»
...
et
...
après
...
utilisation
...
de
...
PrestaShop,
...
alors
...
vous
...
allez
...
sûrement
...
vous
...
rendre
...
compte
...
qui
...
vous
...
manquera
...
des
...
«
...
hooks
...
»
...
comme
...
«
...
FaireLeCafe
...
»,
...
«
...
FaireAManger
...
»,
...
ou
...
encore
...
«
...
RepondreAuxClientsAMaPlace
...
».
...
Pas
...
de
...
panique
...
!
...
Pour
...
créer
...
votre
...
petit
...
«
...
hook
...
»
...
à
...
vous,
...
il
...
vous
...
suffit
...
tout
...
simplement
...
d’enregistrer
...
une
...
ligne
...
dans
...
la
...
base
...
de
...
données
...
dans
...
la
...
table
...
«
...
ps_hook
...
»
...
avec
...
le
...
nom
...
de
...
votre
...
«
...
hook
...
»,
...
son
...
titre.
...
(Voir
...
0
...
et
...
1
...
si
...
celui-ci
...
est
...
compatible
...
avec
...
LiveEdit
...
ou
...
non)
...
Code Block |
---|
INSERT INTO `ps_hook` (`name`, `title`, `description`) |
...
VALUES ('nameOfHook', 'Name Of Hook', 'It is a custom hook !'); |
Code Block |
---|
Enfin, utilisez-le(s) simplement comme nous avons vu dans cet article.