Jump to content

Image de couverture pour les produits


Recommended Posts

Bonjour,

 

Je voulais savoir s'il était possible d'avoir une image de couverture différente de l'image sur laquelle s'ouvre la page produit ?

Par exemple, j'ai réalisé des zooms de mes produits qui constituent mes couvertures, et je voudrais que la page produit affiche l'image entière, or actuellement la page produit affiche les zooms... ce qui n'est pas très joli.

 

merci  :)

Link to comment
Share on other sites

Euh,
Qu'il faudrait modifier un bout de code, afin que l'image par défaut (Zoom) s'affiche en couverture.
Et que la seconde image upload (La normal), soit l'image qui s'affiche une fois sur la page du produit.

Est-ce bien ce raisonnement ?

Link to comment
Share on other sites

Je voulais savoir s'il était possible d'avoir une image de couverture différente de l'image sur laquelle s'ouvre la page produit ?

Cela fonctionne pour les produits avec déclinaisons. Il est possible de choisir une photo de couverture et un attribut par défaut à laquelle affecter une photo.

A part ce cas de figure, je ne vois pas de solution par défaut.
Link to comment
Share on other sites

  • 1 year later...
  • 2 years later...

Hello, si qq'un cherche encore, voici la solution (Prestashop v1.4.7) :

 

Pour ne pas afficher l'image de couverture (don't display cover image for products) pour les produits dans le detail d'un produit uniquement.

 

Dans ProductController.php l. 245 function process()

 

foreach ($images AS $k => $image)
{
 if ($image['cover'])
 {
  self::$smarty->assign('mainImage', $images[0]);
  $cover = $image;
  $cover['id_image'] = (Configuration::get('PS_LEGACY_IMAGES') ? ($this->product->id.'-'.$image['id_image']) : $image['id_image']);
  $cover['id_image_only'] = (int)($image['id_image']);
 }


 $productImages[(int)$image['id_image']] = $image;
}

 

remplacer par

 

foreach ($images AS $k => $image)
{
 if ($image['cover'])
  continue;

 if (!isset($cover))
  {
   $cover = $image;
   $cover['id_image'] = (Configuration::get('PS_LEGACY_IMAGES') ? ($this->product->id.'-'.$image['id_image']) : $image['id_image']);
   $cover['id_image_only'] = (int)($image['id_image']);	  
  }

 $productImages[(int)$image['id_image']] = $image;
}

 

Pour etre propre il faut utiliser l'OverRide pour surcharger le Controller et ne pas bloquer la mise a jour de Prestashop.

Link to comment
Share on other sites

  • 1 year later...

Bonjour, j'essaie de faire pareil sur une version 1.5.4, le code marche, j'ai bien la seconde image qui s'affiche et l'image de couverture apparait bien dans la liste des produits (donc 2 images différentes) mais ça m'enlève également toute les autres images et le fonctionnement de la thickbox. une idée pour seulement enlever l'image de couverture sur la fiche produit et conserver toutes les autres??

merci.

Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

Bonjour,

Je souhaite également une réponse pour obtenir une image de couverture différente mais sans perdre les autres images sur les fiches produits ainsi que la thickbox !

 

Bien à vous,

David

 

 

Le code ci-dessous marche pour Prestashop 1.6

 

En comparant le code de remplacement et la partie à remplacer dans ProductController.php j'ai vu qu'il quelques différences d'orthographe, des ) des _ et cela ne se voyait pas forcément au premier coup d'œil.

 

Donc là on a les vignettes des autres images (mais pas celle de la couverture), les images s'affichent, la thickbox fonctionne.

 

Remplacer donc :

foreach ($images as $k => $image)
		{
			if ($image['cover'])		
			{			
			$this->context->smarty->assign('mainImage', $image);
			$cover = $image;
			$cover['id_image'] = (Configuration::get('PS_LEGACY_IMAGES') ? ($this->product->id.'-'.$image['id_image']) : $image['id_image']);
			$cover['id_image_only'] = (int)$image['id_image'];
			}
			$product_images[(int)$image['id_image']] = $image;
		}	

par

foreach ($images as $k => $image)
		{
			if ($image['cover'])
			continue;
	
			if (!isset($cover))
			{
			$cover = $image;
			$cover['id_image'] = (Configuration::get('PS_LEGACY_IMAGES') ? ($this->product->id.'-'.$image['id_image']) : $image['id_image']);
			$cover['id_image_only'] = (int)$image['id_image'];	  
			}
	
	 $product_images[(int)$image['id_image']] = $image;
	}
Link to comment
Share on other sites

  • 4 years later...

Bonjour, je cherche à faire la même chose mais dans prestashop 1.7.5.2... je vois à peu près dans quelle zone du fichier ProductController.php il faudrait agir mais n'étant pas programmatrice je ne sais faire que des copiés-collés... quelqu'un saurait-il me guider pour transformer l'affichage des images dans les fiches produits : ne pas y afficher l'image de couverture et dans le cas où il n'y a qu'1 image ne pas afficher les vignettes ? Merci pour votre aide

Link to comment
Share on other sites

  • 4 weeks later...
Le 07/12/2019 à 3:42 PM, rachpat a dit :

Bonjour, je cherche à faire la même chose mais dans prestashop 1.7.5.2... je vois à peu près dans quelle zone du fichier ProductController.php il faudrait agir mais n'étant pas programmatrice je ne sais faire que des copiés-collés... quelqu'un saurait-il me guider pour transformer l'affichage des images dans les fiches produits : ne pas y afficher l'image de couverture et dans le cas où il n'y a qu'1 image ne pas afficher les vignettes ? Merci pour votre aide

Merci de mettre le lien de votre page produit.

Link to comment
Share on other sites

Bonjour, merci de votre intérêt pour ma question mais j'ai pu résoudre le problème en remplaçant $product.cover par $product.images[1] dans mes fichiers product-cover-thumbnails.tpl et product-images-modal.tpl. Merci et bonne soirée !

 

Link to comment
Share on other sites

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...