lulurousseau Posted June 13, 2017 Share Posted June 13, 2017 (edited) Bonjour le forum prestashop ! Je suis débutant sur prestashop, je viens d'installer prestashop version 1.7.1.2 J'aimerais faire en sorte que le module ps_socialfollow qui est affiché par défaut dans le hook displayFooterBefore, soit affiché dans le hook displayFooterAfter. Je précise que je ne peux pas le faire directement via le back office du site, parce que ce hook n'est pas affiché dans la liste (il est pourtant présent de base dans le code sur page footer.tpl). fichier : themes/classic/templates/_partials/footer.tpl <div class="container"> <div class="row"><!-- affiche les module ps_emailsubscription + ps_socialfollow --> {block name='hook_footer_before'} {hook h='displayFooterBefore'} {/block} </div> </div> <div class="footer-container"> <div class="container"> <div class="row"> <!-- liste pages (module : ps_linklist) --> {block name='hook_footer'} {hook h='displayFooter'} {/block} </div> <div class="row"> {block name='hook_footer_after'} {hook h='displayFooterAfter'} <!-- j'aimerai afficher ici le module ps_socialfollow --> {/block} </div> <div class="row"> <div class="col-md-12"> <!-- l'emplacement pour marquer tous droits réservés --> <p> {block name='copyright_link'} <a class="_blank" href="http://www.prestashop.com" target="_blank"> {l s='%copyright% %year% - Ecommerce software by %prestashop%' sprintf=['%prestashop%' => 'PrestaShop™', '%year%' => 'Y'|date, '%copyright%' => '©'] d='Shop.Theme'} </a> {/block} </p> </div> </div> </div> </div> J'ai fait cette modification dans le theme.yml : fichier : themes/classic/config/theme.yml global_settings: configuration: PS_IMAGE_QUALITY: png modules: to_enable: - ps_linklist hooks: modules_to_hook: displayNav1: - ps_contactinfo displayNav2: - ps_languageselector - ps_currencyselector - ps_customersignin - ps_shoppingcart displayTop: - ps_mainmenu - ps_searchbar displayHome: - ps_imageslider - ps_featuredproducts - ps_banner - ps_customtext displayFooterBefore: - ps_emailsubscription // ici j'ai retiré - ps_socialfollow displayFooter: - ps_linklist - ps_customeraccountlinks - ps_contactinfo displayFooterAfter: // j'ai créé cette ligne et j'ai ajouté - ps_socialfollow en dessous - ps_socialfollow displayLeftColumn: - ps_categorytree - ps_facetedsearch displaySearch: - ps_searchbar displayProductAdditionalInfo: - ps_sharebuttons displayReassurance: - blockreassurance displayOrderConfirmation2: - ps_featuredproducts displayCrossSellingShoppingCart: - ps_featuredproducts Au passage, j'ai remarqué que dans le controlleur du module ps_socialfollow, le module est appelé avec le hook displayFooter alors qu'il s'affiche dans le hook displayFooterBefore. fichier : modules/ps_socialfollow/ps_socialfollow.php public function install() { return (parent::install() && Configuration::updateValue('BLOCKSOCIAL_FACEBOOK', '') && Configuration::updateValue('BLOCKSOCIAL_TWITTER', '') && Configuration::updateValue('BLOCKSOCIAL_RSS', '') && Configuration::updateValue('BLOCKSOCIAL_YOUTUBE', '') && Configuration::updateValue('BLOCKSOCIAL_GOOGLE_PLUS', '') && Configuration::updateValue('BLOCKSOCIAL_PINTEREST', '') && Configuration::updateValue('BLOCKSOCIAL_VIMEO', '') && Configuration::updateValue('BLOCKSOCIAL_INSTAGRAM', '') && $this->registerHook('displayFooter')); } Je suis bien allé dans le back office dans paramètres avancés -> Performances et que j'ai fait vider le cache, clické sur forcer la compilation à chaque fois et que j'ai mis le mode débug. Edited June 13, 2017 by lulurousseau (see edit history) Link to comment Share on other sites More sharing options...
lulurousseau Posted June 14, 2017 Author Share Posted June 14, 2017 (edited) Bonjour, Le hook displayFooterAfter n'était pas enregistré dans la liste des hook sur la table ps_hook. Ce qui explique que ce hook n'était pas accessible depuis le back office du site dans Apparence > Positions Du coup j'ai changé $this->registerHook('displayFooter')); par $this->registerHook('displayFooterAfter')); Puis j'ai fait reset le module (via l'interface du site) et il s'est bien affiché dans le hook. Je n'ai cependant toujours pas bien compris le fonctionnement des hook. Par exemple comment cela se fait que le module était affiché dans le hook displayFooterBefore, alors qui était appelé par : $this->registerHook('displayFooter')); Je vois aussi que le fichier theme.yml ne se met pas à jour, est-ce qu'il peut être mis à jour automatiquement (via le terminal peut être ?) ou est-ce que l'on doit le faire manuellement ? Edited June 14, 2017 by lulurousseau (see edit history) Link to comment Share on other sites More sharing options...
catlord Posted November 3, 2017 Share Posted November 3, 2017 Bonjour, avez-vous trouvé réponse à votre question ? Elle m’intéresse Cordialement, Benoît Link to comment Share on other sites More sharing options...
lulurousseau Posted November 3, 2017 Author Share Posted November 3, 2017 Bonjour, Il me semble que j'ai donné la réponse pourtant. Dans le fichier : modules/ps_socialfollow/ps_socialfollow.php J'ai changé cette ligne : $this->registerHook('displayFooter')); par $this->registerHook('displayFooterAfter')); Après tu peux faire aussi la modification dans le fichier theme.yml (même si j'ai l'impression que ça sert à rien). Et bien sûr, il faut reset ton module ensuite pour avoir les changements. 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