275 lines
12 KiB
Smarty
275 lines
12 KiB
Smarty
{if isset($dimension_data)}
|
|
{foreach from=$dimension_data item="ddata"}
|
|
{foreach from=$customization_added_to_cart item="cdata"}
|
|
{if $cdata.0.id_customization == $product.id_customization}
|
|
{if $ddata.0.displayquantity == 'decimalok'}
|
|
{$dimension_text = $cdata.0.value}
|
|
{$dimension_quantity = $cdata.0.total_dimension}
|
|
{$dimension_unit = $cdata.0.unittype_module}
|
|
{$product_price = $product.price|regex_replace:'/[^0-9,.]+/':''}
|
|
{$currency = $product.price|regex_replace:'/[A-Za-z0-9.,]+/':''}
|
|
{$unit_price = $product_price|floatval / $dimension_quantity|floatval}
|
|
{/if}
|
|
{/if}
|
|
{/foreach}
|
|
{/foreach}
|
|
{/if}
|
|
|
|
<div class="product-line-grid">
|
|
<!-- product left content: image-->
|
|
<div class="product-line-grid-thumb">
|
|
<span class="product-image media-middle">
|
|
<img src="{$product.cover.bySize.cart_default.url}" alt="{$product.name|escape:'quotes'}">
|
|
</span>
|
|
</div>
|
|
|
|
<div class="product-line-grid-body">
|
|
|
|
<!-- first line -->
|
|
<div class="product-line-name">
|
|
|
|
|
|
|
|
<div class="product-line-info">
|
|
<a class="product-name" href="{$product.url}" data-id_customization="{$product.id_customization|intval}">{$product.name}</a>
|
|
</div>
|
|
|
|
{foreach from=$product.attributes key="attribute" item="value"}
|
|
<p class="product-line-info atts">
|
|
<span class="label">{$attribute}:</span>
|
|
<span class="value">{$value}</span>
|
|
</p>
|
|
{/foreach}
|
|
|
|
{* {if $product.customizations|count}
|
|
<br>
|
|
{block name='cart_detailed_product_line_customization'}
|
|
{foreach from=$product.customizations item="customization"}
|
|
<a href="#" data-toggle="modal" data-target="#product-customizations-modal-{$customization.id_customization}">{l s='Product customization' d='Shop.Theme.Catalog'}</a>
|
|
<div class="modal fade customization-modal" id="product-customizations-modal-{$customization.id_customization}" tabindex="-1" role="dialog" aria-hidden="true">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<h4 class="modal-title">{l s='Product customization' d='Shop.Theme.Catalog'}</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="power" style="width: 500px; height: 300px; background: url({$product.cover.bySize.cart_view.url}) 500px 300px; margin: auto; background-position: 0px 0px;"></div>
|
|
{foreach from=$customization.fields item="field"}
|
|
<div class="product-customization-line row">
|
|
<div class="col-sm-3 col-xs-4 label">
|
|
{$field.label}
|
|
</div>
|
|
<div class="col-sm-9 col-xs-8 value">
|
|
{if $field.type == 'text'}
|
|
{if (int)$field.id_module}
|
|
{$field.text nofilter}
|
|
{else}
|
|
{$field.text}
|
|
{/if}
|
|
{elseif $field.type == 'image'}
|
|
<img src="{$field.image.small.url}">
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
{/foreach}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{/foreach}
|
|
{/block}
|
|
{/if} *}
|
|
|
|
<div class="cart-line-product-actions">
|
|
<a
|
|
class = "remove-from-cart remove"
|
|
rel = "nofollow"
|
|
href = "{$product.remove_from_cart_url}"
|
|
data-link-action = "delete-from-cart"
|
|
data-id-product = "{$product.id_product|escape:'javascript'}"
|
|
data-id-product-attribute = "{$product.id_product_attribute|escape:'javascript'}"
|
|
data-id-customization = "{$product.id_customization|escape:'javascript'}"
|
|
>
|
|
{if !isset($product.is_gift) || !$product.is_gift}
|
|
<i><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></i>
|
|
{/if}
|
|
</a>
|
|
|
|
{block name='hook_cart_extra_product_actions'}
|
|
{hook h='displayCartExtraProductActions' product=$product}
|
|
{/block}
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- second line -->
|
|
|
|
<div class="product-line-prices">
|
|
|
|
<div class="product-line-grid-price">
|
|
<div class="product-line-info product-price h5 {if $product.has_discount}has-discount{/if}">
|
|
<div class="current-price">
|
|
<span class="price">{$product.price}</span>
|
|
{if $product.has_discount}
|
|
<span class="regular-price old-price">{$product.regular_price}</span>
|
|
{if $product.discount_type === 'percentage'}
|
|
<span class="discount discount-percentage">
|
|
-{$product.discount_percentage_absolute}
|
|
</span>
|
|
{else}
|
|
<span class="discount discount-amount">
|
|
-{$product.discount_to_display}
|
|
</span>
|
|
{/if}
|
|
{/if}
|
|
{if $product.unit_price_full}
|
|
{if $dimension_text}
|
|
<div class="unit-price-cart">{$currency}{$unit_price|string_format:"%.2f"} per {$dimension_unit|escape:'htmlall':'UTF-8'}</div>
|
|
{else}
|
|
<div class="unit-price-cart">{$product.unit_price_full}</div>
|
|
{/if}
|
|
{* <div class="unit-price-cart">{$product.unit_price_full}</div> *}
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="product-line-grid-right product-line-actions">
|
|
<div class="qty">
|
|
{if isset($product.is_gift) && $product.is_gift}
|
|
<span class="gift-quantity">{$product.quantity}</span>
|
|
{else}
|
|
<input
|
|
class="js-cart-line-product-quantity"
|
|
data-down-url="{$product.down_quantity_url}"
|
|
data-up-url="{$product.up_quantity_url}"
|
|
data-update-url="{$product.update_quantity_url}"
|
|
data-product-id="{$product.id_product}"
|
|
unique-product-id="{$product.id_product|escape:'javascript':'UTF-8'}-{$product.id_product_attribute|escape:'javascript':'UTF-8'}-{$product.id_customization|escape:'javascript':'UTF-8'}"
|
|
type="text"
|
|
value="{if isset($dimension_text)}{$dimension_quantity|escape:'htmlall':'UTF-8'}{else}{$product.quantity}{/if}"
|
|
name="product-quantity-spin"
|
|
min="{$product.minimal_quantity}"
|
|
/>
|
|
{if isset($dimension_text)}
|
|
<div class="input-group-append" style="height: 40px;line-height: 59px;float:right;">
|
|
<span class="input-group-text small-text text-muted">{$dimension_unit|escape:'htmlall':'UTF-8'}</span>
|
|
</div>
|
|
{/if}
|
|
{/if}
|
|
</div>
|
|
<div class="price">
|
|
<span class="product-price">
|
|
{if isset($product.is_gift) && $product.is_gift}
|
|
<span class="gift">{l s='Gift' d='Shop.Theme.Checkout'}</span>
|
|
{else}
|
|
{$product.total}
|
|
{/if}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="clearfix"></div>
|
|
{if is_array($product.customizations) && $product.customizations|count}
|
|
<br>
|
|
{block name='cart_detailed_product_line_customization'}
|
|
{foreach from=$product.customizations item="customization"}
|
|
{foreach from=$customization.fields item="field"}
|
|
{assign var="dimension_text" value=" "|explode:$field.text}
|
|
<div class="alert medium-alert alert-info" style="width: 100%;">
|
|
<p style="float:left;">{$field.label} </p>
|
|
<div class="value">
|
|
{if $field.type == 'text'}
|
|
{if (int)$field.id_module}
|
|
{$field.text nofilter}
|
|
{else}
|
|
{$field.text}
|
|
{/if}
|
|
{elseif $field.type == 'image'}
|
|
<img src="{$field.image.small.url}">
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
{/foreach}
|
|
{/foreach}
|
|
{/block}
|
|
{/if}
|
|
|
|
{if isset($dimension_text)}
|
|
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
|
<script type="text/javascript">
|
|
var id_product = {$product.id_product|intval};
|
|
$.ajax({
|
|
type: "POST",
|
|
data: {
|
|
id_product:id_product
|
|
},
|
|
url: "index.php?fc=module&module=squaremeter&controller=getdimensiondata",
|
|
dataType: "json",
|
|
async: false,
|
|
success: function(data) {
|
|
results = data;
|
|
id_product=id_product;
|
|
//console.table(results);
|
|
},
|
|
error: function (jqXHR, exception) {
|
|
console.log(jqXHR);
|
|
}
|
|
});
|
|
|
|
if (typeof results !== 'undefined' && results.length > 0) {
|
|
var displayquantity = results[0]['displayquantity'];
|
|
|
|
if ((results[0]) && (displayquantity == 'decimalok')) {
|
|
if (results[0]['step_width'])
|
|
stepvalue = results[0]['step_width'];
|
|
else
|
|
stepvalue = results[0]['step'];
|
|
|
|
if(!stepvalue)
|
|
stepvalue = 1;
|
|
|
|
switch(results[0]['calculationtype']) {
|
|
case "weight":
|
|
if (results[0]['minweight'])
|
|
minvalue = results[0]['minweight'];
|
|
else
|
|
minvalue = '';
|
|
if (results[0]['maxweight'])
|
|
maxvalue = results[0]['maxweight'];
|
|
else
|
|
maxvalue = '';
|
|
break;
|
|
default:
|
|
if (results[0]['minwidth'])
|
|
minvalue = results[0]['minwidth'];
|
|
else
|
|
minvalue = '';
|
|
if (results[0]['maxwidth'])
|
|
maxvalue = results[0]['maxwidth'];
|
|
else
|
|
maxvalue = '';
|
|
break;
|
|
}
|
|
|
|
$("[unique-product-id={$product.id_product|intval}-{$product.id_product_attribute|intval}-{$product.id_customization|intval}]").attr('min', parseFloat(minvalue));
|
|
$("[unique-product-id={$product.id_product|intval}-{$product.id_product_attribute|intval}-{$product.id_customization|intval}]").attr('max', parseFloat(maxvalue));
|
|
$("[unique-product-id={$product.id_product|intval}-{$product.id_product_attribute|intval}-{$product.id_customization|intval}]").attr('step', parseFloat(stepvalue));
|
|
}
|
|
}
|
|
|
|
if (displayquantity == "decimalok") {
|
|
window["q" + "{$product.id_product|intval}-" + "{$product.id_product_attribute|intval}-" + "{$product.id_customization|intval}"] = $("[unique-product-id={$product.id_product|intval}-{$product.id_product_attribute|intval}-{$product.id_customization|intval}]").val();
|
|
setInterval(function(){
|
|
$("[unique-product-id={$product.id_product|intval}-{$product.id_product_attribute|intval}-{$product.id_customization|intval}]").val(parseFloat(window["q" + "{$product.id_product|intval}-" + "{$product.id_product_attribute|intval}-" + "{$product.id_customization|intval}"]).toFixed(2));
|
|
}, 100);
|
|
}
|
|
</script>
|
|
{/if} |