Jump to content
Sign in to follow this  
zerros

Ajout d'un hook en version 1.4.5

Recommended Posts

Bonjour,

 

J'essaie d'ajouter un nouveau hook à prestashop, mais sans succès. Et pourtant il me semble avoir fait ce qu'il faut (en suivant les tutos):

 

Nom du hook: TestHook

- Création du hook en base avec phpmyadmin dans ps_hook

- Modification du fichier classes/FrontController.php:

'HOOK_TESTHOOK' => Module::hookExec('TestHook'),

- Modification d'un fichier tpl. J'ai choisi header.tpl:

<body ...>
...
{$HOOK_TESTHOOK}
...
</body>

- Mise en place dans mon module:

public function install() {
			$languages = Language::getLanguages(false);
			if(!parent::install()) return false;
			if (!$this->registerHook('TestHook')) return false;
			return true;
}
public function hookTestHook($params) {
			global $smarty;
			return $this->display(__FILE__, 'testmodule.tpl');
}

 

Ai-je oublié quelque chose ? J'ai mis dans mon tpl:

<p>
			<em>
					lsdfksdklsfskfskfkslfjsdkjsfjskjfsklfsfsdk sjkfnsj n sd sdsfnsjk
			</em>
</p>

 

J'espère que vous pourrez m'aider.

Share this post


Link to post
Share on other sites

Un petit refresh du cache smarty peut-être ?

Share this post


Link to post
Share on other sites

Bonjour,

Comme vous avez choisi header.tpl pour l'affichage, je pense qu'il faut faire dans ton hookTestHook

 

return $this->display(__FILE__, 'header.tpl');

Share this post


Link to post
Share on other sites

@sersow

 

Le display du header.tpl est appelé depuis le hookHeader, pas depuis le hook nouvellement créé

Share this post


Link to post
Share on other sites

J'essaierai de faire comme ceci

 

public function install()

{

$languages = Language::getLanguages(false);

if(!parent::install()) return false;

 

if (!$this->registerHook('TestHook')) return false;

if (!$this->registerHook('hookHeader')) return false;

 

return true;

}

 

public function hookHeader($params)

{

 

return hookTestHook($params);

}

Share this post


Link to post
Share on other sites

Bonjour.

 

Il serait intéressant de rester dans les normalisations de Prestashop : à savoir que le premier mot n'a pas sa première lettre en majuscule. C'est un détail, mais par moment ça peut changer pas mal de chose. M'enfin.

 

Ensuite, tentez de mettre un die('toto') dans la fonction hookTestHook, pour voir si cette dernière est bien appelée, cela vous permettra de situer un peu mieux le problème.

Share this post


Link to post
Share on other sites

Tout me semble correct, je pense qu'il doit s'agir d'un problème de "casse"

 

un exemple de code :

 

function install()
{
   if ( ! parent::install())  return false;

   $hooked = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'hook` WHERE name = "slider"');
   if (!is_array($hooked) || sizeof($hooked) == 0)
  	 Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'hook` (
  	 `id_hook` ,`name` ,`title` ,`description` ,`position`)
  	 VALUES (NULL , "slider", "Slider", "Slider page", "1");');

   if (!$this->registerHook('slider') )  return false;

   return true;
}

function hookSlider($params)
{
....

 

et dans l'override :

 

'HOOK_SLIDER' => Module::hookExec('slider'),

Share this post


Link to post
Share on other sites

Bonjour,

 

désolé pour le temps de réponse, le forum ne me préviens pas des réponses même si je choche la case ... à moins que les mails arrivent en spam ... Je vais vérifier ça.

 

Je vais tester ces solutions et je vous dirai si j'ai des problèmes. Merci :)

Share this post


Link to post
Share on other sites

bonjour

 

ou faut il mettre dans l'override 'HOOK_MY' => Module::hookExec('MyHook'),

 

j'ai la version 1.46 et je pense que les fichiers ont un peu changé

 

 

merci

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More