Jump to content

Recommended Posts

Bonjour à tous,

 

Voilà, sur cette page, dans le footer, il y a un module qui sert à visualiser le fond de l'image du produit (sticker mural) au passage de la souris sur une couleur nommé "colorize + html5".

Ce module ne peut être greffé ailleurs qu'ici et le template ne dispose pas de hook juste au dessus de l'image produit (là où il faudrait donc placer le module) pour accueillir un quelconque module.

 

J'ai fait quelques recherches, il semblerait qu'il faille ajouter un nouveau hook de positionnement dans le template et un register ou un hook (je ne sais plus trop) dans le module pour lui dire qu'il peut se greffer dans la nouvelle position ainsi créer.

 

Dit comme ça, cela semble facile, ajouter 2 3 lignes de PhP dans 2 fichiers et terminé mais finalement pas tant que ça. Du coup je me tourne vers la communauté, si vous pouviez me guider à travers des tutos pour Prestashop 1.6, j'apprécierai grandement.

 

Sinon, j'ai pu voir l'existence du hook "ossHook" qui est prévu pour afficher un message d'alerte quand un produit est en rupture de stock. Pensez-vous que ce hook soit exploitable pour accueillir le module en question ?

Alors oui, le hook oosHook n'est pas positionné au dessus de l'image produit, mais bon... si c'est plus simple, pourquoi pas.

 

Merci d'avance :)

 

Talion

Edited by Talion77 (see edit history)
Link to comment
Share on other sites

perso je le placerais plutôt dans l'onglet description, petit problème : quand on clique sur une couleur dans "Background Color Preview :",  elle n'est pas sélectionnée dans les couleurs qui permettent de mettre le produit dans le panier.

Sinon pour déplacer ton module, dans le fichier product.tpl de ton theme, tu as peux être quelque chose comme : 

<div id="idTab1" class="rte">{$product->description}</div>
 

change le par : 

<div id="idTab1" class="rte">{hook h="bgColorPreview"}{$product->description}</div>

ensuite dans le fichier php de ton module tu as une fonction qui affiche ce rendu, imaginons cette fonction s'apelle fctdisplay() , rajoute une fonction juste avant cette fonction fctdisplay:

public function hookbgColorPreview($params)
{
return $this->fctdisplay($params);
}
  • Like 1
Link to comment
Share on other sites

Salut Coeos.pro :)

 

Merci de m'avoir répondu !

 

Alors, j'ai pu trouver le fichier product.tpl et y modifier la ligne en question sans soucis (et effectivement dans la description c'est peut-être plus judicieux). 

Par contre, pour le module, je suis actuellement dans le fichier colorizecanvas.php et... c'est un peu le bordel. Du coup je me permet de te montrer le code PhP en entier xxx, en espérant que tu ne vas pas te mettre en tête que j'attend que le travail soit mâché mais j'ai beau chercher, je n'arrive pas à identifier PARFAITEMENT la ligne concernée :(

 

Concernant le problème que tu as soulevé, pour moi ça n'en n'est pas un étant donné que c'est juste pour visualiser, ensuite le client sélectionne sa couleur.

Edited by coeos.pro (see edit history)
Link to comment
Share on other sites

ok, donc ce que je nommais fctdisplay est en fait (tout simplement) hookDisplayFooter, donc change:

 

/**
* Hook Footer
*/
 
par 
public function hookbgColorPreview($params)
{
return $this->hookDisplayFooter($params);
}
/**
* Hook Footer
*/

j'ai supprimé le lien vers le code comme c'est un module payant

Edited by coeos.pro (see edit history)
Link to comment
Share on other sites

Bon bah il ne me reste plus qu'à trouver le bon hook alors... lol

J'ai essayé dans "displayLeftColumnProduct (Extra actions on the product page (left column).)" et "displayLeftColumn (left column blocks)" et ça ne fonctionne pas (oui Left alors que c'est à droite mais dans le code source la colonne de droite est appelée "left column", étrange).

 

Je continue de chercher :)

 

Edition : idem dans les options pour "rightColumn". Je ne trouve rien avec "description" surtout :/

Edited by Talion77 (see edit history)
Link to comment
Share on other sites

C'est un ami développeur qui a pu finalement se libérer qui m'a aidé cette nuit (jusqu'à une heure du matin), et il n'y avait pas que quelques minutes car le module posait de nombreux problèmes.

 

Déjà, il a lu la doc' de PS, et s'est mis au travail. Après il fallait bien répertorier la nouvelle position nouvellement créée dans la base de données (ce qui me semblait logique), puis il a commencé à rencontrer des problèmes, ne serait que pour correctement le placer. Ensuite, des problèmes de Javascript, lorsqu'il déplaçait le module, l'image "preview" ne s'affichait plus, le changement de place du module avait modifié l'ordre de chargement du Javascript (du template de mémoire)... Pour finir, une fois qu'il avait résolu ce problème, et bien le template chargeait le module 2 fois. 

Ce qu'il y a de chiant avec le Javascript, c'est que quand c'est pas toi qui a codé le module, bah c'est la merde pour retoucher et là c'était le cas, il en a eu pour 2 bonnes heures.

 

Bref, ultra pénible pour finalement pas grand chose mais le module est désormais correctement placé.

Link to comment
Share on other sites

Ensuite, des problèmes de Javascript, lorsqu'il déplaçait le module, l'image "preview" ne s'affichait plus, le changement de place du module avait modifié l'ordre de chargement du Javascript (du template de mémoire)... Pour finir, une fois qu'il avait résolu ce problème, et bien le template chargeait le module 2 fois.

 

 

sur les dernières versions de PS (1.6.x) le js est chargé à la fin donc normalement ça ne pose pas problème et pour le module en double il suffisait de le degreffer :

oui, ensuite tu pourra degreffer le module de l'autre hook

Link to comment
Share on other sites

Et pourtant... :)

 

Le module du bas n'était pas degreffable vu qu'il n'existait pas concrètement dans l'administration, c'est le template (encore une fois, de mémoire) qui chargeait le module 2 fois et donc affichait le module en 2 fois, dont un dans le footer.

 

J'ai suivi les modifications en direct avec lui, je t'assure que c'était du délire lol

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