PrestashopUser03 Posted November 10, 2017 Share Posted November 10, 2017 (edited) Bonjour à tous, Je suis en train de créer un module qui récupère les informations d'une api pour les afficher dans la fiche produit et dans la liste des produits (product-list.tpl), pour la fiche produit, ça marche nickel, les informations sont récupérées et j'arrive à tout afficher correctement. Pour la liste des produits, c'est une autre histoire, j'ai créé un hook (ajouté à la base de données, puis mit sur product-list.tpl) et il fonctionne, j'arrive à ajouter des données statiques via ce hook. En revanche, j'aimerais donc savoir comment récupérer les informations du produit affiché dans chaque vignette. J'ai essayé de faire $product = $this->context->controller->getProducts(); mais un seul produit s'affiche à l'écran au lieu des dizaines de produits habituels de la page product-list.tpl, la mise en forme disparait et le reste de la page ne s'affiche pas : Y aurait-il une autre fonction qui permet d'afficher les informations d'un produit dans la page product-list.tpl? Merci d'avance Edited November 10, 2017 by PrestashopUser03 (see edit history) Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 13, 2017 Author Share Posted November 13, 2017 (edited) Bonjour, merci pour cette réponse. Concernant le code, c'est ce que j'ai fait dans mon fichier tpl, mais cette ligne : $product = $this->context->controller->getProduct(); fait tout bugguer une fois que je l'ajoute à mon hook et je ne sais pas pourquoi alors que plus bas sur un autre hook qui s'affiche sur la fiche produit, cette ligne fonctionne parfaitement. Dans product-list.tpl, j'ai fait ça : {hook h=displayProductList mod="leasingdisplay"} Edited November 13, 2017 by PrestashopUser03 ajout d'informations (see edit history) Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 13, 2017 Author Share Posted November 13, 2017 J'ai bien fait ce que vous venez de me dire, mais en fait, le problème vient seulement de ça : $product = $this->context->controller->getProduct(); Ca fait arrêter le chargement de toute la page, savez-vous pourquoi? (en parallèle, j'ai testé avec ce code : $product = new Product((int)$id, true, (int)$id_lang); et je récupère des informations sur le produit (avec un var_dump) mais pas le prix ou le manufacturer_name, qui sont les deux informations dont j'ai besoin) Avez-vous une idée? Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 13, 2017 Author Share Posted November 13, 2017 (edited) Rien du tout, ça tourne dans le vide et la page ne charge jamais, voici l'intégralité du code : dans le hook: public function hookdisplayProductList($params){ d($params); return $this->display(__FILE__, "views/templates/front/tabproduct.tpl"); } dans le tpl : {hook h=displayProductList mod="leasingdisplay" product=$product} Je précise tout de même que le hook fonctionne, j'ai réussi à passer des paramètres de test aux endroits de mon choix. D'ailleurs, quel est l'équivalent du code de la fiche produit mais pour la page des catégories où se trouve product-list.tpl. Mieux encore, y-a-t-il un document qui liste toutes ces fonctions? Merci Edited November 13, 2017 by PrestashopUser03 (see edit history) Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 13, 2017 Author Share Posted November 13, 2017 Le débug prestashop est bien activé et il fonctionne bien ailleurs. Je ne comprends donc pas pourquoi ça ne fonctionne pas ici. Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 13, 2017 Author Share Posted November 13, 2017 Lorsque je fais ça dans le hook: $manufacturer = new Manufacturer((int)$id, (int)$id_lang); $nom=$manufacturer->name; d($manufacturer); Voilà ce que m'affiche le débug. : Manufacturer Object ( [ id] => [id_manufacturer] => [name] => [description] => [short_description] => [id_address] => [date_add] => [date_upd] => [link_rewrite] => [meta_title] => [meta_keywords] => [meta_description] => [active] => Aucune info n'est apparue, donc, comment faire pour les récupérer svp? Dans la fiche produit, j'ai juste eu à faire $product = $this->context->controller->getProduct(); et à appeler le contenu de l'array $product, quel est l'équivalent sur la page catégorie? Merci d'avance Link to comment Share on other sites More sharing options...
coeos.pro Posted November 13, 2017 Share Posted November 13, 2017 $manufacturer = new Manufacturer((int)$id, (int)$id_lang); tu as quoi comme $id et $id_lang ? as tu essayé de mettre directement des valeurs dans cette ligne ? 1 Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 13, 2017 Author Share Posted November 13, 2017 Il n'y a rien vu que ce n'est pas connecté au produit en cours, c'et justement le but de ce topic, comment récupérer les infos du produit en cours. Je me répète, mais je suis vraiment bloqué sur une ligne toute bête qui serait du même type que $product = $this->context->controller->getProduct(), mais pour la page catégorie. Merci beaucoup pour vos réponses en tous cas Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 13, 2017 Author Share Posted November 13, 2017 1 hour ago, coeos.pro said: $manufacturer = new Manufacturer((int)$id, (int)$id_lang); tu as quoi comme $id et $id_lang ? as tu essayé de mettre directement des valeurs dans cette ligne ? Quand je tente en mettant 8 comme id par exemple, j'ai bien l'object d'une marque qui apparait dans le débug. Donc ça fonctionne de cette façon, mais le d($params) ne fonctionne pas. Je suis tout de même bloqué avec le même problème qui est que je ne sais pas comment lier le produit en cours au hook. Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 13, 2017 Author Share Posted November 13, 2017 Merci infiniment, ça marche parfaitement. Pour récupérer le prix, j'ai fait $price=$params['product']['price_without_reduction']; mais j'ai l'impression de faire quelque chose de sale par rapport à prestashop. Où trouver toutes les fonctions permettant d'appeler les caractéristiques des produits/catégories et co? Pour info, le d($params) ne fonctionnait pas parce que la page sur laquelle je l'ai fait contenait trop de produits et que le navigateur plantait, je l'ai fait sur une catégorie à 7 produits et ça a fonctionné. Merci en tous cas pour vos aides Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted November 14, 2017 Author Share Posted November 14, 2017 J'ai un bon niveau en procédural, et j'ai de bonnes bases en orienté objet, je souhaiterais bien reprendre depuis le début mais il n'existe aucune doc digne de ce nom pour prestashop... 1 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