Jump to content

récupérer les url des images produits dans category.tpl


Recommended Posts

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 by anthony_sup (see edit history)
Link to comment
Share on other sites

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 by franckm1000 (see edit history)
Link to comment
Share on other sites

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 by anthony_sup (see edit history)
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

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

  • 2 years later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...