Jump to content

tuto creation hook prestashop 1.4.5.1 FONCTIONNEL


Recommended Posts

Bonjour,

 

Je suis nouveau sur prestashop. cela fait maintenant une semaine que je cherche comment créer un nouveau hook dans prestashop 1.4.5.1.

 

J'ai trouver quelques tutoriaux sur le sujet mais aucun n'ai suffisamment bien expliquer pour un débutant de chez débutant.

 

1) Je créer le hook dans la base de données table ps_hook

 

name: myhook

title: My Hook

description: Mon hook

position: 1

 

Je veux afficher un slideshow dans le header.

 

2) dans le fichier header.php j'ajoute les ligne de code suivante avant la fonction display.

 

$smarty->assign(array(

'HOOK_MYHOOK' => Module::hookExec('myhook')

));

 

3) dans le fichier php de mon module je rajoute cette fonction.

 

function hookmyhook($params)

{

return $this->hookLeftColumn($params);

}

 

4) dans le fichier header.tpl je rajoute le code suivant.

 

<div id="slider">

<!-- slider -->

{$HOOK_MYHOOK}

</div>

 

5) ensuite je vais dans l'administration et je greffe le module sur la position My Hook

 

Résultat le module ne peut pas être greffer sur cette position.

 

Je trouve tout ça bien difficile pour simplement créer une position dans un theme.

 

Tout le tuto que j'ai essayé c'est la même chose. Existe il in tuto pas à pas bien expliqué et fonctionnel? pourquoi dans la doc cette manipe n'est pas expliquer alors que se doit être une chose très demandé. ou est ce purement commercial pour vendre des formations.

 

Merci de vos réponses

 

Bien cordialement.

Link to comment
Share on other sites

Bonjour

 

Pour Prestashop 1.4.XX, il y a une manière beaucoup plus simple de procéder car il vous suffit d'attacher le hook ('crochet' pour les anglophobes :P) à "FrontControllers" (qui se trouve dans le dossier 'override -> classes').

 

Exemple: le crochet du bloc 'cet article a été vendu...' (dans la description courte placée sous la photo) a été greffé à l'aide du code suivant:

 

public function preProcess()

{
self::$smarty->assign('HOOK_SOLD_ITEMS',Module::hookExec('soldItems'));
}

 

En procédant de cette manière, votre module possèdera son propre hook qu'il vous suffira d'intégrer où bon vous semble dans votre TPL

 

En espérant que mon explication vous sera utile...

 

Bye

Takio

 

Note: Si vous voulez approfondir votre connaissance des overrides, c'est par ici ;)

Link to comment
Share on other sites

Bonjour

  1. Créer votre hook dans la base de données (comme dans votre point 1)
  2. Créer votre hook dans le fichier php de votre module (comme dans votre point 3).
  3. Ajouter votre hook dans "FrontControllers.php" (dans le dossier 'override -> classes').
  4. Insérer le hook dans votre TPL de votre thème (à l'endroit ou vous souhaitez qu'il apparaisse)

De cette manière, vos hook personnalisées ne seront plus écrasés lors des mises-à-jour... ce qui était le cas avec l'ancienne manière de procéder (comme sur le point 2)

 

 

Bye

Takio

Link to comment
Share on other sites

  • 7 months later...

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