Jump to content

Grouper les attributs produit selon $id_attribute_group


Recommended Posts

Bonjour,

Je travail actuellement sur le site d'un opticien qui souhaite vendre en ligne principalement des lentilles.
Pour un produit il y a des attributs concernant l'oeil gauche et des attributs pour l'oeil droit.

cette image montre ce que j'ai actuellement sur le site :
post-793503-0-97238100-1399459898_thumb.png

et voici ce que je souhaite obtenir :

post-793503-0-94928400-1399459901_thumb.png

Pour ça j'ai édité le code de product.tpl :

Mon problème c'est que je ne maîtrise pas SMARTY et que malgré la doc, je suis bloqué.
Dans mon code le problème c'est que je ne sais pas comment utiliser la variable $id_attribute_group en dehors du {foreach}.

j'ai mis une condition pour assigner une valeure par défaut à la variable $id_attribute_group en attendant de trouver une solution pour ne pas avoir une mise en page qui saute.

Merci pour le coup de main.

{if isset($groups)}
            <!-- attributes -->
            <h3 class="StepProduct">Etape 1 : Choisir vos paramètres</h3>
            <p class="OeilGaucheTxt">Oeil Gauche</p>
            <p class="OeilDroitTxt">Oeil Droit</p>
            <div id="attributes">
                <div class="clear"></div>
                <ul class="attribute-ul">
					{if !isset($id_attribute_group)}
						{assign var='id_attribute_group' value=$id_attribute_group|default:'1'}
					{/if}
					
						{if isset($id_attribute_group) AND (($id_attribute_group == 1) OR
							($id_attribute_group == 2) OR
							($id_attribute_group == 3) OR
							($id_attribute_group == 4) OR
							($id_attribute_group == 5) OR
							($id_attribute_group == 6))
						}
							<div class="prdAlignLeft">
	
						{elseif isset($id_attribute_group) AND (
							($id_attribute_group == 7) OR
							($id_attribute_group == 8) OR
							($id_attribute_group == 9) OR
							($id_attribute_group == 10) OR
							($id_attribute_group == 11) OR
							($id_attribute_group == 12))
						}
							<div class="prdAlignRight">
	
						{/if}

							
					{foreach from=$groups key=id_attribute_group item=group}
						{if $group.attributes|@count}

									<li>
										<fieldset class="attribute_fieldset">
										<label class="attribute_label" for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} : </label>
									</li>
									
							{assign var="groupName" value="group_$id_attribute_group"}
							
							{if ($group.group_type == 'select')}
									<li>
										<select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="attribute_select" onchange="findCombination();getProductAttribute();">
										{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>
									</li>
							{elseif ($group.group_type == 'color')}
									<li>
										<ul id="color_to_pick_list" class="clearfix">
											{assign var="default_colorpicker" value=""}
											{foreach from=$group.attributes key=id_attribute item=group_attribute}
											<li{if $group.default == $id_attribute} class="selected"{/if}>
											<a id="color_{$id_attribute|intval}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}" style="background: {$colors.$id_attribute.value};" title="{$colors.$id_attribute.name}" onclick="colorPickerClick(this);getProductAttribute();">
											{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
											<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" /><br />
											{/if}
											</a>
											</li>
											{if ($group.default == $id_attribute)}
											{$default_colorpicker = $id_attribute}
											{/if}
											{/foreach}
										</ul>
										<input type="hidden" class="color_pick_hidden" name="{$groupName}" value="{$default_colorpicker}" />
									</li>
							{elseif ($group.group_type == 'radio')}
									<li>
										<ul>
											{foreach from=$group.attributes key=id_attribute item=group_attribute}
											<li>
												<input type="radio" class="attribute_radio" name="{$groupName}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} onclick="findCombination();getProductAttribute();" />
												<span>{$group_attribute|escape:'htmlall':'UTF-8'}</span>
											</li>
											{/foreach}
										</ul>
									</li>
							{/if}
	
										</fieldset>
								
						{/if}		
					{/foreach}
					</div>
				</ul>
            <div class="clearfix"></div>
            </div>
            {/if}
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...