I'm modifying the modal tpl to display a message that shows the difference that is left to have a free shipping.
I know how to display the message but I can't show the variable I've created in the text. And I've doubts that I'm creating well the variable.
I have to show the difference between the subtotal and 150 €
I've tried:
<div class="col-md-7">
<div class="cart-content pt-3">
{if $cart.products_count > 1}
<p class="cart-products-count">
{l s='There are %products_count% items in your cart.' sprintf=['%products_count%' => $cart.products_count] d='Shop.Theme.Checkout'}
</p>
{else}
<p class="cart-products-count">
{l s='There is %product_count% item in your cart.' sprintf=['%product_count%' =>$cart.products_count] d='Shop.Theme.Checkout'}
</p>
{/if}
<p>
<strong>{l s='Total products:' d='Shop.Theme.Checkout'}</strong> {$cart.subtotals.products.value}
</p>
{hook h='displayCartAjaxInfo'}
<div class="cart-content-btn">
{l s='Proceed to checkout' d='Shop.Theme.Actions'}
<button type="button" class="btn btn-secondary btn-block" data-dismiss="modal">{l s='Continue shopping' d='Shop.Theme.Actions'}</button>
</div>
<div class="remember-vip">
<br>
{assign var="diferencia" value=$cart.subtotals.products.value-150.00}
Le faltan $diferencia para disponer de envío gratuito.
</div>
</div>
</div>
This is how the code looks now:
Current result
I think I am on the right track but not working as I hoped; I want to wrap every two items with a div wrapper which breaks things onto new lines every 2 items but not really working how I have done. I am rather new to Smarty.
TPL
<div class="row-fluid">
<div class="span12">
{foreach from=$cart.products item="pp" key="pp_key" name="loop"}
{if $pp.extra.package_info.p_id == $key && !$pp.extra.package_info.hidden}
<div class="span6">
<p>{$pp.product_id|fn_specific_development_get_category}<br>
{$pp.product}
</p>
{if $pp.product_options}
{include file="common/options_info.tpl" product_options=$cart_products.$pp_key.product_options}
{else}
-
{/if}
<p class="center">{$pp.amount / $product.amount}</p>
{if $product.price_rule == "S"}
<p>{include file="common/price.tpl" value=$pp.extra.package_info.f_price class="none"}</p>
<p>{include file="common/price.tpl" value=$pp.extra.package_info.f_price*$pp.amount class="none"}</p>
{/if}
</div>
{/if}
{if $pp.extra.package_info.p_id == $key}
<input type="hidden" name="cart_products[{$key}][package][{$pp.extra.package_info.table_key}][{$pp.extra.package_info.inc}][product_id]" value="{$pp.product_id}" />
<input type="hidden" name="cart_products[{$key}][package][{$pp.extra.package_info.table_key}][{$pp.extra.package_info.inc}][amount]" value="{$pp.amount / $product.amount}" />
{if $pp.product_options}
{foreach from=$pp.product_options key="opt_id" item="opt_value"}
<input type="hidden" name="cart_products[{$key}][package][{$pp.extra.package_info.table_key}][{$pp.extra.package_info.inc}][product_options][{$opt_id}]" value="{$opt_value}" />
{/foreach}
{/if}
{/if}
{if $smarty.foreach.loop.index is div by 2}
</div><div class="row-fluid">
{/if}
{/foreach}
</div>
</div>
It should end up something like....
<div class="row-fluid">
<div class="span6">....</div>
<div class="span6">....</div>
</div>
<div class="row-fluid">
<div class="span6">....</div>
<div class="span6">....</div>
</div>
<div class="row-fluid">
<div class="span6">....</div>
</div>
For anyone else wanting to know here was my solution:
Used a iteration and strip to wrap content loop
{foreach from=$cart.products item="pp" key="pp_key" name="loop"}
{strip}
{if $pp.extra.package_info.p_id == $key && !$pp.extra.package_info.hidden}
<div class="span6">
<p>{$pp.product_id|fn_specific_development_get_category}<br>
{$pp.product}
</p>
{if $pp.product_options}
{include file="common/options_info.tpl" product_options=$cart_products.$pp_key.product_options}
{else}
-
{/if}
<p class="center">{$pp.amount / $product.amount}</p>
{if $product.price_rule == "S"}
<p>{include file="common/price.tpl" value=$pp.extra.package_info.f_price class="none"}</p>
<p>{include file="common/price.tpl" value=$pp.extra.package_info.f_price*$pp.amount class="none"}</p>
{/if}
</div>
{/if}
{if $pp.extra.package_info.p_id == $key}
<input type="hidden" name="cart_products[{$key}][package][{$pp.extra.package_info.table_key}][{$pp.extra.package_info.inc}][product_id]" value="{$pp.product_id}" />
<input type="hidden" name="cart_products[{$key}][package][{$pp.extra.package_info.table_key}][{$pp.extra.package_info.inc}][amount]" value="{$pp.amount / $product.amount}" />
{if $pp.product_options}
{foreach from=$pp.product_options key="opt_id" item="opt_value"}
<input type="hidden" name="cart_products[{$key}][package][{$pp.extra.package_info.table_key}][{$pp.extra.package_info.inc}][product_options][{$opt_id}]" value="{$opt_value}" />
{/foreach}
{/if}
{/if}
{/strip}
{if $smarty.foreach.loop.last or $smarty.foreach.loop.iteration is div by 2}
</div><div class="row-fluid">
{/if}
{/foreach}
I have Prestashop 1.6 and using the default theme called default-bootstrap.
In mobile devices, the radio buttons when selecting product attributes (for example size/colour etc) on product page do not work. The problem occurs only on mobile devices and only with this theme (with another theme they work).
When tapping the product attribute, the URL bar is changed, but the selection of attribute doesn't change (and if added to cart, the wrong selection remains).
For example in this page: http://clubvapea.es/gb/e-liquids/182-full-month-pack-4-x-mix-of-avoria-12ml-german-e-liquid-valeo.html
This is added to the end of the URL: #/90-avoria-nicotina9mg
But in mobile devices nothing happens.
What is the problem?
Thank you for your help!
My themes/default-bootstrap/product.tpl
SKIPPED TO FIRST PLACE WHERE ATTRIBUTE IS SHOWN AS THE CODE IS TOO LONG
<!-- pb-right-column-->
<div class="pb-right-column col-xs-12 col-sm-4 col-md-3">
{if ($product->show_price && !isset($restricted_country_mode)) || isset($groups) || $product->reference || (isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS)}
<!-- add to cart form-->
<form id="buy_block"{if $PS_CATALOG_MODE && !isset($groups) && $product->quantity > 0} class="hidden"{/if} action="{$link->getPageLink('cart')|escape:'html':'UTF-8'}" method="post">
<!-- hidden datas -->
<p class="hidden">
<input type="hidden" name="token" value="{$static_token}" />
<input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" />
<input type="hidden" name="add" value="1" />
<input type="hidden" name="id_product_attribute" id="idCombination" value="" />
</p>
<div class="box-info-product">
<div class="content_prices clearfix">
{if $product->show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}
<!-- prices -->
<div>
<p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">{strip}
{if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
{if $priceDisplay >= 0 && $priceDisplay <= 2}
<span id="our_price_display" class="price" itemprop="price">{convertPrice price=$productPrice}</span>
{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
{if $priceDisplay == 1} {l s='tax excl.'}{else} {l s='tax incl.'}{/if}
{/if}
<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
{hook h="displayProductPriceBlock" product=$product type="price"}
{/if}
{/strip}</p>
<p id="reduction_percent" {if !$product->specificPrice || $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}>{strip}
<span id="reduction_percent_display">
{if $product->specificPrice && $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}%{/if}
</span>
{/strip}</p>
<p id="reduction_amount" {if !$product->specificPrice || $product->specificPrice.reduction_type != 'amount' || $product->specificPrice.reduction|floatval ==0} style="display:none"{/if}>{strip}
<span id="reduction_amount_display">
{if $product->specificPrice && $product->specificPrice.reduction_type == 'amount' && $product->specificPrice.reduction|floatval !=0}
-{convertPrice price=$productPriceWithoutReduction-$productPrice|floatval}
{/if}
</span>
{/strip}</p>
<p id="old_price"{if (!$product->specificPrice || !$product->specificPrice.reduction) && $group_reduction == 0} class="hidden"{/if}>{strip}
{if $priceDisplay >= 0 && $priceDisplay <= 2}
{hook h="displayProductPriceBlock" product=$product type="old_price"}
<span id="old_price_display">{if $productPriceWithoutReduction > $productPrice}<span class="price">{convertPrice price=$productPriceWithoutReduction}</span>{if $tax_enabled && $display_tax_label == 1} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}{/if}{/if}</span>
{/if}
{/strip}</p>
{if $priceDisplay == 2}
<br />
<span id="pretaxe_price">{strip}
<span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'}
{/strip}</span>
{/if}
</div> <!-- end prices -->
{if $packItems|#count && $productPrice < $product->getNoPackPrice()}
<p class="pack_price">{l s='Instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p>
{/if}
{if $product->ecotax != 0}
<p class="price-ecotax">{l s='Including'} <span id="ecotax_price_display">{if $priceDisplay == 2}{$ecotax_tax_exc|convertAndFormatPrice}{else}{$ecotax_tax_inc|convertAndFormatPrice}{/if}</span> {l s='for ecotax'}
{if $product->specificPrice && $product->specificPrice.reduction}
<br />{l s='(not impacted by the discount)'}
{/if}
</p>
{/if}
{if !empty($product->unity) && $product->unit_price_ratio > 0.000000}
{math equation="pprice / punit_price" pprice=$productPrice punit_price=$product->unit_price_ratio assign=unit_price}
<p class="unit-price"><span id="unit_price_display">{convertPrice price=$unit_price}</span> {l s='per'} {$product->unity|escape:'html':'UTF-8'}</p>
{hook h="displayProductPriceBlock" product=$product type="unit_price"}
{/if}
{/if} {*close if for show price*}
{hook h="displayProductPriceBlock" product=$product type="weight"}
<div class="clear"></div>
</div> <!-- end content_prices -->
<div class="product_attributes clearfix">
<!-- quantity wanted -->
{if !$PS_CATALOG_MODE}
<p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
<label>{l s='Quantity'}</label>
<input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" />
<a href="#" data-field-qty="qty" class="btn btn-default button-minus product_quantity_down">
<span><i class="icon-minus"></i></span>
</a>
<a href="#" data-field-qty="qty" class="btn btn-default button-plus product_quantity_up">
<span><i class="icon-plus"></i></span>
</a>
<span class="clearfix"></span>
</p>
{/if}
<!-- minimal quantity wanted -->
<p id="minimal_quantity_wanted_p"{if $product->minimal_quantity <= 1 || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
{l s='The minimum purchase order quantity for the product is'} <b id="minimal_quantity_label">{$product->minimal_quantity}</b>
</p>
{if isset($groups)}
<!-- attributes -->
<div id="attributes">
<div class="clearfix"></div>
{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>
{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="20" height="20" />
{/if}
</a>
</li>
{if ($group.default == $id_attribute)}
{$default_colorpicker = $id_attribute}
{/if}
{/foreach}
</ul>
<input type="hidden" class="color_pick_hidden" name="{$groupName|escape:'html':'UTF-8'}" value="{$default_colorpicker|intval}" />
{elseif ($group.group_type == 'radio')}
<ul>
{foreach from=$group.attributes key=id_attribute item=group_attribute}
<li>
<input type="radio" class="attribute_radio" name="{$groupName|escape:'html':'UTF-8'}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} />
<span>{$group_attribute|escape:'html':'UTF-8'}</span>
</li>
{/foreach}
</ul>
{/if}
</div> <!-- end attribute_list -->
</fieldset>
{/if}
{/foreach}
</div> <!-- end attributes -->
{/if}
</div> <!-- end product_attributes -->
<div class="box-cart-bottom">
<div{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || (isset($restricted_country_mode) && $restricted_country_mode) || $PS_CATALOG_MODE} class="unvisible"{/if}>
<p id="add_to_cart" class="buttons_bottom_block no-print">
<button type="submit" name="Submit" class="exclusive">
<span>{if $content_only && (isset($product->customization_required) && $product->customization_required)}{l s='Customize'}{else}{l s='Add to cart'}{/if}</span>
</button>
</p>
</div>
{if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}
</div> <!-- end box-cart-bottom -->
</div> <!-- end box-info-product -->
</form>
{/if}
</div> <!-- end pb-right-column-->
</div> <!-- end primary_block -->
{if !$content_only}
{if (isset($quantity_discounts) && count($quantity_discounts) > 0)}
<!-- quantity discount -->
<section class="page-product-box">
<h3 class="page-product-heading">{l s='Volume discounts'}</h3>
<div id="quantityDiscount">
<table class="std table-product-discounts">
<thead>
<tr>
<th>{l s='Quantity'}</th>
<th>{if $display_discount_price}{l s='Price'}{else}{l s='Discount'}{/if}</th>
<th>{l s='You Save'}</th>
</tr>
</thead>
<tbody>
{foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'}
<tr id="quantityDiscount_{$quantity_discount.id_product_attribute}" class="quantityDiscount_{$quantity_discount.id_product_attribute}" data-discount-type="{$quantity_discount.reduction_type}" data-discount="{$quantity_discount.real_value|floatval}" data-discount-quantity="{$quantity_discount.quantity|intval}">
<td>
{$quantity_discount.quantity|intval}
</td>
<td>
{if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'}
{if $display_discount_price}
{convertPrice price=$productPrice-$quantity_discount.real_value|floatval}
{else}
{convertPrice price=$quantity_discount.real_value|floatval}
{/if}
{else}
{if $display_discount_price}
{convertPrice price = $productPrice-($productPrice*$quantity_discount.reduction)|floatval}
{else}
{$quantity_discount.real_value|floatval}%
{/if}
{/if}
</td>
<td>
<span>{l s='Up to'}</span>
{if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'}
{$discountPrice=$productPrice-$quantity_discount.real_value|floatval}
{else}
{$discountPrice=$productPrice-($productPrice*$quantity_discount.reduction)|floatval}
{/if}
{$discountPrice=$discountPrice*$quantity_discount.quantity}
{$qtyProductPrice = $productPrice*$quantity_discount.quantity}
{convertPrice price=$qtyProductPrice-$discountPrice}
</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
</section>
{/if}
{if isset($features) && $features}
<!-- Data sheet -->
<section class="page-product-box">
<h3 class="page-product-heading">{l s='Data sheet'}</h3>
<table class="table-data-sheet">
{foreach from=$features item=feature}
<tr class="{cycle values="odd,even"}">
{if isset($feature.value)}
<td>{$feature.name|escape:'html':'UTF-8'}</td>
<td>{$feature.value|escape:'html':'UTF-8'}</td>
{/if}
</tr>
{/foreach}
</table>
</section>
<!--end Data sheet -->
{/if}
{if $product->description}
<!-- More info -->
<section class="page-product-box">
<h3 class="page-product-heading">{l s='More info'}</h3>{/if}
{if isset($product) && $product->description}
<!-- full description -->
<div class="rte">{$product->description}</div>
</section>
<!--end More info -->
{/if}
{if isset($packItems) && $packItems|#count > 0}
<section id="blockpack">
<h3 class="page-product-heading">{l s='Pack content'}</h3>
{include file="$tpl_dir./product-list.tpl" products=$packItems}
</section>
{/if}
<!--HOOK_PRODUCT_TAB -->
<section class="page-product-box">
{$HOOK_PRODUCT_TAB}
{if isset($HOOK_PRODUCT_TAB_CONTENT) && $HOOK_PRODUCT_TAB_CONTENT}{$HOOK_PRODUCT_TAB_CONTENT}{/if}
</section>
<!--end HOOK_PRODUCT_TAB -->
{if isset($accessories) && $accessories}
<!--Accessories -->
<section class="page-product-box">
<h3 class="page-product-heading">{l s='Accessories'}</h3>
<div class="block products_block accessories-block clearfix">
<div class="block_content">
<ul id="bxslider" class="bxslider clearfix">
{foreach from=$accessories item=accessory name=accessories_list}
{if ($accessory.allow_oosp || $accessory.quantity_all_versions > 0 || $accessory.quantity > 0) && $accessory.available_for_order && !isset($restricted_country_mode)}
{assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}
<li class="item product-box ajax_block_product{if $smarty.foreach.accessories_list.first} first_item{elseif $smarty.foreach.accessories_list.last} last_item{else} item{/if} product_accessories_description">
<div class="product_desc">
<a href="{$accessoryLink|escape:'html':'UTF-8'}" title="{$accessory.legend|escape:'html':'UTF-8'}" class="product-image product_image">
<img class="lazyOwl" src="{$link->getImageLink($accessory.link_rewrite, $accessory.id_image, 'home_default')|escape:'html':'UTF-8'}" alt="{$accessory.legend|escape:'html':'UTF-8'}" width="{$homeSize.width}" height="{$homeSize.height}"/>
</a>
<div class="block_description">
<a href="{$accessoryLink|escape:'html':'UTF-8'}" title="{l s='More'}" class="product_description">
{$accessory.description_short|strip_tags|truncate:25:'...'}
</a>
</div>
</div>
<div class="s_title_block">
<h5 itemprop="name" class="product-name">
<a href="{$accessoryLink|escape:'html':'UTF-8'}">
{$accessory.name|truncate:20:'...':true|escape:'html':'UTF-8'}
</a>
</h5>
{if $accessory.show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}
<span class="price">
{if $priceDisplay != 1}
{displayWtPrice p=$accessory.price}{else}{displayWtPrice p=$accessory.price_tax_exc}
{/if}
</span>
{/if}
</div>
<div class="clearfix" style="margin-top:5px">
{if !$PS_CATALOG_MODE && ($accessory.allow_oosp || $accessory.quantity > 0)}
<div class="no-print">
<a class="exclusive button ajax_add_to_cart_button" href="{$link->getPageLink('cart', true, NULL, "qty=1&id_product={$accessory.id_product|intval}&token={$static_token}&add")|escape:'html':'UTF-8'}" data-id-product="{$accessory.id_product|intval}" title="{l s='Add to cart'}">
<span>{l s='Add to cart'}</span>
</a>
</div>
{/if}
</div>
</li>
{/if}
{/foreach}
</ul>
</div>
</div>
</section>
<!--end Accessories -->
{/if}
{if isset($HOOK_PRODUCT_FOOTER) && $HOOK_PRODUCT_FOOTER}{$HOOK_PRODUCT_FOOTER}{/if}
<!-- description & features -->
{if (isset($product) && $product->description) || (isset($features) && $features) || (isset($accessories) && $accessories) || (isset($HOOK_PRODUCT_TAB) && $HOOK_PRODUCT_TAB) || (isset($attachments) && $attachments) || isset($product) && $product->customizable}
{if isset($attachments) && $attachments}
<!--Download -->
<section class="page-product-box">
<h3 class="page-product-heading">{l s='Download'}</h3>
{foreach from=$attachments item=attachment name=attachements}
{if $smarty.foreach.attachements.iteration %3 == 1}<div class="row">{/if}
<div class="col-lg-4">
<h4>{$attachment.name|escape:'html':'UTF-8'}</h4>
<p class="text-muted">{$attachment.description|escape:'html':'UTF-8'}</p>
<a class="btn btn-default btn-block" href="{$link->getPageLink('attachment', true, NULL, "id_attachment={$attachment.id_attachment}")|escape:'html':'UTF-8'}">
<i class="icon-download"></i>
{l s="Download"} ({Tools::formatBytes($attachment.file_size, 2)})
</a>
<hr />
</div>
{if $smarty.foreach.attachements.iteration %3 == 0 || $smarty.foreach.attachements.last}</div>{/if}
{/foreach}
</section>
<!--end Download -->
{/if}
{if isset($product) && $product->customizable}
<!--Customization -->
<section class="page-product-box">
<h3 class="page-product-heading">{l s='Product customization'}</h3>
<!-- Customizable products -->
<form method="post" action="{$customizationFormTarget}" enctype="multipart/form-data" id="customizationForm" class="clearfix">
<p class="infoCustomizable">
{l s='After saving your customized product, remember to add it to your cart.'}
{if $product->uploadable_files}
<br />
{l s='Allowed file formats are: GIF, JPG, PNG'}{/if}
</p>
{if $product->uploadable_files|intval}
<div class="customizableProductsFile">
<h5 class="product-heading-h5">{l s='Pictures'}</h5>
<ul id="uploadable_files" class="clearfix">
{counter start=0 assign='customizationField'}
{foreach from=$customizationFields item='field' name='customizationFields'}
{if $field.type == 0}
<li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
{if isset($pictures.$key)}
<div class="customizationUploadBrowse">
<img src="{$pic_dir}{$pictures.$key}_small" alt="" />
<a href="{$link->getProductDeletePictureLink($product, $field.id_customization_field)|escape:'html':'UTF-8'}" title="{l s='Delete'}" >
<img src="{$img_dir}icon/delete.gif" alt="{l s='Delete'}" class="customization_delete_icon" width="11" height="13" />
</a>
</div>
{/if}
<div class="customizationUploadBrowse form-group">
<label class="customizationUploadBrowseDescription">
{if !empty($field.name)}
{$field.name}
{else}
{l s='Please select an image file from your computer'}
{/if}
{if $field.required}<sup>*</sup>{/if}
</label>
<input type="file" name="file{$field.id_customization_field}" id="img{$customizationField}" class="form-control customization_block_input {if isset($pictures.$key)}filled{/if}" />
</div>
</li>
{counter}
{/if}
{/foreach}
</ul>
</div>
{/if}
{if $product->text_fields|intval}
<div class="customizableProductsText">
<h5 class="product-heading-h5">{l s='Text'}</h5>
<ul id="text_fields">
{counter start=0 assign='customizationField'}
{foreach from=$customizationFields item='field' name='customizationFields'}
{if $field.type == 1}
<li class="customizationUploadLine{if $field.required} required{/if}">
<label for ="textField{$customizationField}">
{assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
{if !empty($field.name)}
{$field.name}
{/if}
{if $field.required}<sup>*</sup>{/if}
</label>
<textarea name="textField{$field.id_customization_field}" class="form-control customization_block_input" id="textField{$customizationField}" rows="3" cols="20">{strip}
{if isset($textFields.$key)}
{$textFields.$key|stripslashes}
{/if}
{/strip}</textarea>
</li>
{counter}
{/if}
{/foreach}
</ul>
</div>
{/if}
<p id="customizedDatas">
<input type="hidden" name="quantityBackup" id="quantityBackup" value="" />
<input type="hidden" name="submitCustomizedDatas" value="1" />
<button class="button btn btn-default button button-small" name="saveCustomization">
<span>{l s='Save'}</span>
</button>
<span id="ajax-loader" class="unvisible">
<img src="{$img_ps_dir}loader.gif" alt="loader" />
</span>
</p>
</form>
<p class="clear required"><sup>*</sup> {l s='required fields'}</p>
</section>
<!--end Customization -->
{/if}
{/if}
{/if}
ALSO SKIPPED SOME CODE FROM THE END AS IT IS TOO LONG
Radio button works. The problem in styles. More precisely - in the used classes.
Selector "div.radio span" should be replaced by "div.radio div.radio span" in the file themes\THEME\css\autoload\uniform.default.css in lines 12, 194 and 196.
12:
div.selector, div.selector span, div.checker span, div.radio span, div.uploader, div.uploader span.action, div.button, div.button span {
to
div.selector, div.selector span, div.checker span, div.radio div.radio span, div.uploader, div.uploader span.action, div.button, div.button span {
194:
div.radio span.checked {
background-position: -13px -243px; }
to
div.radio div.radio span.checked {
196:
div.radio input {
opacity: 0;
filter: alpha(opacity=0);
-moz-opacity: 0;
border: none;
background: none;
display: -moz-inline-box;
display: inline-block;
*display: inline;
zoom: 1;
text-align: center; }
to
div.radio div.radio input {
i=0. I would like to make tab1, tab2,tab3, and so on inside foreach and also if i=1 then echo class="active" at first < li >. How to make it?
{elseif $complexField == "KeySkills"}
<ul>
{foreach from=$complexElements key="complexElementKey" item="complexElementItem"}
{foreach from=$form_fields item=form_field}
{if $form_field.caption == "Key personal skill"}
<li
(if i=1 then echo class="active")
><a href="#
tab1
" data-toggle="tab">{display property=$form_field.id complexParent=$complexField complexStep=$complexElementKey} </a></li>
{/if}
{/foreach}
{/foreach}
</ul>
<div class="tab-content" style="min-height:470px;">
{foreach from=$complexElements key="complexElementKey" item="complexElementItem"}
{if $form_field.caption == "Percentaged Key Skill" || $form_field.caption == "Skill Detail"}
<div class="tab-pane fade active in" id="
tab1">
<div class="item_top">
<p> {display property=$form_fields.SkillDetail.id complexParent=$complexField complexStep=$complexElementKey} </p>
<div class="donutchart2" data-percent="{display property=$form_fields.PercentKeySkill.id complexParent=$complexField complexStep=$complexElementKey}"></div>
</div>
</div>
{/if}
{/foreach}
</div>
Here is HTML source code
This answer is based you your title because your HTML isn't readable
{section name=foo loop=5}
{$smarty.section.foo.iteration}
{/section}
complexElementKey inside key of {foreach from=$complexElements key="complexElementKey" item="complexElementItem"} will be loop 1,2,3.
<a href="#tab{$complexElementKey}" data-toggle="tab"> will be <a href="#tab1" data-toggle="tab">blablabla
<a href="#tab2" data-toggle="tab"> bsdakdkas
<a href="#tab3" data-toggle="tab">gdfgdfg
I got a social network share button from add to any. I want to place it under all my products.
I edited product.tpl in my theme and add addToAny code given by them. But its not showing there.
<!-- number of item in stock -->
{if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
<p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
<span id="quantityAvailable">{$product->quantity|intval}</span>
<span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}</span>
<span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}</span>
</p>
<div>
//Adding my addToAny share code here
</div>
{/if}
<!-- Out of stock hook -->
{if !$allow_oosp}
<p id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
{$HOOK_PRODUCT_OOS}
</p>
{/if}
In admin panel
goto --> preference --> performance --> select Force compile to yes. Smarty wont compile until you set it to yes.