flo-imajean Posted March 4, 2012 Share Posted March 4, 2012 bonjour a tous, je me suis mis en tête de pouvoir afficher les déclinaisons(couleur) dans la page product-list.tpl et de faire changer l'image du produit avec événement onmouseover sur la déclinaison. je me suis servi de ce post pour mettre ca en place : http://www.prestashop.com/forums/index.php?/topic/106880-astuce-afficher-la-liste-des-couleurs-dans-la-liste-des-produits-survol/page__view__findpost__p__691635 le système marche, les déclinaisons s'affichent et le hover est fonctionnel mais je me retrouves avec l'image d'erreur 404 lors du survol de la déclinaison car il y a une variable qui n'est pas chargée (la variable {$color.id_image} ). donc j'ai bien rajouté les lignes dans /classes/Product.php et changé l'affichage dans product-list.tpl je penses qu'il sagit d'un manque dans la requête de Product.php mais quand je la regardes ça me fait peur ... donc si quelqu’un avait déjà réussi a mettre en place ce système ça serait sympa merci d'avance ps je suis sous ps 1.4.6.2 Link to comment Share on other sites More sharing options...
flo-imajean Posted March 5, 2012 Author Share Posted March 5, 2012 je me permet de up car apparement certains ont réussi a faire fonctionner le systeme sur 1.4.6.2. Je planche dessus depuis hier et je ne trouves as de solution, la variable {$color.id_image} ne s'affiche pas du tout. voici comment j'ai procédé : ajouter ceci dans classes/Product.php /* ajout pour les couleur dans la liste des produits */ $colors = array(); $attributesGroups = Db::getInstance()->ExecuteS(' SELECT pai.`id_image`, ag.`id_attribute_group`, ag.`is_color_group`, agl.`name` AS group_name, agl.`public_name` AS public_group_name, a.`id_attribute`, al.`name` AS attribute_name, a.`color` AS attribute_color, pa.`id_product_attribute`, pa.`quantity`, pa.`price`, pa.`ecotax`, pa.`weight`, pa.`default_on`, pa.`reference`, pa.`unit_price_impact`, pa.`minimal_quantity` FROM `'._DB_PREFIX_.'product_attribute` pa LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute` LEFT JOIN `'._DB_PREFIX_.'product_attribute_image` pai ON pai.`id_product_attribute` = pa.`id_product_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute` = pac.`id_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON a.`id_attribute` = al.`id_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON ag.`id_attribute_group` = agl.`id_attribute_group` WHERE pa.`id_product` = '.(int)$row['id_product'].' AND al.`id_lang` = '.(int)($id_lang).' AND agl.`id_lang` = '.(int)($id_lang).' AND ag.`is_color_group` = 1 GROUP BY attribute_color ORDER BY agl.`public_name`, al.`name`'); if (Db::getInstance()->numRows()) { foreach ($attributesGroups AS $k => $rowcolo) { /* Color management */ if (isset($rowcolo['attribute_color']) AND $rowcolo['attribute_color'] ) { $colors[$rowcolo['id_attribute']]['value'] = $rowcolo['attribute_color']; $colors[$rowcolo['id_attribute']]['name'] = $rowcolo['attribute_name']; $colors[$rowcolo['id_attribute']]['id_image'] =(($rowcolo['id_image'] != NULL) ? intval($rowcolo['id_image']) : -1); } } } $row['colors'] = $colors; e t ajouté ceci dans product-list.php <a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"> <img id="img_{$product.id_product}" src="{$link->getImageLink($product.link_rewrite, $product.id_image)}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" height="{$homeSize.height}" width="{$homeSize.width}" /> {if isset($product.colors) && $product.colors} <p> {foreach from=$product.colors key='id_attribute' item='color'} <a id="{$product.id_product}-{$color.id_image}" class="color_pick" onclick="document.getElementById('img_{$product.id_product}').src='{$img_prod_dir}{$product.id_product}-{$color.id_image}.jpg'" title="{$color.name}"> <img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$color.name}" /> </a> {/foreach} </p> {/if} </a> les déclinaisons(couleur) s'affichent bien mais pas moyen de faire afficher cette variable. une ame charitable pour me montrer ou je me suis trompé ? merci d'avance ps: le onclick marche bien mais vu que la variable ne s'affiche pas, pas d'update de l'image donc erreur 404 sur l'image :/ Link to comment Share on other sites More sharing options...
Ether Création Posted July 17, 2012 Share Posted July 17, 2012 Bonjour, Nous venons de terminé un module qui permet l'affichage des attributs en hover Plus d'info ici :http://www.prestasho...a-product-list/ Cordialement, Arthur Link to comment Share on other sites More sharing options...
Ether Création Posted September 3, 2012 Share Posted September 3, 2012 Nouvelle MAJ pour les versions 1.3 ici 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