Zythom Posted January 29, 2015 Share Posted January 29, 2015 Bonjour à tous, tout est dans le titre : j'aimerai greffer un module sur un hook pour lequel il n'est pas prévu (par exemple le block newsletter sur le hook DisplayHome). Je viens de lire qu'il était possible d'overrider les modules avec PS 1.6.0.11, mais je ne sais pas trop comment faire... Je dois copier le fichier blocknewsletter.php dans override/modules et rajouter le hook dedans ? Ou juste créer un nouveau fichier blocknewsletter.php ou il n'y aurait que le nouveau hook ? Merci de m'éclairer sur ce coup là Link to comment Share on other sites More sharing options...
Zythom Posted January 29, 2015 Author Share Posted January 29, 2015 J'oubliais de préciser : j'ai tenté les deux manières et j'ai toujours le message "Ce module ne peut être accroché à ce hook" J'ai placé au début de mon fichier : class BlocknewsletterOverride extends Blocknewsletter Link to comment Share on other sites More sharing options...
EISEAL Posted January 31, 2015 Share Posted January 31, 2015 Salut, Dans ton module, ouvre le fichier blocknewsletter.php et trouve : public function hookFooter($params) { return $this->hookDisplayLeftColumn($params); } juste en dessous, ajoute : public function hookHome($params) { return $this->hookDisplayLeftColumn($params); } et là tu pourras greffer sur le DisplayHome Link to comment Share on other sites More sharing options...
Zythom Posted January 31, 2015 Author Share Posted January 31, 2015 Bonjour anteverce et merci, mais si j'applique ta méthode est-ce que le module sera toujours greffé sur ce hook après une éventuelle mise à jour ? C'est pour ça que je voulais utiliser l'override... Link to comment Share on other sites More sharing options...
EISEAL Posted February 1, 2015 Share Posted February 1, 2015 L'override sur les fichiers php des modules n'est pas prévu dans Prestashop. Après il y aurait cette méthode mais c'est sur Presta 1.5.3, je n'ai pas testé : http://www.circonflex.fr/actus/overrider-fichiers-php-module-prestashop-29/ Link to comment Share on other sites More sharing options...
Zythom Posted February 2, 2015 Author Share Posted February 2, 2015 Pourtant je me suis basé sur ce tuto (qui apparemment en reprend un autre...) et qui parle d'override des modules pour PS 1.6.0.11... Link to comment Share on other sites More sharing options...
mamen Posted December 22, 2017 Share Posted December 22, 2017 Bonjour à tous, Soyez indulgent avec moi car je suis nouveau sur le forum et dans l'utilisation de Prestashop, je travaille sur les versions 1.6 et 1.7. Je suis actuellement en stage pour un diplôme de concepteur développeur informatique. On me demande : 1) de gérer entièrement et dynamiquement les méthodes des différents hooks, (on doit pouvoir greffer le module sans avoir à créer la méthode du nouveau hook). 2) de pouvoir créer un hook depuis le module DataThemeAdmin : ajouter un mini formulaire dans la configuration du module input type texte + submit qui appelle register hook. Merci pour votre attention Link to comment Share on other sites More sharing options...
Matt75 Posted December 22, 2017 Share Posted December 22, 2017 46 minutes ago, mamen said: 1) de gérer entièrement et dynamiquement les méthodes des différents hooks, (on doit pouvoir greffer le module sans avoir à créer la méthode du nouveau hook). Salut, Prestashop 1.7 ajoute une nouvelle technique pour l’affichage des modules en front office. L’objectif est de permettre de greffer le module sur tous les hooks possibles, indépendamment de la déclaration du hook dans le cœur du module. Exemple Le module blocklanguages ne pouvait précédemment être greffé uniquement sur : hookDisplayTop hookDisplayNav hookDisplayHeader (Uniquement pour l’ajout des assets css/js) Ainsi si on souhaitait greffer le module sur le hookDisplayLeftColumn, nous devions implémenter le hook dans le coeur du module via un override du module. (Lorsqu’on fait bien les choses…) Désormais renommé en ps_languageselector, ce module ne déclare plus les hooks précédents mais implémente la nouvelle interface WidgetInterface qui implique l’ajout de 2 fonctions dans le cœur du module : renderWidget getWidgetVariables Cette nouvelle architecture permet de greffer le module sur tous les hooks du front office indépendamment de la déclaration implicite dans le cœur du module. C’en est donc terminé des overrides dans le but d’ajouter un hook pour l’afficher dans un autre hook que ceux prévus initialement par l’auteur du module ! Je t'invite à jeter un oeil dans les modules natifs de Prestashop 1.7 pour voir des exemples d’implémentations. A+ Link to comment Share on other sites More sharing options...
mamen Posted January 8, 2018 Share Posted January 8, 2018 Merci beaucoup pour ta réponse Matt75, ta contribution m'a été d'une grande aide. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now