Jump to content

[RESOLU] $HOOK_xxx


itcridamour

Recommended Posts

Bonjour j'ai découvert récemment prestashop et magento en meme temps, mais il semble que prestashop soit plus adapté a mon projet. Bon j'aimerais savoir comment modifier ou creer un $HOOK_TOP, HEADER ou autre...

Merci pour votre reponse


Encore une fois merci beaucoup a tous et particulièrement à SotEW!!!!

Link to comment
Share on other sites

les Hook sont là pour que les différents modules puissent se taper l'incrust' à différents endroits du site (header, top, colonne de gauche ou de droite, footer, panier, confirmation de commandes...)

Si tu veux ajouter un élément à un endroit précis du site, il te faudra utiliser un module, qui, lors de son installation, s'inscrira dans le hook correspondant.


Que souhaites-tu faire exactement ?

Link to comment
Share on other sites

Bonsoir merci pour toa réponse rapide. Em fait je vient de lire l'excellente documentation sur les modules. Et combiner avec ta réponse... je dois formuler ma question plus simplement... je souhaite par exemple déplacer des partie du module "user info" comme "Mon compte" et "Mon panier" mais pas "login" et "Welcome". Donc je doit bidouiller le module existant eventuellemt en creant un module "user info 2" que je hookerai sur "TOP" a la place du précédent? J'ai essayer mais l'interface d'administration reconnais qu'il y a un nouveau module... je dois donne un chemin d'acces ( maquette locale ???) et surtout une archive .rar (je suis sous mac)?

Peux-tu m'aider ?

[Edit] J'ai vu par ailleurs sur un autre topic que tu étais assez pro sur les modules donc n'hésites pas.... :)

Link to comment
Share on other sites

Si tu veux les déplacer tout en les laissant proches, tu peux jouer avec le css. Sinon, oui, il va falloir faire un autre module.

Pas besoin de faire d'archives rar pour installer un nouveau module.

Décris moi ce que tu veux faire exactement avec ton module, et je t'expliquerais comment faire ^^

Link to comment
Share on other sites

Voila: Je veux changer HOOK_TOP pour n'y laisser que "Welcome" , "Login", "Langues" en haut a droite de HEADER pour cela il faut que je change le module "user info. Je preferais en recreer un autre du genre "user info 2" et creer un nouveau module pour "My account", "My Cart", "Contact", que je mettrais dans HOOK_ FOOTER avec l'autres menu infos un peu remanier.

Je voulais savoir aussi s'il était possible de conserver des modules justes pour un theme particulier ?

Merci pour toutes vos reponses....

Link to comment
Share on other sites

Voila: Je veux changer HOOK_TOP pour n'y laisser que "Welcome" , "Login", "Langues" en haut a droite de HEADER pour cela il faut que je change le module "user info. Je preferais en recreer un autre du genre "user info 2" et creer un nouveau module pour "My account", "My Cart", "Contact", que je mettrais dans HOOK_ FOOTER avec l'autres menu infos un peu remanier.

Je voulais savoir aussi s'il était possible de conserver des modules justes pour un theme particulier ?

Merci pour toutes vos reponses....


Sinon pour moduler ton header tu peux le faire via l'admin

Admin/modumes/positions/ top header

là tu peux choisir l'ordre d'affichage, la suppression de certains modules etc...
Ensuite tu joues avec le Css pour bien disposer les blocs restants

exemple ici :
http://svracer.free.fr/prestashop/
ou la dans un ordre différent
http://atchworks.free.fr/testshop/


V++

Atch
Link to comment
Share on other sites

Merci Atch,

C'est vrai que la partie admin de la boutique est vraiment deja puissante pour faire à 90% ce que je veux modifier dans mon UI. Ce que je cherche aussi c'est a comprendre, notamment, la flexibilité de l'apparence de la boutique en jouant sur les thèmes et les différents modules sans toucher au code de départ.

Est-il pas mieux de créer un nouveau module: modifier le code .php et .tpl de celui ci parce que les module ce trouvent a la racine de la boutique et non dans le thème? Puis-je deplacer mes modules propres a un theme et "indiquer" a prestashop ou les prendre ? Merci de m'aider aussi pour la procédure d'installation.

-------------------
Itcridamour - prestashop V1.1 depuis 1 jour :D

Link to comment
Share on other sites

Alors...

Ce que je te suggère, c'est de faire un seul nouveau blockuserinfo (oubli l'existant, que tu désinstallera à partir du BackOffice). je vais le nommer blockuserinfonew

Il faudra faire une copie de l'existant pour le modifier. copie donc le dossier blockuserinfo et renomme le en blockuserinfonew, puis renomme les fichier blockuserinfo.php et blockuserinfon.tpl en blockuserinfonew.***. Enfin, dans blockuserinfonew.php, il faut renommer le module pour prestashop : modifie donc la ligne 7 en :

$this->name = 'blockuserinfonew';



Tu peux dès à présent vérifier la présence du nouveau module en l'installant à partir du backoffice. si tout s'est bien passé, et que tu as bien supprimé l'ancien blockuserinfo, rien ne devrais avoir changé.

Ensuite, tu souhaites que le module soit présent à deux endroits différents : dans le top, et dans le footer. Sachant qu'il est déjà dans le top, il faut l'inscrire dans le footer. pour celà, REMPLACE la ligne 22 par :

if (!$this->registerHook('top') || !$this->registerHook('footer'))



Il faut maintenant différencier l'affichage du top et du footer.
duplique donc le fichier blockuserinfonew.tpl et renomme les deux fichiers, par exemple, blockuserinfonewtop.tpl et blockuserinfownewfooter.tpl

dans le fichier .php, il te faut dupliquer la fonction hookTop, et nommer la nouvelle hookFooter.
A la fin de cette fonction, tu devrais avoir un

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


renomme le fichier retourné 'blockuserinfonew***.tpl', avec *** = top ou footer suivant la fonction.

A ce moment, tu devrais avoir dans ton frontoffice, deux blockuserinfo, un dans le top, et un dans le footer.

Si tu souhaites maintenant personnaliser l'affichage en fonction du thème, j'ai cherché, et trouvé comment faire :

dans chaque dossier themes/nomdutheme/, créé le dossier /modules/ s'il n'existe pas déjà, puis créé le dossier /blockuserinfonew/ et place les fichiers tpl dedans.

Il ne te reste plus qu'à supprimer les éléments que tu ne souhaites pas avoir dans le hook correspondant, et ce pour chaque theme.

Si ça marche, sans que j'ai rien testé, c'est que je suis un Dieu. et c'est la classe :coolhmm:

Link to comment
Share on other sites

ça, c'est pour quand tu as un module dans un fichier .tar.

pas besoin de faire ça, si le module est valide et qu'il est présent dans le dossier /modules/ de la boutique, il est détecté automatiquement par prestashop !

ATTENTION : là, tu as mis le module tout entier dans ton dossier de theme, ce n'est pas ce qu'il faut faire !

il faut que tu mettes le dossier blockuserinfonew dans /Monsite/boutique/modules/, et les tpl dans /Monsite/boutique/themes/Montheme/modules/blockuserinfonew/

Link to comment
Share on other sites

Je reste bloquer sur cette histoire d'url pour le localhost et sur le format de l'archive... je sais qu'il y a quelque développeur sous mac sur le forum peut-être sauront-ils me dire comment faire ?

En plus c'est bloquant pour la gestion des modules parce que tant que je n'ai pas rajouter le module en attente (ou supprimer) je ne peux y accèder normalement.

Link to comment
Share on other sites

oki, tu ne sembles pas avoir compris, ou je n'ai pas été assez clair.


Utilisateur mac ou pas, tu n'as PAS besoin de faire appel à cette fonction de la boutique pour ajouter un module.

Si le code du module est bien écris, (ce qui est normalement le cas si tu as suivis ce qui as été dit), le module apparait de lui même dans le backoffice.

Link to comment
Share on other sites

Encore une fois merci beaucoup a tous et particulièrement à SotEW!!!!


PS: je vois que beaucoup de post depuis 2 jours tournent autour du même sujet : fonctionnement des HOOK, et modification evenetuelle d'un module pour le faire a sa main. N'y a t'il pas moyen que la qualité des réponses données puisse se retrouver dans le WIKI ?

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