webspider Posted March 10, 2015 Share Posted March 10, 2015 Bonjour j'ai une petite interrogation concernant l'utilisation de "IF" , pour afficher la couleur selectionnée dans le color picker , j'ai rajouté la ligne suivant dans le fichier product.css {if $group.group_type =='color'} {/if} ca fonctionne parfaitement sauf que j'aimerais justement que ca ne s'execute que sur le premier color picker , pas les autres créés c'est en theorie super simple mais en php j'avoue ne pas encore savoir comment sont gerees les variables . si quelqun pourrait eclairer ma lanterne cela m'avancerais beaucoup ! d'avance merci la partie du code en question {foreach from=$groups key=id_attribute_group item=group} {if $group.attributes|@count} <fieldset class="attribute_fieldset"> <label class="attribute_label" {if $group.group_type != 'color' && $group.group_type != 'radio'}for="group_{$id_attribute_group|intval}"{/if}>{$group.name|escape:'html':'UTF-8'} </label> <!--rajoute le nom de la couleur choisie dans les color picker--> <!--il faudrais que ca ne s'affiche que dans le premier color picker , pas les autres--> {if $group.group_type =='color'} <span class="lacouleur">Noir</span> {/if} <!--fin de la modification--> {assign var="groupName" value="group_$id_attribute_group"} <div class="attribute_list"> {if ($group.group_type == 'select')} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print"> {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:'html':'UTF-8'}">{$group_attribute|escape:'html':'UTF-8'}</option> {/foreach} </select> {elseif ($group.group_type == 'color')} <ul id="color_to_pick_list" class="clearfix"> {assign var="default_colorpicker" value=""} {foreach from=$group.attributes key=id_attribute item=group_attribute} {assign var='img_color_exists' value=file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')} <li{if $group.default == $id_attribute} class="selected"{/if}> <a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" id="color_{$id_attribute|intval}" name="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}"{if !$img_color_exists && isset($colors.$id_attribute.value) && $colors.$id_attribute.value} style="background:{$colors.$id_attribute.value|escape:'html':'UTF-8'};"{/if} title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}"> {if $img_color_exists} <img src="{$img_col_dir}{$id_attribute|intval}.jpg" alt="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" width="50" height="50" /> <br /> {/if} </a> </li> {if ($group.default == $id_attribute)} {$default_colorpicker = $id_attribute} {/if} {/foreach} Link to comment Share on other sites More sharing options...
coeos.pro Posted March 10, 2015 Share Posted March 10, 2015 (edited) Salut, ce n'est pas du php mais du smarty, la fonction foreach est expliquée en détail ici : http://www.smarty.net/docsv2/fr/language.function.foreach.tpl#foreach.property.first remplace donc {if $group.group_type =='color'} <span class="lacouleur">Noir</span> {/if} par {if $group.group_type eq 'color' && $smarty.foreach.foo.first}<span class="lacouleur">Noir</span>{/if} Pour info on utilise souvent eq au lieu de == et neq au lieu de != (voici un résumé de ce que l'on peut trouver aussi : http://www.smarty.net/docs/en/language.function.if.tpl ) et change la première ligne {foreach from=$groups key=id_attribute_group item=group} par {foreach from=$groups key=id_attribute_group item=group name=foo} Edited March 10, 2015 by coeos.pro (see edit history) 1 Link to comment Share on other sites More sharing options...
webspider Posted March 10, 2015 Author Share Posted March 10, 2015 Salut , merci pour tes reponse c'est impec ! sauf que maintenant que ca marche un autre probleme me saute au yeux quand je choisis une couleur sur le second color picker , cela modifie egalement la variable qui affiche le choix de coloris du client sur le premier color picker . j'ai rajouté dans product.js , au debut de la fonction colorPickerClick(elt) ceci : var myColor = $(elt).attr('title');$('span.lacouleur').html(myColor); du coup est-ce possible de faire s'afficher la couleur selectionnée independament sur le color picker 1 / 2 / 3 etc etc... ? vu mon niveau de debutant j'avoue ne pas savoir du tout par quoi commencer ! d'avance merci ! 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