macewindu69 Posted April 11, 2016 Share Posted April 11, 2016 Bonjour à tous, j'écris pour la première fois sur le forum bien que j'ai l'habitude d'y trouver de nombreuses solutions.Mais là je bloque carrément donc j'aimerais vraiment que l'on puisse me donner un coup de main.Je m'explique : Je crée un Carrier Module qui doit ajouter disons DEUX carrier et qui doit permettre de choisir l'heure de la livraison pour chacun d'eux. MAIS pour chacun, les horaires proposés sont différents Pour l'instant j'ai créé mes deux carrier dans mon module, et j'ai greffé le module sur mon nouveau hook $this->registerHook('monNewHook') ; Ce hook est appelé dans order-template.tpl {hook h='monNewHook'} en rajouter un <td> dans le carrier déjà présent. Ensuite, dans la fonction hookMonNewHook($params) j'ai aussi réussi à afficher un template (contenu dans le module) qui va afficher un select.Le probleme c'est que je n'arrive pas à faire en sorte d'envoyer par la fonction hookMonNewHook une variable qui serait propre à chaque Carrier. Par exemple, j'aimerais pouvoir récupérer dans le template : - pour le carrier 1 => les horaires 1 - pour le carrier 2 => les horaires 2 Le probleme c'est que mon template donne bien entendu (et cela semble logique) le même résultat pour chacun des deux templates Je n'ai donc aucune idée de la manière donc je peux m'y prendre pour faire passer au template la variable que je souhaite au moment ou je souhaite vu que la fonction hookMonNewHook revient à afficher le même template et à faire les même traitements pour chaque Carrier. Si quelqu'un pouvait m'aider j'en serais grandement reconnaissant ! Merci d'avance Link to comment Share on other sites More sharing options...
macewindu69 Posted April 12, 2016 Author Share Posted April 12, 2016 En fait il me semble que je me suis mal expliqué J'ai trouvé une solution à mon problème qui consistait simplement à ajouter dans les propriétés du module la propriété public $id_carrier Et lors de l'installation, cela instancie automatiquement cette valeur par la valeur de l'id du carrier Ainsi, lors de l'appel à la fonction de hook, je peux faire un traitement selon l'id du carrier Je ne sais pas si c'est la meilleure facon de procéder, mais pour le moment c'est la seule que j'ai trouvé Si quelqu'un a une autre idée, merci de m'en faire partager Link to comment Share on other sites More sharing options...
macewindu69 Posted April 12, 2016 Author Share Posted April 12, 2016 Ok donc dans mon cas on a trouvé une solution Par contre j'avoue ne pas être certain de pouvoir me débrouiller comme ca à chaque fois. Et aussi, j'ai essayé votre methode dans la fonction getOrderShippingCost, cela n'a pas fonctionné (ca me renvoie 0 à chaque fois) D'ailleurs chose singulière, la fonction getOrderShippingCost semble s'appeler 4 fois par transporteur. Est-ce normal ? Link to comment Share on other sites More sharing options...
macewindu69 Posted April 12, 2016 Author Share Posted April 12, 2016 Non en fait pour tester un peu mon code, j'ai mis dans la fonction getOrderShippingCost de mon module un var_dump afin de tester si j'arrive bien à recevoir mon id_carrier comme souhaité.Et le résultat s'affiche 4 fois d'affilé pour chaque transporteur. Si j'enlève le var_dump on n'y voit rien bien sur (il n'y a alors qu'un return dans cette fonction qui transmet le prix au transporteur) Ca m'a paru bizarre mais est-ce un comportement de prestashop en général ? Link to comment Share on other sites More sharing options...
macewindu69 Posted April 12, 2016 Author Share Posted April 12, 2016 Non justement c'est bien ce que je pense Il doit y avoir une logique dans prestashop qui fait que ces fonctions (getOrderShippingCost et celle Extra) sont appelées plusieurs fois J'ai déjà lu un post en anglais concernant cette question, mais qui était restée sans réponse.Pour l'instant je me contente de cela merci de votre aide Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now