Le hook sert exactement à ça : injecter dans la page un bout de code HTML généré par un module.
En général il faut coder dans le module pour générer et injecter ce code HTML, par exemple regarde dans le module HookContact les fichiers suivants :
HookContact/Config/config.xml : on y trouve la déclaration du hook dans la section "hooks"
HookContact/templates/frontOffice/default/main-footer-body.html : le template Smarty du HTML à injecter
HookContact/Hook/FrontHook.php : on y trouve la génération du code HTML à partir d'un template ($this->render()), et l'injection ($event->add())
Dans, le nom de la méthode est implicite, car on respect une règle de nommage fonction du nom du hook : main.footer-body => onMainFooterBody (tu vois l'idée)
Mais tu pourrais aussi indiquer explicitement la méthode a appeler pour générer le code HTML :
<tag name="hook.event_listener" event="main.footer-body" method="monNomDeMethodeAMoi"/>
Dans ce cas dans Hook/FrontHook.php on aurait écrit :
public function monNomDeMethodeAMoi(HookRenderBlockEvent $event) { ... }
Attention à la subtilité entre HookRenderEvent et HookRenderBlockEvent le premier est utllisé pour un hook simple, comme {hook name="home.body"}, et le second pour les hook de type bloc (avec répétition) : {hookblock name="main.footer-body" fields="id,class,title,content"}
Depuis Thelia 2.3, on peut accrocher un template à un hook sans coder (cf. http://doc.thelia.net/en/documentation/ … -thelia-23 ). Tu peux donc essayer quelque chose comme ça dans le config.xml du module BetterContact
<hooks>
<hook id="bettercontact.hooks">
<tag name="hook.event_listener" event="home.body" templates="render:le-nom-de-ton-template.html" />
</hook>
</hooks>
Inconvénient : tu ne peux pas passer de paramètres (comme un ID vendeur par exemple) au template qui est rendu.
Tu trouveras un exemple de cette technique dans HookProductsNew qui injecte les 4 derniers produits sur la home page.
Enfin, tu peux créer tes propes hooks. Il te suffit alors de les placer où tu veux dans tes templates : {hook name="mon-hook-a-moi"}. Voir ici : http://doc.thelia.net/en/documentation/ … e_own.html