JPFaucon Posted November 20, 2011 Share Posted November 20, 2011 Bonjour, Je suis nouveau sur prestashop. cela fait maintenant une semaine que je cherche comment créer un nouveau hook dans prestashop 1.4.5.1. J'ai trouver quelques tutoriaux sur le sujet mais aucun n'ai suffisamment bien expliquer pour un débutant de chez débutant. 1) Je créer le hook dans la base de données table ps_hook name: myhook title: My Hook description: Mon hook position: 1 Je veux afficher un slideshow dans le header. 2) dans le fichier header.php j'ajoute les ligne de code suivante avant la fonction display. $smarty->assign(array( 'HOOK_MYHOOK' => Module::hookExec('myhook') )); 3) dans le fichier php de mon module je rajoute cette fonction. function hookmyhook($params) { return $this->hookLeftColumn($params); } 4) dans le fichier header.tpl je rajoute le code suivant. <div id="slider"> <!-- slider --> {$HOOK_MYHOOK} </div> 5) ensuite je vais dans l'administration et je greffe le module sur la position My Hook Résultat le module ne peut pas être greffer sur cette position. Je trouve tout ça bien difficile pour simplement créer une position dans un theme. Tout le tuto que j'ai essayé c'est la même chose. Existe il in tuto pas à pas bien expliqué et fonctionnel? pourquoi dans la doc cette manipe n'est pas expliquer alors que se doit être une chose très demandé. ou est ce purement commercial pour vendre des formations. Merci de vos réponses Bien cordialement. Link to comment Share on other sites More sharing options...
Takio Posted November 20, 2011 Share Posted November 20, 2011 Bonjour Pour Prestashop 1.4.XX, il y a une manière beaucoup plus simple de procéder car il vous suffit d'attacher le hook ('crochet' pour les anglophobes ) à "FrontControllers" (qui se trouve dans le dossier 'override -> classes'). Exemple: le crochet du bloc 'cet article a été vendu...' (dans la description courte placée sous la photo) a été greffé à l'aide du code suivant: public function preProcess() { self::$smarty->assign('HOOK_SOLD_ITEMS',Module::hookExec('soldItems')); } En procédant de cette manière, votre module possèdera son propre hook qu'il vous suffira d'intégrer où bon vous semble dans votre TPL En espérant que mon explication vous sera utile... Bye Takio Note: Si vous voulez approfondir votre connaissance des overrides, c'est par ici Link to comment Share on other sites More sharing options...
JPFaucon Posted November 20, 2011 Author Share Posted November 20, 2011 Merci de votre réponse. Mais pouvez vous me donnez le pas à pas pour réaliser ce nouveau hook, car j'ai un peu de mal a comprendre la démarche. Je vous en remercie par avance. Link to comment Share on other sites More sharing options...
Takio Posted November 20, 2011 Share Posted November 20, 2011 Bonjour Créer votre hook dans la base de données (comme dans votre point 1) Créer votre hook dans le fichier php de votre module (comme dans votre point 3). Ajouter votre hook dans "FrontControllers.php" (dans le dossier 'override -> classes'). Insérer le hook dans votre TPL de votre thème (à l'endroit ou vous souhaitez qu'il apparaisse) De cette manière, vos hook personnalisées ne seront plus écrasés lors des mises-à-jour... ce qui était le cas avec l'ancienne manière de procéder (comme sur le point 2) Bye Takio Link to comment Share on other sites More sharing options...
JPFaucon Posted November 21, 2011 Author Share Posted November 21, 2011 Merci de votre réponse. je vais tester tout ça et reviendrais vous tenir au courant. Encore merci pour le temps que vous avez pris pour me répondre. Cordialement. Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted July 4, 2012 Share Posted July 4, 2012 Bonjour, je me permet de poster un lien vers mon blog car j'avais la même problématique, je souhaitais créer un nouveau hook. Avec les explications de Takio j'ai réussi à faire ce que je voulais et j'en ai fait un tutoriel. Voici donc la méthode pour créer vos hook. 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