anthony_sup Posted January 7, 2013 Share Posted January 7, 2013 (edited) Bonjour, Je découvre prestashop depuis peu et jusqu'ici tout allait bien mais … car il y a a toujours un mais… Malgré mes recherches, je n'arrive pas à trouver la solution, j'ai donc besoin de votre aide. Dans la page category.tpl j'essaie de récupérer les urls des images de chaque produit relatifs à la catégorie. Cependant impossible de comprendre comment les images sont recrachées… Vous avez des idées? des pistes ? merci Edited January 7, 2013 by anthony_sup (see edit history) Link to comment Share on other sites More sharing options...
franckm1000 Posted January 7, 2013 Share Posted January 7, 2013 (edited) Category.tpl n'affiche pas a proprement parlé les produits. Mais le fichier renvoie product-list.tpl en lui assignant la variable $products qui elle contient toutes les infos des produits de la catégorie. Donc regardes dans le fichier product-list.tpl et pour les images va regarder du côté de: {$link->getImageLink(....)} Edited January 7, 2013 by franckm1000 (see edit history) Link to comment Share on other sites More sharing options...
anthony_sup Posted January 7, 2013 Author Share Posted January 7, 2013 (edited) merci, pas de problème pour récupérer la 1ere image du produit, mais les autres … en expliquant ce que je souhaite faire ce sera peut être plus simple. Je souhaite intégrer un slideshow en haut de ma page contenant toute les images de chaque produits de la catégorie. pour l'instant j'ai : <div id="my-slideshow"> <ul class="bjqs"> {foreach from=$products item=product name=products} <li> <img src="{$link->getImageLink($product.link_rewrite, $product.id_image)}" /> </li> {/foreach} </ul> </div> le problème est que je ne sais pas comment récupérer toutes les images … je ne sais pas si c'est clair … il faudrait quelque chose comme cela : <div id="my-slideshow"> <ul class="bjqs"> {foreach from=$products item=product name=products} {foreach image_produit} <li> <img src="{produit[i]url_image[$j]}" /> </li> {/foreach} {/foreach} </ul> </div> Edited January 7, 2013 by anthony_sup (see edit history) Link to comment Share on other sites More sharing options...
franckm1000 Posted January 7, 2013 Share Posted January 7, 2013 La variable $products récupère l'image par défaut de ton produit. Si tu veux récupérer les autres, il va falloir aller chercher leur ID dans le code PHP donc dans le controller categorycontroller.php Dans ce fichier la variable $products est générée par la méthode getProducts de la classe Category. C'est dans cette méthode que la requête est effectuée sur la base pour récupérer les infos et notamment l'id_image. C'est sur cette méthode que tu devras jouer si tu veux récupérer tous les id des images. Une autre solution serait d'utiliser la méthode getImages de la classe Product. Dans tous les cas, tu devras passer par du PHP et pas uniquement sur smarty car la page product-list.tpl n'appelle pas par défaut toutes les images de chaque produit. 1 Link to comment Share on other sites More sharing options...
anthony_sup Posted January 7, 2013 Author Share Posted January 7, 2013 ok merci beaucoup. je vais regarder dans les controllers alors. Je posterais ma solution quand ce sera fait. Link to comment Share on other sites More sharing options...
anthony_sup Posted January 7, 2013 Author Share Posted January 7, 2013 voici ma solution pour récupérer toutes les images des produits dans la product list: override Category : public function getAllImages($id_lang, &$products) { $imagecore = new ImageCore(); for ( $i=0; $i < count($products); $i++){ $products[$i]['images'] = $imagecore->getImages($id_lang, $products[$i]['id_product']); } } categoryController.php : ajouter $this->category->getAllImages($this->context->language->id, $this->cat_products); après la ligne : $this->cat_products = $this->category->getProducts($this->context->language->id, (int)$this->p, (int)$this->n, $this->orderBy, $this->orderWay); et dans product_list : <div id="my-slideshow"> <ul class="bjqs"> {foreach from=$products item=product name=products} {foreach from=$product.images item=image name=images} <li> <img src="{$link->getImageLink($product.link_rewrite, $image.id_image)}" alt="" title="{$product.description_short|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="979" height="532"{/if} /> <span class="caption_slide_cat">{$product.description_short}</span> </li> {/foreach} {/foreach} </ul> </div> Voilà j'espère que ca servira à tout le monde ! merci encore à franckm1000 de m'avoir aiguiller 1 Link to comment Share on other sites More sharing options...
franckm1000 Posted January 7, 2013 Share Posted January 7, 2013 Nickel Simplement préciser que ta solution fonctionne sur prestashop 1.5 avec l'utilisation du Context. Pour 1.4 il faudra utilisa la variable globale $cookie (à la place de $this->context->language->id) Link to comment Share on other sites More sharing options...
domrod Posted March 23, 2013 Share Posted March 23, 2013 Bonjour, J'ai testé et ça marche nickel. Merci Par contre je cherche une solution pour afficher les attributs et valeurs des produits sur la page product-list. J'ai cherché sur le forum mais les solution ne fonctionne que sur d'anciennes versions de presta et pas sur la 1.5.3. Est-ce que quelqu'un, en déclinant/adaptant cette méthode (celle utilisée ici pour les images) a réussi à le faire? Merci pour votre aide Link to comment Share on other sites More sharing options...
Gotiep Posted May 9, 2015 Share Posted May 9, 2015 Bonjour, Le post est vieux et la solution ne semble plus fonctionner sur 1.6, quelqu'un aurait la gentillesse de me guider? Merci d'avance. Gauthier. 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