Amélie Posted June 24, 2014 Share Posted June 24, 2014 Bonjour, Étant débutante sur Prestashop, j'essaye de m'informer un maximum sur son fonctionnement, mais voilà, j'ai un problème avec la greffe des modules sur les hooks. J'ai créé un nouveau hook dans ma base de données que j'ai appelé displayProductBottom. Ce hook servira à afficher les nouveaux produits en dessous de la page single produit. Quand j'essaye de greffer mon module Nouveaux Produits sur ce hook (qui apparaît bien dans la liste des hooks), il m'affiche 'Ce module ne peut-être accroché à ce hook". Je sais qu'il est possible de modifier cette interdiction en modifiant le code. J'ai donc créé un fichier dans le module blocknewproducts que j'ai appelé blocknewproducts.php et j'y ai créé ce code : if (!defined('_PS_VERSION_')) exit; class BlockNewProduct extends Module { public function __construct() { $this->name = 'blocknewproduct'; $this->tab = 'Test'; $this->version = 1.5; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('blocknewproduct'); $this->description = $this->l('New Product.'); } public function install() { if (parent::install() == false OR !$this->registerHook('productBottom')) return false; return true; } public function hookProductBottom($params) { global $smarty; $smarty->assign(array('HOOK_PRODUCT_BOTTOM' => Module::hookExec('ProductBottom'))); } public function hookHomeTabContent($params) { return $this->hookProductBottom($params); } } Comme j'ai du mal en développement, j'aimerais savoir s'il y a des personnes assez calés pour me dire si ce code est correct ou pas (je pense que nom car mon hook ne se greffe toujours pas) et savoir ce qu'il faut faire pour corriger ça. Merci d'avance à toute la communauté Prestashop. Link to comment Share on other sites More sharing options...
loulou66 Posted June 24, 2014 Share Posted June 24, 2014 Coucou tout est bon sauf le smarty assign ou tu n'a pas besoin de faire un module::exec car ça va se faire automatiquement a l'appelle de {hook h=ProductBottom} dans ton le product.tpl la solution que tu a choisit sert quand il n'y a pas de hook existant mais tu a déjà un hook existant qui s'appelle ProductFooter tu peut prendre exemple du module prudcutscategory qui l'utilise pour affiche les produit d'une même catégorie et faire un mix avec le module blocknewproducts qui affiche les nouveau produits ou modifier le module blocknewproducts en rajoutant le hook ProductFooter(qui appelleras return $this->hookRightColumn($params) et prendre exmple sur le tpl du module prudcutscategory pour afficher les nouveau produit dans la page produit @++ Loulou66 Link to comment Share on other sites More sharing options...
Amélie Posted June 24, 2014 Author Share Posted June 24, 2014 Merci beaucoup pour ta réponse loulou66. Du coup, j'ai changé et me suis basé sur le footerProduct et j'ai changé mon code par ça : if (!defined('_PS_VERSION_')) exit; class BlockNewProduct extends Module { public function __construct() { $this->name = 'blocknewproduct'; $this->tab = 'Test'; $this->version = 1.5; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('blocknewproduct'); $this->description = $this->l('New Products'); } public function install() { if (parent::install() == false OR !$this->registerHook('footerProduct')) return false; return true; } public function hookFooterProduct($params) { global $smarty; } public function hookFooterProduct($params) { return $this->hookRightColumn($params); } } Le souci c'est que je ne peux toujours pas greffer de modules dans le hook, que ce soit lui ou celui que j'ai créé. Link to comment Share on other sites More sharing options...
loulou66 Posted June 24, 2014 Share Posted June 24, 2014 Coucou alors c'est !$this->registerHook('productfooter') et public function hookProductFooter($params) { } @++ Loulou66 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