Jump to content

Images produit personnalisée selon catégorie


Recommended Posts

Bonjour tout le monde,

 

Voila je surfe sur google et le forum de presta à la recherche d'une solution pour :

 

Cela concerne la fiche produit : Permettre d'afficher une image de taille différente selon la catégorie dans laquelle il se trouve.

Nativement Prestashop propose le large-default. Il y a un sujet qui explique comment créer une taille personnalisée et les modifications à apporter au fichier product.tpl.

 

Alors voici donc les modifs : 

- j'ai créé une taille d'image nommé "paul" de 550x550.  La taille par défaut (celle de mon thème) est de 550x850.

- j'ai modifié le fichier product.tpl comme suit pour que lorsque le produit se trouve dans la catégorie 39, la taille "PAUL" s'applique, sinon on applique "LARGE-DEFAULT": 

{if $category->id == 39}

  <img itemprop="image" src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'paul')|escape:'html':'UTF-8'}" title="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" alt="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}"/>

{else}

  <img itemprop="image" src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large_default')|escape:'html':'UTF-8'}" title="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" alt="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}"/>

{/if}

Le problème c'est qu'il prend en compte la catégorie par défaut.  Je m'explique :
- j'ai une ballerine blanche qui est associé à  ACCUEIL et CHAUSSURE (catégorie 39) et FEMME et BALLERINE (ce sont des catégories)

- La ballerine à comme catégorie par défaut "BALLERINE (49)"

 

La condition ne s'applique donc pas car la ballerine blanche n'a pas pour catégorie par défaut la 39.

 

Je cherche donc à rédiger une condition comme celle-ci :

SI le produit est présent dans la catégorie 39 ET toutes les sous-catégories de la catégorie 39 ALORS on applique l'image "PAUL"

 

Pouvez-vous m'aider svp ? 

 

merci d'avance

 

paul

 

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

 

Pourquoi faire ça ? je l'ai indiqué au début du message : 

"Permettre d'afficher une image de taille différente selon la catégorie dans laquelle il se trouve"

 

Cela concerne uniquement les fiches produits et plus particulièrement l'image du produit. Comme j'expliquais, Prestashop génère Large-defaut pour l'affichage de l'image sur la fiche produits (+ d'autre miniature pour le zoom et les Thumbnails. 

 

Je souhaites par exemple :

Générer une taille large-default-clothes : 800x1000 miniature pour les vêtement

Générer une taille large-default-shoes : 800x800 miniature pour les chaussures.

 

et dans la fiche produit, indiquer que :

- si le produit est présent dans la catégorie CLOTHES (ainsi que ses sous-catégorie) alors utiliser Large-default-clothes

- sinon si le est présent dans la catégorie SHOES (ainsi que ses sous-catégoriep alors utiliser Large-default-shoes

 

Le seul hic avec le code que je vous ai proposer ci-dessus, il prend en compte uniquement la catégorie PAR DEFAUT (sans les sous-catégorie).

Je souhaite pouvoir indiquer " TOUS LES PRODUITS DE LA CATEGORIE A AINSI QUE SES SOUS-CATEGORIES)

 

Merci d'avance.

Link to comment
Share on other sites

{edit}

 

A non j'ai trouvé la solution, il suffit d'appliquer le même principe pour le Thumbs_list juste en dessous dans Product.tpl.

Car  si on ne le modifie pas, le thumbs appel par défaut le  large_default.  Il suffit d'appliquer le même principe pour appeler à la place le Taille_perso;

 

Merci

 

{/edit}

 

Hello, 

 

merci beaucoup d'avoir pris le temps de rédiger un article sur cette demande. 

 

Juste une question, ta solution s'applique fonctionne mais uniquement aux photos de couverture apparement. Lorsque je créé un produit en ajoutant les photos et lorsque je visite la page produit en front, le format s'applique correctement, mais lorsque je clique sur les thumb, le format par défault revient.

 

Je suppose que c'est dans le ProductController.php ? :
if ($image['cover'])

 

Mais je ne n'ai pas du tout les compétences pour améliorer ou modifier ce type de code.

 

Encore merci,

 

paul

Edited by PAULGELO (see edit history)
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...