Jump to content

Petite question php sur fonction "IF" et product.tpl


Recommended Posts

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

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 by coeos.pro (see edit history)
  • Like 1
Link to comment
Share on other sites

Salut , merci pour tes reponse c'est impec ! sauf que maintenant que ca marche un autre probleme me saute au yeux  :D 

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

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...