Jump to content

Inclure module dans un controller


Recommended Posts

Salut à tous,

 

Je suis totalement débutant dans prestashop. Merci pour vos topics qui m'aident régulièrement.

 

Je vous demande de l'aide afin de réussir à créer un module wishlist (je sais qu'il en existe, mais ce module sera un modèle pour en créer d'autre presque identiques)

 

Actuellement j'ai créé un module pour gérer l'ajout à la wishlist qui s'inscrit en BDD.

Ca c'est fait V

 

J'ai créé un controller (wishlist.php) avec son équivalent wishlist.tpl. 

J'arrive à accéder à la page en tapant  'monsite.com/wishlist'.

Ca c'est fait V

 

J'aimerais dans cette page wishlist afficher un module. 

J'ai essayé ceci : https://www.prestashop.com/forums/topic/263390-solved-load-module-class-in-controller/

 

Mais la fonction getProducts ne se lance pas, mes js et css ne sont pas inclus

Je ne sais pas comment je pourrais juste afficher mon module dans ce wishlist.tpl

 

Comment puis-je faire ceci?

 

N'hésitez pas si je n'ai pas été assez clair :)

 

Link to comment
Share on other sites

Bonjour Matt, 

 

Merci pour ta réponse.

 

Par afficher un module, je veux dire de la même manière que tu greffe un module sur un hook.

 

Je n'ai pas de 'partie de code' qui me pose problème, c'est surtout la démarche que je dois faire pour avoir mon module affiché sur ma page wishlist.

 

J'imagine qu'une solution serait de créer un hook sur la page wishlist et ensuite de greffer mon module dessus en backoffice?

Si oui, comment créer un hook?

 

:rolleyes:

Link to comment
Share on other sites

Vu que tu as créer un controller "wishlist" pour moi la logique devrait être dans le controller et non dans le module. 

 

SAUF si ce que tu veux afficher doit être réutilisable à différent endroit. 

 

Dans ce cas pour créer un hook tu dois déjà l'enregistrer dans la fonction install de ton module

$this->registerHook('nomDeTonHook');

Ensuite tu fais une méthode dans ton module

public function hookDisplayNomDeTonHook($params)
{
    /** code **/

    return ($this->display(__FILE__, 'nom-de-ton-hook.tpl'));
}

Puis tu l'appelle ainsi depuis ton controller : 

Hook::exec('displayNomDeTonHook');

En l'occurence, le hook retourne du html. Mais tu peux lui faire retourner ce que tu veux... 

 

Si tu attends du html c'est sans doute encore mieux de l'appeler depuis la vue de ton template. ;)

 

Bref, j'ai pas testé mais ça devrait fonctionner. ^^'

 

Bon courage

Edited by Matt K. (see edit history)
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...