Guest Posted April 16, 2013 Share Posted April 16, 2013 (edited) Bonjour, J'ai créer mon module qui fonctionne très bien il est greffer sur le hookTop cependant cela ne me convient pas et j'ai donc pour cela créer un nouveau hook en base de donnée que j'ai appelé menuNavTop. J'ai modifie mon module comme suit : je l'ai rajouté dans ma fonction d'installation du module : public function install() { if (!parent::install() || !$this->registerHook('displayMenuNavTop')) || !$this->registerHook('displayTop')) return false; return true; } et j'ai rajouté cette fonction : public function hookMenuNavTop($params) { return $this->hookDisplayTop($params); } puis dans mon template j'ai rajouté mon hook comme cela : {hook h='MenuNavTop'} Lorsque je vais dans le back office et que je vais dans la gestion des points d'accroche, je supprime le point d'accroche displayTop, et je sélectionne menuNavTop, mais j'ai un message d'erreur me disant que je ne peu pas greffer ce module sur ce hook. Je ne comprends pas j'ai suivis plusieurs tuto mais je ne trouve pas la solution à mon problème. Je suis en version 1.5.4.0. Merci d'avance pour votre aide, Cordialement, Edited April 19, 2013 by biostak (see edit history) Link to comment Share on other sites More sharing options...
SMorillon.com Posted April 16, 2013 Share Posted April 16, 2013 Bonjour, !$this->registerHook('displayMenuNavTop')) || public function hookMenuNavTop($params) Attention, des fois vous utilisez display et des fois non... Link to comment Share on other sites More sharing options...
Guest Posted April 16, 2013 Share Posted April 16, 2013 Bonsoir, Merci de votre réponse rapide effectivement je n'avais pas fait attention j'ai modifié pour tout mettre avec displayMenuNavTop mais cela ne fonctionne toujours pas j'ai encore le message d'erreur suivant : "ce module ne peut être accroché à ce hook" voilà à quoi ressemble le fichier de mon module maintenant : public function install() { if (!parent::install() || !$this->registerHook('displayMenuNavTop')) || !$this->registerHook('displayTop')) return false; return true; } public function hookDisplayTop($params) { global $cookie, $smarty; $this->context->controller->addCSS($this->_path.'css/global.css'); $smarty->assign(array( )); return $this->display(__FILE__, 'menunavigationhorizontal.tpl'); } public function hookDisplayMenuNavTop($params) { return $this->hookDisplayTop($params); } et en base de donnée j'ai enregistré un nouveau hook qui porte le nom suivant : displayMenuNavTop Je ne vois vraiment pas d'où le problème peut venir. Cordialement, Link to comment Share on other sites More sharing options...
Guest Posted April 17, 2013 Share Posted April 17, 2013 Personne pour m'aider ? car je suis bloqué dans le développement de ma boutique du coup. Merci d'avance pour votre aide. Cordialement, Link to comment Share on other sites More sharing options...
SMorillon.com Posted April 17, 2013 Share Posted April 17, 2013 Bonjour, Cette erreur est généré par ce code : if (!$module->isHookableOn($hook->name)) $this->errors[] = Tools::displayError('This module cannot be transplanted to this hook.'); La fonction isHookableOn vérifie si le module contient la fonction hook... : public function isHookableOn($hook_name) { $retro_hook_name = Hook::getRetroHookName($hook_name); return (is_callable(array($this, 'hook'.ucfirst($hook_name))) || is_callable(array($this, 'hook'.ucfirst($retro_hook_name)))); } A moins d'une erreur de frappe dans la BD ou dans le module, je ne vois pas pourquoi il génère cette erreur... Link to comment Share on other sites More sharing options...
Guest Posted April 17, 2013 Share Posted April 17, 2013 Bonjour, merci encore pour votre réponse mais je ne comprends pas je viens de vérifier encore et cela ne veut toujours pas j'ai posté dans mon message précédent les modifications et le nom que j'ai enregistré en base de donnée, tout semble pourtant correct. Cordialement, Link to comment Share on other sites More sharing options...
Guest Posted April 19, 2013 Share Posted April 19, 2013 Bonjour, J'ai résolu mon problème la création du hook était bonne, j'avais mal codé mon module, car lorsque je réinitialisais celui ci pour prendre en compte le nouveau il ne le faisait pas car la fonction uninstall était mauvaise et donc le module ne se désinstallait jamais. Cordialement, 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