Jump to content

Problème greffe de modules


Recommended Posts

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

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

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

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...