Jump to content

Vignettes déclinaisons : Les afficher toujours toutes ?


Recommended Posts

Bonjour à tous,

 

Dans ma fiche produit, j'associe les diverses déclinaisons de mes produits aux images correspondantes.

 

Fonctionnement actuel :

Lorsque je choisis le produit bleu, sa grande image apparait et toutes les vignettes disparaissent sauf celle du produit bleu avec le texte cliquable : "Afficher toutes les images".

Ce qui me parait assez inutile, pourquoi n'afficher que la vignette de l'image déjà affichée en grand et ne pas montrer les vignettes des autres couleurs ?

 

Fonctionnement désiré :

Avoir toutes les vignettes affichées tout en gardant l'affichage de la grande image correspondant à la déclinaison choisie par le clic du client.

Bref, que les vignettes soient toujours toutes affichées...

 

Est-ce possible ?

 

Merci d'avance, n'hésitez pas à me dire si je n'ai pas été très claire...

Edited by Yllen (see edit history)
Link to comment
Share on other sites

Je recherche la même réponse :)

 

EDIT:

 

Une piste:

 

Il faut modifier le template product.tpl ... un rapport avec count($images) et

 

 <a id="resetImages" href="{$link->getProductLink($product)}" onclick="$('span#wrapResetImages').hide('slow');return (false);">{l s='Display all pictures'}</a>

 

Mais supprimer ce lien ne vas pas faire afficher toutes les vignettes par défaut...

 

Une idée?

Edited by hitomiie (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Je viens de le faire à l'instant - et j'espère qu'il n'est pas trop tard pour vous, Hitomilie et Yllen.

Sinon cela aidera d'autres personnes.

 

Je n'ai fait cette modification QUE sur la version 1.4.9 de Prestashop, sur le thème par défaut.

Je ne suis pas capable de vous dire si ces modifications auront effets sur les autres versions 1.4.x, et encore moins sur 1.5.x et 1.3.x.

Et à condition bien entendu que le thème que vous utilisez ait à peut près les mêmes réglages TPL, JS et CSS que le thème Prestashop par défaut. Si ces réglages sont différents, impossible de prévoir si cela fonctionnera parfaitement comme souhaité.

 

Il y'a deux façons de régler le problèmes.

 

Soit le faire normalement avec les outils présents : (normalement compatible avec n'importe quel thème)

Il faut savoir qu'à chaque déclinaisons, vous pouvez associer l'une ou plusieurs (voir toutes) les images du produit. Il s'agit simplement de cases à cocher accompagnées des miniatures, lorsque vous créez une déclinaisons, dans le panneau d'administration de votre boutique.

 

Dans un produit quelconque que vous modifiez, allez simplement dans l'onglet "Déclinaisons" lorsque vous éditez l'objet, et sélectionnez une déclinaison déjà faite (ou créez en une).

La ligne "Image" vous permet alors de cliquer sur les images du produit que vous souhaitez associer à cette déclinaison.

 

Il va sans dire que si vous avez 20 déclinaisons différentes, il faudra le faire pour les 20. Idem si vous en avez plus d'une centaine...

 

Soit le faire en tapant directement les fichiers internes de Prestashop, /themes/[nomdevotretheme]/product.tpl et /themes/[nomdevotretheme]/js/product.js : (méfiance...)

 

Il suffira de commenter les lignes suivantes, que vous trouverez avec n'importe quel éditeur de texte équipé d'un moteur de recherche :

product.tpl

{if isset($images) && count($images) > 1}<p class="align_center clear"><span id="wrapResetImages" style="display: none;"><img src="{$img_dir}icon/cancel_16x18.gif" alt="{l s='Cancel'}" width="16" height="18"/> <a id="resetImages" href="{$link->getProductLink($product)}" onclick="$('span#wrapResetImages').hide('slow');return (false);">{l s='Display all pictures'}</a></span></p>{/if}

devenant alors

<!-- {if isset($images) && count($images) > 1}<p class="align_center clear"><span id="wrapResetImages" style="display: none;"><img src="{$img_dir}icon/cancel_16x18.gif" alt="{l s='Cancel'}" width="16" height="18"/> <a id="resetImages" href="{$link->getProductLink($product)}" onclick="$('span#wrapResetImages').hide('slow');return (false);">{l s='Display all pictures'}</a></span></p>{/if} -->

 

et product.js, modifier les lignes qui suivent l'appel de la fonction

function refreshProductImages(id_product_attribute)
{

 

$('#thumbs_list_frame').scrollTo('li:eq(0)', 700, {axis:'x'});
$('#thumbs_list li').hide();

devenant

// $('#thumbs_list_frame').scrollTo('li:eq(0)', 700, {axis:'x'});
// $('#thumbs_list li').hide();

 

(mieux vaut commenter que supprimer).

 

(TOUT le mérite va à Ethan42, qui avait donné la solution pour une version visiblement précédente, solution qu'il avait donné ici ).

Edited by MadW (see edit history)
Link to comment
Share on other sites

Bonsoir,

c'est la première fois que j'utilise les déclinaisons, j'utilise Prestashop depuis 2008 et j'en avais jamais eu besoin.

Sans le savoir, j'avais toutes mes images associées à toutes mes déclinaisons, voici comment j'ai fait :

 

J'ai chargé toutes mes images et monté mes déclinaisons sans associer les images, donc les images apparaissaient pour toutes mes pointures de chaussures et pour toutes les couleurs des chaussures.

 

À Propos des déclinaisons, je trouve cela long, très long à monter, lorsque l'on a 5 couleurs et 6 pointures de chaussures pour un même modèle, c'est beaucoup de boulot, trop de boulot. Ces déclinaisons, je les ai refaites 5 ou 6 fois et au début j'ai trouvé le procédé compliqué et long, très long, trop, long.

 

Moi, j'ai eu beau chercher une astuce pour aller plus vite je n'ai pas trouvé.

 

www.fringues-and-co.com

Edited by le-lutin31 (see edit history)
Link to comment
Share on other sites

  • 2 months later...

Trouvé : pour la version 1.4.9

 

Product.js c'est bien cette ligne :

 

// Change the current product images regarding the combination selected
function refreshProductImages(id_product_attribute)
{
// $('#thumbs_list_frame').scrollTo('li:eq(0)', 700, {axis:'x'});
// $('#thumbs_list li').hide();
id_product_attribute = parseInt(id_product_attribute);

 

Product.tpl, ç'est cette ligne :

 

<!--{if isset($images) && count($images) > 1}<p class="resetimg clear"><span id="wrapResetImages" style="display: none;"><img src="{$img_dir}icon/cancel_11x13.gif" alt="{l s='Cancel'}" width="11" height="13"/> <a id="resetImages" href="{$link->getProductLink($product)}" onclick="$('span#wrapResetImages').hide('slow');return (false);">{l s='Display all pictures'}</a></span></p>{/if}-->

Link to comment
Share on other sites

  • 3 months later...
  • 1 year later...
  • 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...