Jump to content

Hook, override, et autres subtilités.


Recommended Posts

Bonjour à la communauté prestashopienne... Qui un jour je l’espère aura plus de module contrib' gratuit que payant :3

 

Et je compte bien y mettre la main à la patte o/.

 

Mais bon, je reviens vers Prestashop après un crochet vers Drupal et j'ai quelque question (La doc' de prestashop ressemblant plus à un tuto, simple à digérer mais réfrénant pour aller plus loin, m'obligeant parfois à me fier à google) :

 

Déjà le nouveau système de hook (Greffe en français il me semble), pourquoi la dernière fois que j'ai regardé la doc FR, il n'est pas mentionné que l'on peut créer ses propres custom hook ?

Avec une syntaxe plus que simple à glisser dans n'importe quel tpl du module X

<?php
{hook h='displayMonHook'}
?>

Bon bien sur, il vaut mieux y ajouter la méthode adéquate dans le fichier .php du module x.

<?php
public function displayMonHook($params)
{
	return $this--->hookDisplayTop($params); //C'est la version la plus simple encore une fois.
}
?>

 

Je trouve dommage que cela ne soit pas plus mis en avant, car c'est une bonne et grande nouveauté, surtout par rapport à la 1.4 où, dans mes souvenirs, il nous fallait toucher à la BDD pour implémenter un hook.

 

Et puis à propos de l'override/surcharge des fichiers. On en parle sans en parler (Toujours la doc FR, la EN est quand même plus fournis). Alors que c'est quand même la clef pour une boutique avec un code propre.

 

J'ai justement deux petites questions (n'ayant pas de pc pour tester ceci ou cela sous la main) :

 

Pour les méthodes des custom hook, j'aurais tendance à les écrire directement dans /modules/moduleX/moduleX.php (sachant que je n'ai fais que lire la doc + google).

Mais la bonne méthode ne serais pas de copier le dossier module dans /themes/modules/ et d'y faire les modifications nécessaires ?

Et si on peut aussi me confirmer que cela override/surcharge aussi les fichiers CSS, JS ?

 

Et puis s'il on veut créer un nouveau tpl d'un module déjà existant, faut-il mieux le faire dans /modules/moduleX/nouveau.tpl ?

Ou dans /themes/default/modules/moduleX/nouveau.tpl ?

 

 

 

J'ai malheureusement pas le temps de me relire (J'essayerais de passer demain ou après demain pour les fautes et la relecture), mais merci à ceux qui prendront et auront le courage de lire :)

 

Bonne soirée.

Edited by Juda (see edit history)
Link to comment
Share on other sites

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...