Jump to content

Problème ajout nouveau hook


Recommended Posts

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

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

  • 2 weeks later...

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

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
×
×
  • Create New...