utilisateurlambda Posted March 21, 2018 Share Posted March 21, 2018 (edited) Bonjour, je suis en phase de développement d'un module prestashop. Cependant, la gestion des hook reste trop floue pour moi. J'aimerais afficher un block dans la page "mon compte" de prestashop pour l'utilisateur, cependant, je n'arrive pas à l'afficher. Dans le corps de mon module, j'ai lancé l'installation du hook désirer : public function install() { /* .... */ return parent::install() && $this->registerHook('DisplayMyAccountBlock'); return true; /* ... */ } Et j'ai bien établi ma fonction : public function hookDisplayMyAccountBlock($params) { return $this->display(__FILE__,'displayMyAccountBlock.tpl'); } Qui renvoie donc ma page view/template/hook/displayMyAccountBlock.tpl : <a class="col-lg-4 col-md-6 col-sm-6 col-xs-12" id="upload-link" href="http://localhost/test2-prestashop/link"> <span class="link-item"> Uploads </span> </a> Cependant, je n'ai aucun block qui s'affiche. Qu'ais-je fait de mauvais ? Qu'ais-je oublié ? Je rappelle donc que je ne suis pas un expert, de plus je suis nouveau sous prestashop. Merci de vos réponses ! Edited March 21, 2018 by rygegor (see edit history) Link to comment Share on other sites More sharing options...
BeComWeb Posted March 21, 2018 Share Posted March 21, 2018 Bonjour. Tu peux d'inspirer du module blockwishlist, il utilise ce hook. 1 Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 21, 2018 Author Share Posted March 21, 2018 il y a 8 minutes, BeComWeb a dit : Bonjour. Tu peux d'inspirer du module blockwishlist, il utilise ce hook. Merci bien, je vais de ce pas étudier ça de plus près :) Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 21, 2018 Author Share Posted March 21, 2018 J'ai donc pris exemple sur le module que BeComWeb m'a conseiller d'exploiter, cependant, je dois très mal utiliser les hook, car je n'arrive toujours pas à afficher mon block :(Je ne demande pas une solution miracle, mais je suis un peut coincer. J'ai lu et relu pas mal de docs, mais je reste au même point ou je n'arrive pas à afficher ce block pour les utilisateurs dans la partie "mon compte" :( Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 21, 2018 Author Share Posted March 21, 2018 Je suis désolé, mais ce lien ne m'a pas aidé, j'ai déjà trouvé une documentation sur la création et l'utilisation d'un hook. Je pense que je n'arrive pas à bien l'appliquer. Link to comment Share on other sites More sharing options...
BeComWeb Posted March 21, 2018 Share Posted March 21, 2018 Tu réinitialises bien ton module quand tu lui ajoutes un hook ? Tu respectes bien la casse dans le nom de tes fonctions ? Link to comment Share on other sites More sharing options...
BeComWeb Posted March 22, 2018 Share Posted March 22, 2018 Autres points à vérifier : ton template s'appelle bien displayMyAccountBlock.tpl et il est bien en racine du module ? Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 23, 2018 Author Share Posted March 23, 2018 Oui je réinstalle mon module après chaque nouveau hook comment-ça, respecter les cases dans le nom de ma fonction ? Mon template s'appelle bien displayMyAccountBlock.tpl, cependant, il se trouve dans racine/templates/hook/displayMaAccountBlock.tpl Link to comment Share on other sites More sharing options...
BeComWeb Posted March 23, 2018 Share Posted March 23, 2018 42 minutes ago, rygegor said: Mon template s'appelle bien displayMyAccountBlock.tpl, cependant, il se trouve dans racine/templates/hook/displayMaAccountBlock.tpl Bin le module risque pas de te renvoyer le contenu du template alors... Essaye avec ça : return $this->display(__FILE__,'templates/hook/displayMyAccountBlock.tpl'); Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 23, 2018 Author Share Posted March 23, 2018 Citation return $this->display(__FILE__,'templates/hook/displayMyAccountBlock.tpl'); J'ai oublié de le réécrire lorsque j'ai donné mon code, mais le chemin est déjà correctement mis dans mon code Je viens de remarquer que mon hook ne s'installe pas, Lorsque je suis dans la partie back-office, Apparence-possition, mon module n'apparaît pas. Donc je présume que mon hook ne s'installe pas et que mon erreur proviens sûrement de là ? Qu'en pensez-vous ? Link to comment Share on other sites More sharing options...
BeComWeb Posted March 24, 2018 Share Posted March 24, 2018 Déjà dans la fonction d'install c'est $this->registerHook('displayMyAccountBlock'). Le "d" est en minuscule. Ensuite tu as essayé de vider le cache après avoir réinitialisé le module ? Et si ça ne fonctionne pas, essaye d'installer blockwishlist. S'il ne s'affiche pas non plus c'est peut-être que le hook est absent du template my-account.tpl (celui du thème). Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 26, 2018 Author Share Posted March 26, 2018 (edited) Le 24/03/2018 à 11:23 AM, BeComWeb a dit : Déjà dans la fonction d'install c'est $this->registerHook('displayMyAccountBlock'). Le "d" est en minuscule. Ensuite tu as essayé de vider le cache après avoir réinitialisé le module ? Et si ça ne fonctionne pas, essaye d'installer blockwishlist. S'il ne s'affiche pas non plus c'est peut-être que le hook est absent du template my-account.tpl (celui du thème). Malheureusement, je ne peu pas installer d'installer "blockwishlist", c'est un module pour la version 1.6, je suis sous prestashop 1.7 Oui, je vide le cache à chaque tentative de réinstallation Comment ça le hook serait absent du template my-account.tpl ? Edited March 26, 2018 by rygegor (see edit history) Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 26, 2018 Author Share Posted March 26, 2018 C'est bon, tout fonctionne, j'ai repris une base vide ou j'ai seulement fait la gestion de mon hook et tout à correctement fonctionner, il s'affiche. Link to comment Share on other sites More sharing options...
BeComWeb Posted March 26, 2018 Share Posted March 26, 2018 Si tu avais précisé depuis le début que tu utilisais Prestashop 1.7... Le hook a été renommé en "displayCustomerAccount" dans cette version : voir ici. Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 26, 2018 Author Share Posted March 26, 2018 (edited) J'avais déjà vu que ça avait changer le nom, j'avais bien complété mon code comme ceci : public function hookDisplayCustomerAccount($params){ return $this->display(__FILE__,'fichier.tpl'); } public function hookDisplayMyAccountBlock($params){ return $this->hookDisplayCustomerAccount($params); } Mais il m'a simplement fallu repasser par une base vide de mon module. Au final, je n'ai pas compris d'où venait l'erreur, car j'ai laissé mon code tel quel et ça à fonctionner. La magie peut-être Edited March 26, 2018 by rygegor (see edit history) 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