Claire B Posted April 27, 2017 Share Posted April 27, 2017 (edited) Bonjour, j'ai suivi le topic pour afficher UN fournisseur et UN fabricant sur la fiche produit. Je trouve ça sympa de pouvoir cliquer sur le nom du fournisseur ou du fabricant pour avoir tous les produits de chacun. Là je vais avoir des produits avec plusieurs fabricants et je voudrais tous les faire apparaitre. Dans mon cas, les fabricants sont les auteurs et les fournisseurs sont les maisons d'édition. Donc, quand j'ai plusieurs auteurs, je voudrais tous les faire apparaitre. pour le moment, j'utilise ce code : <!--pour afficher les auteurs--> {if isset($product->manufacturer_name)} <p id="manufacturer"> <label>{l s='Auteur : '} </label> <a itemprop="brand" itemscope itemtype="http://schema.org/Brand" href="{$link->getManufacturerLink($product_manufacturer->id_manufacturer, $product_manufacturer->link_rewrite)|escape:'html':'UTF-8'}"><span class="editable" itemprop="name" content="{$product->manufacturer_name}">{$product->manufacturer_name|escape:'html':'UTF-8'}</span></a> </p> {/if} <!--pour afficher les maisons d'editions--> {if isset($product->supplier_name)} <p id="supplier"> <label>{l s='Editeur: '} </label> <a itemprop="brand" itemscope itemtype="http://schema.org/Brand" href="{$link->getSupplierLink($product_supplier->id_supplier, $product_supplier->link_rewrite)|escape:'html':'UTF-8'}"><span class="editable" itemprop="name" content="{$product->supplier_name}">{$product->supplier_name|escape:'html':'UTF-8'}</span></a> </p> {/if} j'utilise Prestashop 1.6.1.10 le site est là pour vous donner une idée : https://librairiedalmyre.com Merci d'avance et bonne journée Edited April 27, 2017 by Claire B (see edit history) Link to comment Share on other sites More sharing options...
PixGeek Posted April 27, 2017 Share Posted April 27, 2017 pour cela, il faudrait avoir la possibilité d'associer plusieurs éditeur et auteurs aux produits, mais cela me semble impossible sur presta ! A étudier ! Link to comment Share on other sites More sharing options...
doekia Posted April 27, 2017 Share Posted April 27, 2017 au sens prestashop il n'existe qu'un et qu'un seul fabricant pour un produit. Autant de fournisseur que tu veux, mais un seul fabricant. Tu devrais plutôt détourner les tags à ton usage Auteur:Amelie Notomb, Editeur:Seuil Link to comment Share on other sites More sharing options...
Claire B Posted April 27, 2017 Author Share Posted April 27, 2017 Okay. Pour les fabricants j'en fais mon deuil. Mais du coup, si je veux afficher plusieurs fournisseurs est-ce possible ? Parce que je ne vois pas comment sont associés plusieurs fournisseurs au même produit genre "supplier_name 2"; "supplier_name 3" Comment faire dans ce cas ? merci pour les réponses Link to comment Share on other sites More sharing options...
Grafics Posted April 27, 2017 Share Posted April 27, 2017 Bonjour, Il n'y a qu'un fournisseur par défaut (table produit), mais sur la table des fournisseurs, il n'y a pas de limite. Sur la fiche tpl produit, il faut ajouter un code permettant d'afficher l'ensemble des fournisseurs associés. ainsi qu'un override du controller. A vérifier, mais dans le genre : ProductController.php <?php class ProductController extends ProductControllerCore { public function initContent() { parent::initContent(); foreach (ProductSupplier::getSupplierCollection($this->product->id, true)->getResults() as $productSupplier) { $suppliers[] = new Supplier($productSupplier->id_supplier, $this->context->language->id); } $this->context->smarty->assign('suppliers' , $suppliers ); } } et product.tpl <p id="supplier"> {if isset($suppliers)} {foreach from=$suppliers item='supplier' name='supplier_list'} {if {$supplier->id_supplier} !=0} <a href="{$link->getsupplierLink($supplier->id_supplier, $supplier->link_rewrite)|escape:'html':'UTF-8'}" title="{l s='More about '} {$supplier->name}"> <img class="img-thumbnail" src="{$img_ps_dir}/su/{$supplier->id_supplier}-thumb_default.jpg" alt="{l s='More about '} {$supplier->name}" /> </a> {/if} {/foreach} {/if} </p> 1 Link to comment Share on other sites More sharing options...
doekia Posted April 27, 2017 Share Posted April 27, 2017 Tout simplement par l'intermédiare de la table ps_product_supplier Link to comment Share on other sites More sharing options...
Claire B Posted April 28, 2017 Author Share Posted April 28, 2017 Bonjour, Il n'y a qu'un fournisseur par défaut (table produit), mais sur la table des fournisseurs, il n'y a pas de limite. Sur la fiche tpl produit, il faut ajouter un code permettant d'afficher l'ensemble des fournisseurs associés. ainsi qu'un override du controller. A vérifier, mais dans le genre : ProductController.php <?php class ProductController extends ProductControllerCore { public function initContent() { parent::initContent(); foreach (ProductSupplier::getSupplierCollection($this->product->id, true)->getResults() as $productSupplier) { $suppliers[] = new Supplier($productSupplier->id_supplier, $this->context->language->id); } $this->context->smarty->assign('suppliers' , $suppliers ); } } et product.tpl <p id="supplier"> {if isset($suppliers)} {foreach from=$suppliers item='supplier' name='supplier_list'} {if {$supplier->id_supplier} !=0} <a href="{$link->getsupplierLink($supplier->id_supplier, $supplier->link_rewrite)|escape:'html':'UTF-8'}" title="{l s='More about '} {$supplier->name}"> <img class="img-thumbnail" src="{$img_ps_dir}/su/{$supplier->id_supplier}-thumb_default.jpg" alt="{l s='More about '} {$supplier->name}" /> </a> {/if} {/foreach} {/if} </p> Apparemment cela fonctionne, le thumbnail s'affiche bien, c'est super ! Je suis en train de le modifier pour faire apparaitre les noms des fournisseurs. J'espère que ça servira pour d'autres. En tout les cas merci et bonne journée ! Link to comment Share on other sites More sharing options...
chiiin1 Posted April 19, 2018 Share Posted April 19, 2018 bonjour j'ai suis sous prestashop 1.6 et la méthode pour afficher plusieurs fournisseurs dans la page produit marche nickel, mais je n'arrive pas a faire de même pour la product_list avez vous une astuce où un changement dans le foreach a faire ? merci de vos reponses Link to comment Share on other sites More sharing options...
doekia Posted April 19, 2018 Share Posted April 19, 2018 Les contrôleurs liste, n'instancient pas le Product, la méthode à déployer est différente. Il faut souvent ajouter la table supplier et l'id_supplier dans les requêtes sous jascente, en plus d'instancier le Supplier 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