Arômes & Gourmandiz Posted August 27, 2012 Share Posted August 27, 2012 (edited) Bonjour, J'ai vu un module qui le faisait mais il existe peut-être une autre solution donc je tente ma chance : est-ce que c'est possible d'afficher les couleurs disponibles d'un même produit sur la page des catégories? D'avance merci Edited August 28, 2012 by Arômes & Gourmandiz (see edit history) Link to comment Share on other sites More sharing options...
SiteProjet Posted August 28, 2012 Share Posted August 28, 2012 Bonjour. Bien tenté! Mais c'était un coup de chance... Comme la solution nous intéressait pour un client, nous nous sommes penchés dessus. Voici la marche à suivre... Il s'agit d'overrider via le controller Category. C'est idéal dans la mesure où cela n'implique pas une modification du core. Et d'ajouter le code permettant d'afficher les couleurs, ainsi que le CSS associé. Cette méthode a été testée sous 1.4.8 et 1.4.9. Elle est théoriquement rétrocompatible jusque 1.4.6 : 1_ Ouvrir le fichier CategoryController.php dans le dossier controllers et ajouter ce qui suit à partir de la ligne 133 (avant self::$smarty->assign... au cas ou il y aurait déjà eut des overrides précédemment) : foreach ( $this->cat_products as $key => $cat_product ) { $product = new Product ( intval ( $cat_product[ 'id_product' ] ), true , intval ( self::$cookie -> id_lang )); $colors = array(); $attributesGroups = $product->getAttributesGroups((int)(self::$cookie->id_lang)); if ( Db :: getInstance ()-> numRows ()) { foreach ( $attributesGroups AS $k => $row ) { /* Color management */ if (isset( $row[ 'attribute_color' ] ) AND $row[ 'attribute_color' ] AND $row[ 'id_attribute_group' ] == $product -> id_color_default ){ $colors[$row[ 'id_attribute' ]][ 'value' ] = $row[ 'attribute_color' ] ; $colors[$row[ 'id_attribute' ]][ 'name' ] = $row[ 'attribute_name' ] ; } } } $this->cat_products[$key][ 'colors' ] = $colors ; } 2_ Editer ensuite le fichier product-list.tpl du répertoire de votre thème. Ajouter ce qui suit juste après la description du produit (après la ligne 35) mais avant le </div> : {if !empty($product.colors)} {foreach from=$product.colors key=id_attribute item=color} <span class="color_picker" style="background: {$color.value};" title="{$color.name}"></span> {/foreach} {/if} 3_ Ajouter ce qui suit à la fin du fichier product_list.css situé dans le dossier css de votre thème. #product_list .color_picker { display: block; float: left; width: 10px; height: 10px; margin: 5px 2px 5px 2px; cursor: pointer; border: 1px solid #D0D3D8; } And Voilà! Si jamais les modification ne s'affichent pas, pensez aux classiques : _ forcer la compilation _ supprimer manuellement le cache de smarty _ supprimer le cache de votre navigateur Pour info, quel module faisait cela ? 1 Link to comment Share on other sites More sharing options...
Arômes & Gourmandiz Posted August 28, 2012 Author Share Posted August 28, 2012 (edited) J'ai une chance moi dis donc! Et un gros merci à ton client qui souhaitait cette fonction du coup quand même! Alors chez moi ça marche nikel sauf un soucis de style : les cases couleurs dans les pages catégories s'incrémentent dans le bouton 'ajouter au panier' ce qui à 2 conséquences : Lorsque l'on clique sur les couleurs (peu importe lesquelles) --> On clique sur le bouton 'Ajouter au panier' --> Le produit va directement dans le panier sans le choix du paramètre couleur ni le passage par la fiche produit. Le texte 'Ajouter au panier' qui est à la base dans le bouton est décalé juste avant le bouton 'ajouter au produit' donc ce n'est plus cohérent. Mais sinon à part ça, vous avez rendue ma journée super belle!!!! Merci beaucoup Et pour répondre à votre question, le module dont je parlais est celui-ci. Edited August 28, 2012 by Arômes & Gourmandiz (see edit history) Link to comment Share on other sites More sharing options...
SiteProjet Posted August 28, 2012 Share Posted August 28, 2012 Content que cette manip' fonctionne. Par contre pour ce qui est du "soucis de style" cela est spécifique à votre thème car l'affichage standard des produits de fait par lignes et non "plusieurs par ligne". Merci donc d'ouvrir un nouveau topic sur ce sujet, avec idéalement une screenshot du soucis. Cela permettra aux passants de s'y retrouver Link to comment Share on other sites More sharing options...
Arômes & Gourmandiz Posted August 28, 2012 Author Share Posted August 28, 2012 OK j'ouvre un nouveau alors. Merci. 1 Link to comment Share on other sites More sharing options...
Arômes & Gourmandiz Posted August 28, 2012 Author Share Posted August 28, 2012 J'abuse un peu mais a tout hasard, y a t-il moyen de lier chaque puce de couleur à la fiche produit de la couleur correspondante? Si c'est compliqué on oublié c'est juste pour savoir Link to comment Share on other sites More sharing options...
SiteProjet Posted August 28, 2012 Share Posted August 28, 2012 Qui ne tente rien n'a rien! Par contre cela dépasse mon domaine de compétence et je ne sais pas s'il est possible de remonter jusqu'au lien de la fiche produit en partant de la couleur... mais pourquoi pas! Dans le principe c'est "simple" : il suffit d'encadrer le <span> avec des <a>; le tout étant de connaître le bon lien à renvoyer... Un autre développeur ? 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