Arnaud Drieux Posted October 21, 2010 Share Posted October 21, 2010 Salut à tous !Voilà, je me sert de cette palette afin de personnaliser des produits avec typo et image.Problème, j'ai créé deux palettes, l'une pour typo et l'autre pour image, hors dans BO il faut obligatoirement choisir entre les deux...Alors sur serait-ce possible de faire des modifications afin que les deux palettes (ou plus) soient prises en compte ?Sinon avoir la possibilité de multiplier ce "module" palette de coloris. En supposant qu'on puisse le multiplier, il y aura surement un problème de dédoublage du "module" exemple: le même titre, les même taille d'image etc...Alors il faudrait différencier chaque personnalisation.Quelqu'un aurait-il une idée pour cela? Je pense que ça pourrait être vraiment pas mal.Merci d'avance à tous ceux qui répondront EDIT :1ere SOLUTION ( merci à Damemarianne et merci aussi a A-prods pour son aide) :dans le product.php-- ligne 273-----remplacer ce code : /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) 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']; } -----par : /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) )//AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute_group']][$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute_group']][$row['id_attribute']]['name'] = $row['attribute_name']; } $colors[$row['id_attribute_group']]['public_group_name']=$row['public_group_name']; -- ligne 318-----remplacer ce code : 'colors' => (sizeof($colors) AND $product->id_color_default) ? $colors : false, -----par : 'colors_group' => (sizeof($colors) AND $product->id_color_default) ? $colors : false, dans le product.tpl (du thème)-- ligne 162-----remplacer ce code : {if $colors} <!-- colors --> {l s='Pick a color:' js=1} {foreach from=$colors key='id_attribute' item='color'} {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}{/if} {/foreach} {/if} -----par : {if $colors_group} <!-- colors --> {foreach from=$colors_group key='id_attribute_group' item='colors'} {$colors.public_group_name} : {foreach from=$colors key='id_attribute' item='color'} {if $id_attribute!="public_group_name"} {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}{/if} {/if} {/foreach} {/foreach} {/if} Et surtout n'oubliez par de rajouter dans la balise a du li ce code : onclick="updateColorSelect({$id_attribute|intval},{$id_attribute_group|intval});$('#wrapResetImages').show('slow');" Enfin dans le product.js (du thème)-- ligne 105-----remplacer ce code : function updateColorSelect(id_attribute) -----par : function updateColorSelect(id_attribute,id_color_default) Modifiez le code à la ligne 271 afin que les attributs concernés ne soient que les palettes couleurs.-- ligne 271-----remplacer ce code : /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) )//AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute_group']][$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute_group']][$row['id_attribute']]['name'] = $row['attribute_name']; } $colors[$row['id_attribute_group']]['public_group_name']=$row['public_group_name']; -----par if (((isset($row['attribute_color']) AND $row['attribute_color']AND ($row['is_color_group']==1)) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) )//AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute_group']][$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute_group']][$row['id_attribute']]['name'] = $row['attribute_name']; $colors[$row['id_attribute_group']]['public_group_name']=$row['public_group_name']; } Vous obtiendrez alors des images de la même taille que les cadres de couleur avec la fonction de clique et le changement d'image qui marche. 3 Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted October 22, 2010 Author Share Posted October 22, 2010 Petit up ? help Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 3, 2010 Author Share Posted November 3, 2010 Je fais un lien avec un post sur lequel d'autres personnes on réponduhttp://www.prestashop.com/forums/viewthread/72780/developpement/comment_inserer_ce_visuelMais la solution n'est toujours pas trouvée. Je re-up une fois de plus Link to comment Share on other sites More sharing options...
Vincent Decaux Posted November 3, 2010 Share Posted November 3, 2010 Bonjour, Moi je créerai un nouveau groupe d'attribut. Ensuite dans le code du product.tpl, tu peux utiliser l'ID du groupe et du coup, ne pas utiliser la liste déroulante de base des groupes, mais une liste d'images.Par exemple :{foreach from=$groups key=id_attribute_group item=group} {if $id_attribute_group|intval == 2} {foreach from=$group.attributes key=id_attribute item=group_attribute} {/foreach} {/if}{/foreach}Enfin voila, c'est pas des plus compréhensibles, mais ça pourrait marcher. Il faudrait ensuite que tu mettes chaque image dans le dossier /img/g et que tu l'appelles img_4.jpg par exemple. C'est moins automatique, mais ça reste une bonne piste.Pour ensuite récupérer l'ID de l'attribut, il faut mettre un input type="hidden" et un événement onclick="$('#input_group').val({$id_attribute|intval});" Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 3, 2010 Author Share Posted November 3, 2010 hummmmm je vais creuser de ce coté là. Merci pour ce début prometteur Link to comment Share on other sites More sharing options...
Vincent Decaux Posted November 3, 2010 Share Posted November 3, 2010 C'est à priori certain que cela marche, bon c'est très clair dans ma tête car j'aime bien coder, je vais te le mettre en place sur une boutique et te passer le code. Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 3, 2010 Author Share Posted November 3, 2010 Alors là se serait vraiment génialissime Moi aussi j'aime bien fouiner dans le code, ajouter et modifier, mais je ne connais pas tellement bien le javascript et autre. Etre autodidacte c'est bien mais ça a ses limites aussi ^^en tout cas merci d'avance Link to comment Share on other sites More sharing options...
Vincent Decaux Posted November 3, 2010 Share Posted November 3, 2010 MP envoyé pour le lien. C'est assez efficace.Je vais en faire un vrai module je pense. Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 3, 2010 Author Share Posted November 3, 2010 Woua ! ça à l'air bon ça ! Créé a partir du bout de code que t'as donné plus haut? Link to comment Share on other sites More sharing options...
Vincent Decaux Posted November 3, 2010 Share Posted November 3, 2010 Oui exactement. Y a que du code en fait à rajouter dans le product.tpl. Environ une dizaine de lignes. Si tu veux, je peux t'envoyer un fichier product.tpl modifié correctement. Il me faudrait juste l'ID du groupe que tu créeras pour tes images. Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 3, 2010 Author Share Posted November 3, 2010 Je veux bien le fichier, mais a la place de l'ID (que je n'est pas encore fait) tu mets un commentaire du genre /**ID de ton groupe**/ et ça ira comme sur des roulettes Link to comment Share on other sites More sharing options...
Vincent Decaux Posted November 3, 2010 Share Posted November 3, 2010 Alors voila le fichier.Il y a 3 fois l'ID à renseigner : Ligne 174Ligne 178Ligne 251Avec ce code, la liste déroulante ne s'affichera pas, uniquement les images en dessous du color Picker.Pour les images, tu peux changer le dossier dans le code, Ligne 178, dans l'attribut 'src' de l'élément images (actuellement, ça serait un dossier attr dans le dossier img).Le truc un peu long est de devoir nommer chaque image avec l'ID de l'attribut du groupe. Tu peux trouver facilement depuis la partie admin, dans l'URL de la fiche attribut. product_edited.zip Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 3, 2010 Author Share Posted November 3, 2010 Alors c'est un choya complexe, mais ça s'affiche bien. Parcontre le click ne fonctionne pas... pourtant le onclick y est... bizzare Link to comment Share on other sites More sharing options...
Vincent Decaux Posted November 3, 2010 Share Posted November 3, 2010 C'est déjà un bon début ! Pour améliorer l'afficher, tu peux rajouter 2 propriétés dans le CSS sur : #color_to_pick_list :clear:left;overflow:hidden;Pour que ça aille bien à la ligne.Le onclick est invisible en fait, ça change la valeur d'un input type="hidden" (donc caché) dans ton form.Tu peux ajouter un événement si tu veux, un alert() ou autre. Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 4, 2010 Author Share Posted November 4, 2010 Je vois je vois, mais pourtant ça n'est pas pris en compte ni pour le changement d'image, ni pour l'ajout au panier ... Link to comment Share on other sites More sharing options...
Vincent Decaux Posted November 4, 2010 Share Posted November 4, 2010 Ah ma faute ! J'ai oublié une chose.Il faut rajouter sur l'événement onclick de l'image : [removed]findCombination();Cela permet de créer la combinaison en fonction des produits, il y a un input type="hidden" aussi qui doit changer de valeur.Mais pour le changement d'images, tu veux signifier quoi exactement ? En cliquant sur une des petites images, l'image principale change ?Je ne suis pas très calé sur l'admin de Prestashop, donc je ne connais pas toutes les possibilités encore .... Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 4, 2010 Author Share Posted November 4, 2010 Le plus important, c'est que se soit pris en compte lors de l'envoie au panier. Sinon pour le petit plus, oui c'est le changement de l'image principale. Exemple: avec la palette de couleur simple, si tu attribues au rose une image de couleur rose, lorsque tu cliques sur la couleur rose, l'image principale change.Serait-ce ceci? ligne 168, dans le onclick de la palette de base ;$('#resetImages').show('slow'); Link to comment Share on other sites More sharing options...
Vincent Decaux Posted November 4, 2010 Share Posted November 4, 2010 Ah ok tout simplement, oui à priori c'est ce petit bout de Javascript (JQuery même).Il est présent sur tous les éléments Color.findCombination() permet de bien le prendre en compte lors de l'envoi au panier.Si tu as firebug, cherche l'input type="hidden" avec comme nom IdCombination (je crois !), sa valeur doit changer lors du clic sur une image. Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted November 8, 2010 Author Share Posted November 8, 2010 Yop je reviens encore dessus un lundi matin ^^Alors j'ai bien remplacé le hidden par findCombination(), un champ de plus s'affiche et quand on clique sur un choix, il prend en compte le numéro de la déclinaison /**voir image **/ mais quand on ajoute au panier, il ne la prend toujours pas . En ce qui concerne l'image centrale qui change, il se passe bien un petit changement. "afficher toutes les images" s'affiche mais l'image de change pas.je sens qu'on est tout près, mais ça résiste encore et encore >< Link to comment Share on other sites More sharing options...
Stephane13 Posted January 4, 2011 Share Posted January 4, 2011 Des nouvelles de votre problème ? Cela m'intéresse Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted January 4, 2011 Author Share Posted January 4, 2011 Erf malheureusement non. Il faudrait qu'un développeur se penche dessus. Link to comment Share on other sites More sharing options...
Damemarianne Posted February 2, 2011 Share Posted February 2, 2011 Bonjour,Je vient de faire la modif pour un de mes sites et comme j'étais tombée sur votre post avant, voila les modifs que j'ai effectuées :Pas de démo le site en question n'est pas encore en ligneTrois fichiers sont à modifierA la racine de votre boutique le fichier product.phpLigne 273 remplacer /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) 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']; } Par /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color'] AND $row['is_color_group']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) )//AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute_group']][$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute_group']][$row['id_attribute']]['name'] = $row['attribute_name']; } $colors[$row['id_attribute_group']]['public_group_name']=$row['public_group_name']; On modifie le test pour prendre en compte tout les attributs de couleurs et plus seulement celui sélectionné pour le produit (attention du coup tout les attributs de couleurs auront leur palette il n'y a plus de choix)Puis une modification du tableau de la palette pour y mettre les différentes palettesEnfin j'ajoute à mon tableau le nom de l'option pour affichage ultérieur.Ligne 318 remplacer 'colors' => (sizeof($colors) AND $product->id_color_default) ? $colors : false, Par 'colors_group' => (sizeof($colors) AND $product->id_color_default) ? $colors : false, Ensuite dans themes/votre_theme/product.tplRemplacer toute la partie de la palette ligne 162 {if $colors} <!-- colors --> {l s='Pick a color:' js=1} {foreach from=$colors key='id_attribute' item='color'} {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}{/if} {/foreach} {/if} Par {if $colors_group} <!-- colors --> {foreach from=$colors_group key='id_attribute_group' item='colors'} {$colors.public_group_name} : {foreach from=$colors key='id_attribute' item='color'} {if $id_attribute!="public_group_name"} {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}{/if} {/if} {/foreach} {/foreach} {/if} Pb de censure du forum qui supprime mon js, il faut ajouter à la balise onclick="updateColorSelect({$id_attribute|intval},{$id_attribute_group});$('#resetImages').show('slow');" Et à la balise onclick="updateColorSelect(0,{$id_attribute_group});$('a#resetImages').hide('slow');" title="{l s='Cancel'}" En résumé on fait une boucle pour chaque groupe de coloris, au lieu de choisissez une couleur j'affiche le libelle de l'attribut pour les différencier.Là tout s'affiche bien mais il n'y a pas de liaison entre les palettes et les listes déroulantes.Il faut encore modifier le fichier themes/votre_theme/js/product.jsLigne 105 remplacer : function updateColorSelect(id_attribute) Par function updateColorSelect(id_attribute,id_color_default) Edit 16/05/2011 : rajout du js supprimé par le forum et d'un test oublié pour voir si la déclinaison est bien un coloris Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted February 2, 2011 Author Share Posted February 2, 2011 Ola génial! J'essaies ça dans la journée. Un grand merci pour ta contribution Link to comment Share on other sites More sharing options...
salut270778 Posted February 2, 2011 Share Posted February 2, 2011 Bonsoir,je viens de tester tout ça mais le problème est que quand on clic sur la palette de couleur il ne reconnait pas l'article associé à la couleursolution?ou me tromperais-je quelque part?en tout cas bravo... Link to comment Share on other sites More sharing options...
a-prods Posted March 24, 2011 Share Posted March 24, 2011 je confirme, les palette s'affichent mais le click ne change rien Une idee, quelqu'un? Link to comment Share on other sites More sharing options...
a-prods Posted March 24, 2011 Share Posted March 24, 2011 Il ne manquerais pas ca quelque part dans le onclick="updateColorSelect({$id_attribute|intval});$('#wrapResetImages').show('slow');" J'ai essaye mais sans succes Link to comment Share on other sites More sharing options...
a-prods Posted March 25, 2011 Share Posted March 25, 2011 EUREKA J'AI TROUVE!!desole Eureka j'ai trouveen ligne 162 de product.tpl:remplacer {if $colors} <!-- colors --> {l s='Pick a color:' js=1} {foreach from=$colors key='id_attribute' item='color'} {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}{/if} {/foreach} {/if} par: {if $colors} <!-- colors --> {foreach from=$groups key=id_attribute_group item=group} {$group.name|escape:'htmlall':'UTF-8'} : {assign var='groupName' value='group_'|cat:$id_attribute_group} {foreach from=$group.attributes key=id_attribute item=group_attribute} {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}{/if} {/foreach} {/foreach} {/if} a la ligne 105 du fichier product.js (dans le dossier js du theme)remplacer function updateColorSelect(id_attribute) { if (id_attribute == 0) { refreshProductImages(0); return ; } // Visual effect $('#color_'+id_attribute).fadeTo('fast', 1, function(){ $(this).fadeTo('slow', 0, function(){ $(this).fadeTo('slow', 1, function(){}); }); }); // Attribute selection $('#group_'+id_color_default+' option[value='+id_attribute+']').attr('selected', 'selected'); $('#group_'+id_color_default+' option[value!='+id_attribute+']').removeAttr('selected'); findCombination(); } par function updateColorSelect(id_attribute,id_attribute_group) { if (id_attribute == 0) { refreshProductImages(0); return ; } // Visual effect $('#color_'+id_attribute).fadeTo('fast', 1, function(){ $(this).fadeTo('slow', 0, function(){ $(this).fadeTo('slow', 1, function(){}); }); }); // Attribute selection $('#group_'+id_attribute_group+' option[value='+id_attribute+']').attr('selected', 'selected'); $('#group_'+id_attribute_group+' option[value!='+id_attribute+']').removeAttr('selected'); findCombination(); } C'etait tout bete l'ID du groupe n'etait envoye a la fonction js du coup le select ne se changeait pas donc le click sur l'attribut n'etait pas pris en compte.Ca change egalement l'image principale du produitApres 4 heures, j'espere que ca en aidera plus d'un Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 25, 2011 Author Share Posted March 25, 2011 YEAAAAAAh great job. Enfin! bon pour moi c'est rapé parce que c'est plus d'actualité, mais en tout cas ça va finir dans mes aides favorites !!!!!Merci a tous et particulièrement a toi a-prods pour y avoir trouvé une solution finale Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 25, 2011 Author Share Posted March 25, 2011 Je viens de tester sur la 1.3.7 et j'ai quand même un soucis.Les click ne fonctionne pas et les couleurs dans les couleurs de bases ne s'affichent plus... bizarre Link to comment Share on other sites More sharing options...
a-prods Posted March 25, 2011 Share Posted March 25, 2011 chez moi ca marche. As tu un URL? Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 25, 2011 Author Share Posted March 25, 2011 nan c'est en local :/ Link to comment Share on other sites More sharing options...
a-prods Posted March 25, 2011 Share Posted March 25, 2011 regarde la:http://www.dev-aprods.com/product.php?id_product=2 Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 25, 2011 Author Share Posted March 25, 2011 En effet ça marche nikel sur ton site....Pour récapituler, il y a juste à faire Tes modifications pour que ça marche? Link to comment Share on other sites More sharing options...
a-prods Posted March 25, 2011 Share Posted March 25, 2011 oui, pour moi ca marche Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 25, 2011 Author Share Posted March 25, 2011 Bon bah je vais reinstaller prestashop, pour avoir une "feuille vierge" et faire ces modifs. Link to comment Share on other sites More sharing options...
a-prods Posted March 25, 2011 Share Posted March 25, 2011 stop!Tu as raison, j'ai oublier ca dans mon post: onclick="updateColorSelect({$id_attribute|intval},{$id_attribute_group|intval});$('#wrapResetImages').show('slow');" Link to comment Share on other sites More sharing options...
a-prods Posted March 25, 2011 Share Posted March 25, 2011 Je ne peux pas te poster le code, le forum censure (je me disais que c'etait bisard d'avoir oublie ...)Bref mais le onclick sur le lien dans le Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 25, 2011 Author Share Posted March 25, 2011 Alors c'est nikel, ça marche. Le dernier hic, c'est qu'il vire toujours les couleurs. Je crois qu'il n'apprécies pas la palette couleurs + palette image ><"En tout cas très bon travail Link to comment Share on other sites More sharing options...
a-prods Posted March 25, 2011 Share Posted March 25, 2011 est tu sur du chemin? Link to comment Share on other sites More sharing options...
a-prods Posted March 25, 2011 Share Posted March 25, 2011 exact, nj'ai pas verifie les couleurs mais le images seulement.{$color.value} n'est pas pris en compte dans le style, je verifie ca de suite Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 25, 2011 Author Share Posted March 25, 2011 du chemin? Non les images fonctionnent mais la palettes de couleurs web du style #fffff ou #dedede, déconne. Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 25, 2011 Author Share Posted March 25, 2011 J'ai aussi retesté la version de Damemarianne et ça fonctionne très bien. mais biensur, dans le product.tpl il ne faut pas oublier le onclick="updateColorSelect({$id_attribute|intval},{$id_attribute_group|intval});$('#wrapResetImages').show('slow');" après le style="background: {$color.value};" dans la balise a du Link to comment Share on other sites More sharing options...
a-prods Posted March 27, 2011 Share Posted March 27, 2011 effectivement c'est mieux car on recupere la valeur de la couleur mais c'est moins bien car on touche au coeur de PS (probleme pour mise a jour future)Un autre probleme subsiste: si une declinaison n'ai pas un coloris il l'affiche quand meme comme tel avec que des couleurs noir (par default)Dans l'exemple ci joint l'attribut Taille n'est configure commme palette de couleur. il faudrait afficher que le menu deroulant.Sinon tous les produits de la boutique avec declinaisons a;fficheront sous forme de palette.J'ai essaye (sans succes) a recuprer la valeur de "is_color_group" dans la DB (table ps_attribute_group) pour faire un {if}Quelqu'un aurait il une idee pour que cela n'affecte que les declinaisons de type "coloris" Link to comment Share on other sites More sharing options...
a-prods Posted March 27, 2011 Share Posted March 27, 2011 J'ai trouve la solutiondans le fichier product.phpil faut mettre if (((isset($row['attribute_color']) AND $row['attribute_color']AND ($row['is_color_group']==1)) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) )//AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute_group']][$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute_group']][$row['id_attribute']]['name'] = $row['attribute_name']; $colors[$row['id_attribute_group']]['public_group_name']=$row['public_group_name']; } a la place de 1 Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted March 28, 2011 Author Share Posted March 28, 2011 Ouép c'est nikel !!!!je précise juste la ligne concernée : 271 Link to comment Share on other sites More sharing options...
Guest Posted April 10, 2011 Share Posted April 10, 2011 Voila un module qui permet de faire tous sa, sans changer toute les lignes de code.http://www.xn--crating-cya.com/product.php?id_product=56Demo du module : http://www.xn--crating-cya.com/category.php?id_category=8Cordialement L'équipe Créating.com Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted April 10, 2011 Author Share Posted April 10, 2011 ui mais c'est payant Link to comment Share on other sites More sharing options...
Guest Posted April 11, 2011 Share Posted April 11, 2011 Oui mais c'est moins risquer, pour la stabilité du system prestashop.Cordialement l'équipe Créating.com Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted April 11, 2011 Author Share Posted April 11, 2011 Normal ^^ Link to comment Share on other sites More sharing options...
Damemarianne Posted May 16, 2011 Share Posted May 16, 2011 Je retombe sur mon message en essayant de faire la même modif pour un autre client et ... bah ça marche pas.Après verif le forum avait supprimé le js de mon code.J'ai donc édité mon post de base avec le js à part.http://www.prestashop.com/forums/viewthread/74716/P15/#374596Ps : en bonus ajout d'un test pour n'afficher que les attributs coloris/image Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted May 16, 2011 Author Share Posted May 16, 2011 Re-merci Link to comment Share on other sites More sharing options...
Guest Posted May 16, 2011 Share Posted May 16, 2011 Voila un module qui permet de faire tous sa, sans changer toute les lignes de code.http://www.xn—crating-cya.com/product.php?id_product=56Demo du module: http://www.xn—crating-cya.com/category.php?id_category=8Module Sur Prestashop Addons: http://addons.prestashop.com/fr/fonctionnalites-front-office/1247-gestion-declinaisons-visuels-illimites.htmlSur Prestashop Addons vous avez plus de screenshots de notre module.Cordialement L‘équipe Créating.com Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted May 16, 2011 Author Share Posted May 16, 2011 Oui on sait, ya un collègue à toi qui a mis a peu près le même message que toi au dessus Link to comment Share on other sites More sharing options...
petitemarie1 Posted July 1, 2011 Share Posted July 1, 2011 Bonjour à tous,je cherche à afficher 2 palettes de couleurs que j'utilise dans mes déclinaisons. Mais il ne propose l'affichage que l'une des 2 palettes. Or les couleurs sont differents dans les 2 groupes. Les clients ne peuvent donc pas choisir la 2eme couleur sans la voir Je pense que c'est plus simple que ce que vous avez reussi à faire... Bravo... Alors peut être pourriez vous m'aider svp?Je suis sous PS 1.4.1MerciP.S : ou alors au moins afficher un petit carré avec la couleur ds la liste deroulante ??? c'est une idée comme ça :s Link to comment Share on other sites More sharing options...
Modelizer Posted July 11, 2012 Share Posted July 11, 2012 Bonjour, Il faudrait que je puisse faire ceci sur mon site mais je suis sur prestashop 1.4 quelqu'un pourrait il m'aider ? la prestation sera rémunéré. J'ai lu le topic et j'ai vu qu'il y avait pas mal d'erreur donc je ne préfère pas me confronter au meme probleme car je ne saurait pas le résoudre. cordialement Link to comment Share on other sites More sharing options...
yesiam Posted October 29, 2012 Share Posted October 29, 2012 Salut à tous, quelqu'un pourrait bien expliquer comment vous avez à faire pour mettre deux palettes de couleurs (deux color picker) dans la page du produit (product.tpl) ? Merci Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted October 30, 2012 Author Share Posted October 30, 2012 Je suis un peu en train de regarder, mais je vous avoue que depuis que les fichiers sont passé de procédural à objet, ça devient assez compliqué. Surtout que je ne suis pas développeur confirmé et que j'ai encore du mal avec l'objet :/ Link to comment Share on other sites More sharing options...
yesiam Posted October 30, 2012 Share Posted October 30, 2012 (edited) Salut, merci pour la réponse, mais vous pouvez expliquer étape par étape ce qu'il faut faire, vous devez modifier les fichiers, s'ils ordonner la solution sera en mesure d'aider ceux qui sont un peu perdu avec ce sujet, salutations et remerciements. - Google translate Hi, thanks for replying, but you can explain step by step what to do, you need to modify files, if they order the solution will be able to help those who are a little lost with this topic, greetings and thanks. - Google translate Hola, gracias por responder, pero podéis explicar paso a paso lo que hay que hacer, que archivos hay que modificar, si ordenan la solución podran ayudarnos a los que estamos un poco perdidos con este tema, saludos y gracias. Edited October 30, 2012 by yesiam (see edit history) Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted October 31, 2012 Author Share Posted October 31, 2012 Sorry but for this moment I've no response to give you. This is so complex >< Link to comment Share on other sites More sharing options...
yesiam Posted October 31, 2012 Share Posted October 31, 2012 (edited) Merci ! Solved jajajajaa Edited November 1, 2012 by yesiam (see edit history) Link to comment Share on other sites More sharing options...
jamesford Posted April 29, 2013 Share Posted April 29, 2013 (edited) Salut à tous ! Voilà, je me sert de cette palette afin de personnaliser des produits avec typo et image. Problème, j'ai créé deux palettes, l'une pour typo et l'autre pour image, hors dans BO il faut obligatoirement choisir entre les deux... Alors sur serait-ce possible de faire des modifications afin que les deux palettes (ou plus) soient prises en compte ? Sinon avoir la possibilité de multiplier ce "module" palette de coloris. En supposant qu'on puisse le multiplier, il y aura surement un problème de dédoublage du "module" exemple: le même titre, les même taille d'image etc... Alors il faudrait différencier chaque personnalisation. Quelqu'un aurait-il une idée pour cela? Je pense que ça pourrait être vraiment pas mal. Merci d'avance à tous ceux qui répondront EDIT : 1ere SOLUTION ( merci à Damemarianne et merci aussi a A-prods pour son aide) : dans le product.php -- ligne 273 -----remplacer ce code : /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) 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']; } -----par : /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) )//AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute_group']][$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute_group']][$row['id_attribute']]['name'] = $row['attribute_name']; } $colors[$row['id_attribute_group']]['public_group_name']=$row['public_group_name']; -- ligne 318 -----remplacer ce code : 'colors' => (sizeof($colors) AND $product->id_color_default) ? $colors : false, -----par : 'colors_group' => (sizeof($colors) AND $product->id_color_default) ? $colors : false, dans le product.tpl (du thème) -- ligne 162 -----remplacer ce code : {if $colors} <!-- colors --> {l s='Pick a color:' js=1} [list] {foreach from=$colors key='id_attribute' item='color'} [*][url=""]{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}[img={$img_col_dir}{$id_attribute}.jpg]{/if}[/url] {/foreach} [/list] {/if} -----par : {if $colors_group} <!-- colors --> {foreach from=$colors_group key='id_attribute_group' item='colors'} {$colors.public_group_name} : [list] {foreach from=$colors key='id_attribute' item='color'} {if $id_attribute!="public_group_name"} [*][url=""]{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}[img={$img_col_dir}{$id_attribute}.jpg]{/if}[/url] {/if} {/foreach} [/list] [url=""][img={$img_dir}icon/cancel.gif][/url] {/foreach} {/if} Et surtout n'oubliez par de rajouter dans la balise a du li ce code : onclick="updateColorSelect({$id_attribute|intval},{$id_attribute_group|intval});$('#wrapResetImages').show('slow');" Enfin dans le product.js (du thème) -- ligne 105 -----remplacer ce code : function updateColorSelect(id_attribute) -----par : function updateColorSelect(id_attribute,id_color_default) Modifiez le code à la ligne 271 afin que les attributs concernés ne soient que les palettes couleurs. -- ligne 271 -----remplacer ce code : /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) )//AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute_group']][$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute_group']][$row['id_attribute']]['name'] = $row['attribute_name']; } $colors[$row['id_attribute_group']]['public_group_name']=$row['public_group_name']; -----par if (((isset($row['attribute_color']) AND $row['attribute_color']AND ($row['is_color_group']==1)) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) )//AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute_group']][$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute_group']][$row['id_attribute']]['name'] = $row['attribute_name']; $colors[$row['id_attribute_group']]['public_group_name']=$row['public_group_name']; } Vous obtiendrez alors des images de la même taille que les cadres de couleur avec la fonction de clique et le changement d'image qui marche. Super ta solution mais c'est sur quelle version? sur la version 1.4.6.2 c'est pas les memes codes voici le code que j'ai pour le color picker sur product.tpl {if isset($colors) && $colors} <!-- colors --> <div id="color_picker"> <p>{l s='Pick a color:' js=1}</p> <div class="clear"></div> <ul id="color_to_pick_list"> {foreach from=$colors key='id_attribute' item='color'} <li><a id="color_{$id_attribute|intval}" class="color_pick" style="background: {$color.value};" onclick="updateColorSelect({$id_attribute|intval});$('#wrapResetImages').show('slow');" title="{$color.name}">{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$color.name}" width="20" height="20" />{/if}</a></li> {/foreach} </ul> <div class="clear"></div> </div> {/if} le code attributes toujours sur product.tpl {if isset($groups)} <!-- attributes --> <div id="attributes"> {foreach from=$groups key=id_attribute_group item=group} {if $group.attributes|@count} <p> <label for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label> {assign var="groupName" value="group_$id_attribute_group"} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" onchange="javascript:findCombination();{if $colors|@count > 0}$('#wrapResetImages').show('slow');{/if};"> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}">{$group_attribute|escape:'htmlall':'UTF-8'}</option> {/foreach} </select> </p> {/if} {/foreach} </div> Edited April 29, 2013 by jamesford (see edit history) Link to comment Share on other sites More sharing options...
Arnaud Drieux Posted April 30, 2013 Author Share Posted April 30, 2013 Salut jamesford. Honnêtement je ne me rappel plus du tout. Ce sujet commence à dater. En tout cas merci pour ton code. PS: Peux-tu juste mettre ce code entre les balises pour que cela soit plus lisible? Merci Link to comment Share on other sites More sharing options...
jamesford Posted April 30, 2013 Share Posted April 30, 2013 yes c'est un vieux topic! mais domage que prestashop ne propose q'une seule palette couleur! Okey je vais revoir le code, et l'envoyer ici des ce soir (avec les balises...je savais pas comment faire ) Je ne sais pas sur quelle version tu etais pour avoir ce code, moi je suis sur la 1.4.6 et c'est pas les meme codes...! je veux proposer a mes utilisateur de personnaliser des stickers, donc je recherche a ajouter une autre palette textures, une autre palette style graphique.... J'ai reussi a dupliquer le color picker en touchant a ce code, mais c'est pas le but... Link to comment Share on other sites More sharing options...
jamesford Posted April 30, 2013 Share Posted April 30, 2013 (edited) Donc voila, la réctification de code que tu propose n'est pas envisageable sur la version 1.4.6voici donc les morceaux de code attribute et color picker si quelqu'un peut nous aider sur ce probleme on galere depuis quelques jours meme en essayant de toucher au codes!=====> Page "product.tpl"=> code couleur ligne 208 {if isset($colors) && $colors} {l s='Pick a color:' js=1}[list] {foreach from=$colors key='id_attribute' item='color'}[*][url=""]{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}[img={$img_col_dir}{$id_attribute}.jpg]{/if}[/url] {/foreach} [/list]{/if} [/code]=> code attribute ligne 267 {if isset($groups)} {foreach from=$groups key=id_attribute_group item=group}{if $group.attributes|@count} {$group.name|escape:'htmlall':'UTF-8'} :{assign var="groupName" value="group_$id_attribute_group"}{foreach from=$group.attributes key=id_attribute item=group_attribute}{$group_attribute|escape:'htmlall':'UTF-8'}{/foreach}{/if}{/foreach}{/if} =====> Page "product.php"c'est une fonction qui appelle la database! public function getAttributesGroups($id_lang){return Db::getInstance()->ExecuteS('SELECT 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.*FROM `'._DB_PREFIX_.'product_attribute` paLEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON pac.`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)($this->id).'AND al.`id_lang` = '.(int)($id_lang).'AND agl.`id_lang` = '.(int)($id_lang).'ORDER BY agl.`public_name`, al.`name`');} Bon voila j'envoie ce post comme un coup d'épée dans l'eau peut etre mais je crois que je vais acheter ce f****** module a 100€ lol Edited April 30, 2013 by jamesford (see edit history) Link to comment Share on other sites More sharing options...
Laulau2912 Posted March 24, 2014 Share Posted March 24, 2014 Bonjour, Petit up svp pour la version 1.4.10. Est-ce que quelqu'un a déjà essayé ce code sur cette version et est-ce qu'il fonctionne? Sinon auriez-vous un lien vers un module (même payant) car je ne trouve rien sur Addons? Un grand merci à vous! 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