Jump to content

Comment créer un HOOK ?


Recommended Posts

Bonjour,

 

J'utilise Prestashop 1.5.3.

Je suis entrain de créer un thème cependant je n'arrive pas à créer de HOOK supplémentaire...

 

J'ai trouver pas mal de tutos, mais aucun n'est pareil...

Je voudrais savoir si c'etait possible créer un HOOK dans le thème, sans passer par un module ?

Si oui, ça serais sympa de mettre le code à rajouter...

 

 

Merci beaucoup

Link to comment
Share on other sites

On oublie ce qui est dit au-dessus, par pitié.

 

Un hook dans le thème, sans passer par un module (ou l'édition d'un module existant) est impossible (il ne saura pas s'y greffer).

Cependant, il est possible d'utiliser la syntaxe suivante: (hook h='MonHook'} ou plus précisément {hook h='MonHook' mod='MonModule'}

 

Pour ajouter un hook en base de données... En fait, on ajoute pas un hook en base de donnée, voilà qui est dit. On laisse PrestaShop le gérer de lui-même, en lui demandant simplement ceci: $this->registerHook('Monhook');

 

Après, on peut utiliser une variable smarty pour y inclure un ensemble de hook mais on peut n'envisager que la création d'un module avec le hook personnalisé et son appel via la syntaxe mise plus haut dans le thème. Cela évite l'override de fichiers core, en gros.

Link to comment
Share on other sites

Merci pour vos réponses.

 

Donc pour résumé :

 

1) Je déclare mon HOOK dans mon module :

public function install()
   {
    if (!parent::install() ||
!$this->registerHook('monhookperso') ||
!$this->registerHook('top') ||
!$this->registerHook('header') || !$this->registerHook('displayMobileTopSiteMap'))
	    return false;
    return true;
   }

 

2) Je viens le chercher dans mon TPL comme ceci :

{hook h='monhookperso' mod='lemoduleoulehookpersoestdeclare'}

 

Je vais tester ça !

Link to comment
Share on other sites

Il faut avoir la méthode correspondante, également:

 

public function hookMonHookPerso($params)
{
 // do stuff
}

 

Si j'ai bien compris il y a les Hook de vue et les Hook d'action ?

Ce bout de code est-il obligatoire dans mon cas ou je veux simplement afficher un module ?

Link to comment
Share on other sites

Pour distinguer un hook d'action et un hook de vue, voici ce qu'il faut retenir: un hook d'action est une position sur laquelle un module peut se greffer et qui sera dès lors exécuté lorsqu'une action particulière à lieue... Exemple: l'ajout d'un produit.

 

Les hooks de vues sont, en gros résumé, ceux qui seront vu par le client. Par exemple, un module positionner sur la page produit ou encore le panier. Grosso modo, ceux qui seront intégrés dans le thème.

 

Quoiqu'il en soit, il faut déclarer la méthode du hook correspondant, peu importe le type de hook voulu :)

Link to comment
Share on other sites

  • 11 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...