Ju972 Posted July 6, 2012 Share Posted July 6, 2012 Bonjour, malgré les différents tuto je n'arrive pas a résoudre mon problème. Je souhaite ajouter un hook que je placerai sous displayTop dans le header. J'ai créé un nouveau hook dans la base ps_hook. Je lui ai donné le nom Top2. Le hook apparait bien dans la liste. J'ai mis ce code la dans le fichier php du module: public function install() { if (parent::install() == false OR !$this->registerHook('Top2')) return false; return true; } public function hookTop2($params) { global $smarty; return $this->display(__FILE__, 'menuimg.tpl'); } Mon module est bien greffé au hook Top2. Ensuite dans le frontcontroller.php j'ai ajouté ca à la ligne 455: (ca ne marche pas non plus avec l'override) 'HOOK_TOP2' => Module::hookExec('Top2'), ce qui donne: $this->context->smarty->assign(array( 'HOOK_HEADER' => $hook_header, 'HOOK_TOP' => Hook::exec('displayTop'), 'HOOK_LEFT_COLUMN' => ($this->display_column_left ? Hook::exec('displayLeftColumn') : ''), 'HOOK_RIGHT_COLUMN' => ($this->display_column_right ? Hook::exec('displayRightColumn', array('cart' => $this->context->cart)) : ''), 'HOOK_TOP2' => Module::hookExec('Top2'), )); Ensuite dans header.tpl j'appelle mon hook via: {$HOOK_TOP2} Et il ne se passe rien. Je précise que j'avais d'abord tester mon module est le greffant sur le hook displayTop existant et que ca fonctionnait. Merci d'avance Link to comment Share on other sites More sharing options...
Samy_R Posted July 11, 2012 Share Posted July 11, 2012 Bonjour, malgré les différents tuto je n'arrive pas a résoudre mon problème. Je souhaite ajouter un hook que je placerai sous displayTop dans le header. J'ai créé un nouveau hook dans la base ps_hook. Je lui ai donné le nom Top2. Le hook apparait bien dans la liste. J'ai mis ce code la dans le fichier php du module: public function install() { if (parent::install() == false OR !$this->registerHook('Top2')) return false; return true; } public function hookTop2($params) { global $smarty; return $this->display(__FILE__, 'menuimg.tpl'); } Mon module est bien greffé au hook Top2. Ensuite dans le frontcontroller.php j'ai ajouté ca à la ligne 455: (ca ne marche pas non plus avec l'override) 'HOOK_TOP2' => Module::hookExec('Top2'), ce qui donne: $this->context->smarty->assign(array( 'HOOK_HEADER' => $hook_header, 'HOOK_TOP' => Hook::exec('displayTop'), 'HOOK_LEFT_COLUMN' => ($this->display_column_left ? Hook::exec('displayLeftColumn') : ''), 'HOOK_RIGHT_COLUMN' => ($this->display_column_right ? Hook::exec('displayRightColumn', array('cart' => $this->context->cart)) : ''), 'HOOK_TOP2' => Module::hookExec('Top2'), )); Ensuite dans header.tpl j'appelle mon hook via: {$HOOK_TOP2} Et il ne se passe rien. Je précise que j'avais d'abord tester mon module est le greffant sur le hook displayTop existant et que ca fonctionnait. Merci d'avance Si dans ta fonction hookTop2 tu mets un echo "truc", il se passe quelque chose ? Link to comment Share on other sites More sharing options...
J. Danse Posted July 19, 2012 Share Posted July 19, 2012 Désormais, tu peux tout à fait appeler un "Hook" (et donc ses modules greffer) via le template lui-même. Le tout via: {hook h="Top2"} Ce qui devrait peut-être t'aider. Link to comment Share on other sites More sharing options...
Ju972 Posted July 19, 2012 Author Share Posted July 19, 2012 merci pour les réponses, désolé en attendant j'ai écris les choses en dur dans le header. Je vais réessayer. Quelle différence entre {hook h="Top2"} et {$HOOK_TOP2} ? Link to comment Share on other sites More sharing options...
J. Danse Posted July 19, 2012 Share Posted July 19, 2012 La différence, c'est que le code que je te fournis est en fait une fonction enregistrée pour Smarty par Prestashop, dans le coeur. Ce qui signifie, en clair, qu'il n'est plus nécessaire d'ajouter une variable Smarty dans les controllers éventuels et que, si trouvé dans un tpl, le code donnée ci-dessus agit en réalité comme un "Hook::exec()". Tu me suis ? 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