Hook Prestashop

J’expliquais dans mon article précédent comment greffer un module sur un hook supplémentaire. Ici je vais vous expliquer comment créer un nouveau hook que vous pourrez utiliser dans vos templates.

Créer un hook: Prestashop 1.6

Ajouter le hook dans la base de données.

Rendez-vous dans votre base de données et ajoutez-y votre point d’accroche:


INSERT INTO `ps_hook` (`id_hook`, `name`, `title`, `description`, `position`, `live_edit`) VALUES (NULL, 'DisplayMonHook', 'DisplayMonHook', 'La description de mon hook', '1', '1');

Placer votre hook dans votre template

Ouvrez le template sur lequel vous voulez ajouter votre hook.
Puis placez le code suivant là où votre hook doit apparaître:


{hook h="DisplayMonHook"}

Pensez à vider le cache de smarty.

Créer un hook: Prestashop 1.5

Enregistrez le hook dans la base de données.

Ouvrez phpMyadmin et affichez la table « ps_hook ».
Insérez un nouvel enregistrement à l’aide de cette requête:



INSERT INTO `ps_hook` (`id_hook`, `name`, `title`, `description`, `position`, `live_edit`) VALUES (NULL, 'DisplayMonHook', 'DisplayMonHook', 'La description de mon hook', '1', '1');


Surchargez la classe « frontControllerCore ».

Allez dans le dossier « override/classes » et créez le fichier « FrontController.php« .
Ajoutez-y le code suivant:


class FrontController extends FrontControllerCore {
public function displayHeader()
{

if (!self::$initialized)
parent::init();
self::$smarty->assign(array(
'HOOK_TOP3' => Module::hookExec('DisplayMonHook')
));
return parent::displayHeader();
}
}


Voila vous venez d’assigner à Smarty votre nouveau hook

/*** edit suite au commentaire de Pierre et dominique ***/

Placez votre hook dans votre template

Dernière étape (la plus facile).

Ouvrez votre template et placez votre hook où vous désirez le voir apparaître.



<div id="top3">
{$HOOK_TOP3}
</div>


Autorisez un module à utiliser un nouveau hook

Choisissez le module que vous désirez accrocher à votre nouveau hook.
L’idée est de créer une nouvelle avec le nom de notre hook qui va utiliser une fonction déjà existante du module.

Si par défaut votre module peut se greffer au point d’accroche « DisplayLeftColumn » alors on appelera la fonction hookDisplayLeftColumn.
Voici donc la fonction que vous devez ajouter à votre module.



[code language="php"]
public function hookTop3($params)
{
return $this->DisplayMonHook($params);
}

Et là j’ai créé ma fonction de hook pour mon

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *