widjayy Posted December 13, 2012 Share Posted December 13, 2012 Bonjour, Je suis sous prestashop 1.5, et je tente de créer un nouveau hook au dessus de mon footer, de la façon suivante: - déclaration du nouveau hook "superfooter" dans la base - ajout de la ligne suivante dans le fichier /classes/FrontController.php: HOOK_SURFOOTER‘ => Module::hookExec(‘superfooter‘), - mise en place de l'override avec création du fichier /override/classes/FrontController.php: <?php class FrontController extends FrontControllerCore { public function displayFooter() { self::$smarty->assign(array( 'HOOK_SUPERFOOTER' => Module::hookExec('superfooter') )); return parent::displayFooter(); } } - ajout du code suivant dans mon fichier footer.tpl, au début: {if !$content_only} </div> </div> <div id="superfooter"> {$HOOK_SUPERFOOTER}. </div> <!-- Footer --> - puis enfin je greffe le module "home featured" au hook dans positions. Je souhaite l'avoir dans ce hook pour qu'il puisse apparaître tout le long de mon pied de page, et pas seulement sous la colonne centrale où se trouve mon diaporama (j'ai 2 colonnes: gauche pour le menu de navigation, centrale pour le diaporama). Malheureusement rien ne s'affiche... J'ai un peu épuisé tous les forums et je ne trouve pas la solution. Un peu d'aide serait la bienvenue. Merci Link to comment Share on other sites More sharing options...
misterpink Posted December 14, 2012 Share Posted December 14, 2012 bonjour, essaye dans ton tpl de mettre ça plutot {hook h="superfooter"} Link to comment Share on other sites More sharing options...
misterpink Posted December 14, 2012 Share Posted December 14, 2012 et pour moi le chemin du FrontController est : override/classes/controller/FrontController.ph le fichier existe deja tu as juste a l'ouvrir et a rajouter ceci : <?php class FrontController extends FrontControllerCore { public function displayFooter() { if (!self::$initialized) parent::init(); self::$smarty->assign(array( 'HOOK_SUPERFOOTER' => Module::hookExec('superfooter'), )); return parent::displayFooter(); } } Link to comment Share on other sites More sharing options...
widjayy Posted December 14, 2012 Author Share Posted December 14, 2012 Bonjour, Merci tout d'abord à tous les 2 pour vos solutions. J'ai bien rajouté dans mon fichier footer.tpl la ligne {hook h="sperfooter"}, mais rien n'y fait, le module ne s'affiche toujours pas dans ma page. J'ai même tenté la précision: {hook h="sperfooter" mod="homefeatured"} Aurais-je oublié quelque chose? Link to comment Share on other sites More sharing options...
tarte-au-sucre Posted December 14, 2012 Share Posted December 14, 2012 C'est une question idiote mais ... ne faut il pas une méthode hookDisplayNOMDUHOOK() dans le fichier nomdumodule.php dans son dossier /nomdumodule ? Link to comment Share on other sites More sharing options...
widjayy Posted December 14, 2012 Author Share Posted December 14, 2012 J'avais effectivement rajouté la fonction suivante dans le homefeatured.php: public function hooksurfooter($params) { $this->hookFooter($params); } mais rien n'y fait. Ce n'est peut-être pas la bonne ligne de code, ni placée là où il faudrait. Link to comment Share on other sites More sharing options...
misterpink Posted December 14, 2012 Share Posted December 14, 2012 essaye plutôt cela, mais quant tu greffe le module homefeatured ca passe, il n'y a pas de message d'erreur? public function hooksurfooter($params){ return $this->hookFooter($params); } Link to comment Share on other sites More sharing options...
widjayy Posted December 15, 2012 Author Share Posted December 15, 2012 Bonjour, Non je n'ai pas de message d'erreur. J'ai bien le message "Module greffé sur le point d'accroche avec succès". J'ai même tenté avec un autre module (celui de logo de paiement), et le résultat est identique: rien ne s'affiche. Link to comment Share on other sites More sharing options...
widjayy Posted December 29, 2012 Author Share Posted December 29, 2012 Rebonjour, du coup j'ai mis quelque chose d'assez moche. Voici le code que j'ai rajouté dans mon fichier footer.tpl: <div id="surFooter" class="grid_9 alpha omega clearfix"> <div id="featured-products_block_center" class="block products_block clearfix"> <div class="block_content"> <ul style="height:150px;"> <li class="ajax_block_product first_item last_line"> <a class="product_image" title="bracelet cuir" href="http://waltwhite.fr/newshop/index.php?id_product=8&controller=product"> <img width="124" height="124" margin-right="120" alt="bracelet cuir" src="http://waltwhite.fr/newshop/img/p/2/7/27-home_default.jpg"> </a> </li> <li class="ajax_block_product item last_line"> <a class="product_image" title="bracelet 2" href="http://waltwhite.fr/newshop/index.php?id_product=9&controller=product"> <img width="124" height="124" alt="bracelet 2" src="http://waltwhite.fr/newshop/img/p/2/9/29-home_default.jpg"> </a> </li> Même si maintenant j'arrive à afficher quelque chose tout le long de la page (et non pas seulement au niveau de la colonne centrale), le résultat n'est pas celui escompté, puisque je devrais modifier à la main le code à chaque fois qu'un nouveau produit sera publié. Si quelqu'un peut avoir une idée plus simple de faire cela. Merci et bonnes fêtes Link to comment Share on other sites More sharing options...
Broceliande Posted December 31, 2012 Share Posted December 31, 2012 J'avais effectivement rajouté la fonction suivante dans le homefeatured.php: public function hooksurfooter($params) { $this->hookFooter($params); } mais rien n'y fait. Ce n'est peut-être pas la bonne ligne de code, ni placée là où il faudrait. Sauf que si je ne m'abuse, homefeatured ne possède pas de méthode hookFooter. A la base et même si je n'aurais pas fait comme ça , tes modifs du premier post auraient fonctionné si tu avais juste ajouté : public function hooksurfooter($params) { $this->hookHome($params); } dans homefeatured.php Link to comment Share on other sites More sharing options...
widjayy Posted December 31, 2012 Author Share Posted December 31, 2012 Bonjour, Merci effectivement ça fonctionne mieux avec le code ci-dessous: public function hooksurfooter($params) { $this->hookDisplayHome($params); } hookHome n'existe pas dans le fichier .tpl, mais plutôt hookdisplayHome. Par contre j'avais bien essayé avec hookFooter, présente dans le fichier, et ça n'a jamais marché. Merci encore et bonnes fêtes de fin d'année! 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