skal16 Posted December 10, 2014 Share Posted December 10, 2014 Bonjour, je suppose que ce sujet a dû déjà être traité mais je ne trouve pourtant aucune solution. Je suis en version prestashop 1.5 je souhaite afficher la référence fournisseur product_supplier_reference dans la page produit. En modifiant le fichier product.tpl, je n'ai aucun résultat. Voici la modification effectuée {$product->product_supplier_reference|escape:'htmlall':'UTF-8'} ou {$product_supplier->product_supplier_reference|escape:'htmlall':'UTF-8'} Certainement parce que ces variables ne sont pas valorisées Je pense qu'il faut surcharger une classe ou un contrôleur mais là je sèche Quelqu'un peut-il m'aider ? Link to comment Share on other sites More sharing options...
Alexandre Carette Posted December 11, 2014 Share Posted December 11, 2014 Bonjour, pour en être sur regarde dans la console DEBUG pour voir si la variable s'affiche. Link to comment Share on other sites More sharing options...
skal16 Posted December 11, 2014 Author Share Posted December 11, 2014 Non dans la fenêtre de debug, cette valeur n'est pas ramenée et c'est bien le problème. Pour un produit il faut trouver son fournisseur puis sa référence fournisseur. je ne sais pas comment coder cet appel Link to comment Share on other sites More sharing options...
skal16 Posted December 11, 2014 Author Share Posted December 11, 2014 Voilà où j'en suis. J'ai surchargé la classe produt en y ajoutant une fonction public static function getProductSupplierReference($id_product,$id_product_attribute, $id_supplier) { // build query $query = new DbQuery(); $query->select('ps.product_supplier_reference'); $query->from('product_supplier', 'ps'); $query->where('ps.id_product = '.(int)$id_product.' AND ps.id_product_attribute = '.(int)$id_product_attribute.' AND ps.id_supplier = '.(int)$id_supplier ); $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($query); return $row['ps.product_supplier_reference']; Je souhaite maintenant à traver le tpl appelé cette fonction un peu comme cela {assign var="productSupplier" value=""} {assign var="productSupplier" value=$product->getProductSupplierReference($id_product,$id_product_attribute, $id_supplier)} Mais aucun résultat ne m'est retournée. Comment déclarer une fonction dans un overrider pour l'appeler dans le tpl ? Link to comment Share on other sites More sharing options...
Alexandre Carette Posted December 12, 2014 Share Posted December 12, 2014 faire un assign smarty, quelle version de prestashop ? Link to comment Share on other sites More sharing options...
herve25 Posted December 12, 2014 Share Posted December 12, 2014 (edited) Bonjour, Est-ce que tu utilise des déclinaisons sur tes produits ?Si tu n'en utilise pas, tu peux récupérer cette information de la manière suivante ( via un override de la classe Product ) <?php class Product extends ProductCore { /** * Récupération de la référence fournisseur * @param int $id_product_attribute : id_attribut_produit */ public function getProductSupplierReference($id_product_attribute = 0 ) { return ProductSupplier::getProductSupplierReference($this->id, $id_product_attribute, $this->id_supplier); } } ?> Et dans ton tpl sous la forme {$product->getProductSupplierReference()} Edited December 12, 2014 by herve25 (see edit history) Link to comment Share on other sites More sharing options...
skal16 Posted December 12, 2014 Author Share Posted December 12, 2014 Merci à vous c'est exactement ce qu'il me fallait Le code d'herve25 fonctionne à merveille 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