287 lines
15 KiB
Smarty
287 lines
15 KiB
Smarty
|
{*
|
||
|
* 2007-2014 PrestaShop
|
||
|
*
|
||
|
* NOTICE OF LICENSE
|
||
|
*
|
||
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
||
|
* that is bundled with this package in the file LICENSE.txt.
|
||
|
* It is also available through the world-wide-web at this URL:
|
||
|
* http://opensource.org/licenses/afl-3.0.php
|
||
|
* If you did not receive a copy of the license and are unable to
|
||
|
* obtain it through the world-wide-web, please send an email
|
||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||
|
*
|
||
|
* DISCLAIMER
|
||
|
*
|
||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||
|
* needs please refer to http://www.prestashop.com for more information.
|
||
|
*
|
||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||
|
* @copyright 2007-2014 PrestaShop SA
|
||
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||
|
* International Registered Trademark & Property of PrestaShop SA
|
||
|
*}
|
||
|
{if isset($products) && $products}
|
||
|
{*define numbers of product per line in other page for desktop*}
|
||
|
{if $page_name !='index' && $page_name !='product'}
|
||
|
{assign var='nbItemsPerLine' value=3}
|
||
|
{assign var='nbItemsPerLineTablet' value=2}
|
||
|
{assign var='nbItemsPerLineMobile' value=3}
|
||
|
{else}
|
||
|
{assign var='nbItemsPerLine' value=4}
|
||
|
{assign var='nbItemsPerLineTablet' value=3}
|
||
|
{assign var='nbItemsPerLineMobile' value=2}
|
||
|
{/if}
|
||
|
{*define numbers of product per line in other page for tablet*}
|
||
|
{assign var='nbLi' value=$products|@count}
|
||
|
{math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines}
|
||
|
{math equation="nbLi/nbItemsPerLineTablet" nbLi=$nbLi nbItemsPerLineTablet=$nbItemsPerLineTablet assign=nbLinesTablet}
|
||
|
<!-- Products list -->
|
||
|
<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list grid row{if isset($class) && $class} {$class}{/if}">
|
||
|
{foreach from=$products item=product name=products}
|
||
|
{math equation="(total%perLine)" total=$smarty.foreach.products.total perLine=$nbItemsPerLine assign=totModulo}
|
||
|
{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet}
|
||
|
{math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineMobile assign=totModuloMobile}
|
||
|
{if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if}
|
||
|
{if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if}
|
||
|
{if $totModuloMobile == 0}{assign var='totModuloMobile' value=$nbItemsPerLineMobile}{/if}
|
||
|
|
||
|
<li id="product_{$product.id_product}" class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-12 col-sm-4{else} col-xs-12 col-sm-4{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLine == 0} last-in-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1} first-in-line{/if}{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModulo)} last-line{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 0} last-item-of-tablet-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 1} first-item-of-tablet-line{/if}{if $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 0} last-item-of-mobile-line{elseif $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 1} first-item-of-mobile-line{/if}{if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModuloMobile)} last-mobile-line{/if} {if ($product.allow_oosp || $product.quantity > 0)}{else}outofstock{/if}">
|
||
|
<div {if $cookie->logged}onclick="window.location.href='{$product.link|escape:'html':'UTF-8'}';"{/if} class="product-container" itemscope itemtype="http://schema.org/Product" >
|
||
|
<div class="left-block">
|
||
|
{if $cookie->logged && $product.register_for_game == 1 && $sale_concours == 1}
|
||
|
<div class="picto-concours"></div>
|
||
|
{/if}
|
||
|
<div class="product-image-container">
|
||
|
<a class="product_img_link" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url">
|
||
|
<img class="replace-2x img-responsive" src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html':'UTF-8'}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} itemprop="image" />
|
||
|
</a>
|
||
|
{if $cookie->logged}
|
||
|
{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
|
||
|
<div class="content_price" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
|
||
|
{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}
|
||
|
<span itemprop="price" class="price product-price">
|
||
|
{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}
|
||
|
</span>
|
||
|
<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
|
||
|
{if isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0}
|
||
|
{hook h="displayProductPriceBlock" product=$product type="old_price"}
|
||
|
<span class="old-price product-price">
|
||
|
{displayWtPrice p=$product.price_without_reduction}
|
||
|
</span>
|
||
|
{if $product.specific_prices.reduction_type == 'percentage'}
|
||
|
<span class="price-percent-reduction">-{$product.specific_prices.reduction * 100}%</span>
|
||
|
{/if}
|
||
|
{/if}
|
||
|
{hook h="displayProductPriceBlock" product=$product type="price"}
|
||
|
{hook h="displayProductPriceBlock" product=$product type="unit_price"}
|
||
|
{/if}
|
||
|
</div>
|
||
|
{/if}
|
||
|
{/if}
|
||
|
</div>
|
||
|
{hook h="displayProductDeliveryTime" product=$product}
|
||
|
{if $cookie->logged}
|
||
|
{hook h="displayProductPriceBlock" product=$product type="weight"}
|
||
|
{/if}
|
||
|
|
||
|
{if $cookie->logged}
|
||
|
{if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
|
||
|
{if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}
|
||
|
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="availability">
|
||
|
{if ($product.allow_oosp || $product.quantity > 0)}
|
||
|
{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
|
||
|
<span class="available-dif">
|
||
|
<link itemprop="availability" href="http://schema.org/LimitedAvailability" />{l s='Product available with different options'}
|
||
|
</span>
|
||
|
{else}
|
||
|
<span class="out-of-stock">
|
||
|
<link itemprop="availability" href="http://schema.org/OutOfStock" />{l s='Out of stock'}
|
||
|
</span>
|
||
|
{/if}
|
||
|
</div>
|
||
|
{/if}
|
||
|
{/if}
|
||
|
{/if}
|
||
|
|
||
|
{if $product.specific_prices.reduction_type == 'percentage'}
|
||
|
<div class="price-percent-reduction">
|
||
|
<span>-{$product.specific_prices.reduction * 100}%</span>
|
||
|
</div>
|
||
|
{/if}
|
||
|
|
||
|
</div>
|
||
|
<div class="right-block">
|
||
|
<div class="manufacturer-name">
|
||
|
{$product.manufacturer_name|truncate:35:'...'|escape:'htmlall':'UTF-8'}
|
||
|
</div>
|
||
|
<h5 itemprop="name">
|
||
|
{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if}
|
||
|
<a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url" >
|
||
|
{$product.name|truncate:60:'...'|escape:'html':'UTF-8'}
|
||
|
</a>
|
||
|
</h5>
|
||
|
<div class="shape-red"></div>
|
||
|
{hook h='displayProductListReviews' product=$product}
|
||
|
<p class="product-desc" itemprop="description">
|
||
|
{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}
|
||
|
</p>
|
||
|
|
||
|
{if $cookie->logged}
|
||
|
{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
|
||
|
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="content_price">
|
||
|
{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}
|
||
|
<span itemprop="price" class="price product-price">
|
||
|
{if !$priceDisplay}
|
||
|
{convertPrice price=$product.price} <sup>{l s='TTC'}</sup>
|
||
|
{else}
|
||
|
{convertPrice price=$product.price_tax_exc} <sup>{l s='HT'}</sup>
|
||
|
{/if}
|
||
|
</span>
|
||
|
<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
|
||
|
{if isset($product.specific_prices) && $product.specific_prices && isset($product.specific_prices.reduction) && $product.specific_prices.reduction > 0}
|
||
|
{hook h="displayProductPriceBlock" product=$product type="old_price"}<br/>
|
||
|
{l s='instead of'}
|
||
|
<span class="old-price product-price">
|
||
|
{if !$priceDisplay}
|
||
|
{displayWtPrice p=$product.price_without_reduction}
|
||
|
{else}
|
||
|
{displayWtPrice p=$product.price_without_reduction}
|
||
|
{/if}
|
||
|
</span>
|
||
|
{hook h="displayProductPriceBlock" id_product=$product.id_product type="old_price"}
|
||
|
{/if}
|
||
|
{hook h="displayProductPriceBlock" product=$product type="price"}
|
||
|
{hook h="displayProductPriceBlock" product=$product type="unit_price"}<br/>
|
||
|
|
||
|
{if !$priceDisplay || $priceDisplay == 2}
|
||
|
{assign var='productPrice' value=$product.price}
|
||
|
{elseif $priceDisplay == 1}
|
||
|
{assign var='productPrice' value=$product.price_tax_exc}
|
||
|
{/if}
|
||
|
{if $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">{l s='soit'} {convertPrice price=$unit_price} {l s='l\'unité'}</p>
|
||
|
{/if}
|
||
|
{/if}
|
||
|
</div>
|
||
|
{/if}
|
||
|
{/if}
|
||
|
{*if isset($product.color_list)}
|
||
|
<div class="color-list-container">{$product.color_list}</div>
|
||
|
{/if*}
|
||
|
<div class="product-flags">
|
||
|
{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
|
||
|
{if isset($product.online_only) && $product.online_only}
|
||
|
<span class="online_only">{l s='Online only'}</span>
|
||
|
{/if}
|
||
|
{/if}
|
||
|
{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}
|
||
|
{elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}
|
||
|
<span class="discount">{l s='Reduced price!'}</span>
|
||
|
{/if}
|
||
|
</div>
|
||
|
<div class="container-button">
|
||
|
<a itemprop="url" class="button-grey button-white button-product-list" href="{$product.link|escape:'html':'UTF-8'}" title="{l s='View'}">
|
||
|
<span>{l s='More'}</span>
|
||
|
</a>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div><!-- .product-container> -->
|
||
|
|
||
|
<span class="diamond_border snotmobile"></span>
|
||
|
|
||
|
<div class="clearfix"></div>
|
||
|
</li>
|
||
|
{if $cookie->logged }
|
||
|
{hook h='displayProductAfter' position=$smarty.foreach.products.index }
|
||
|
{/if}
|
||
|
|
||
|
{if $smarty.foreach.products.index % 3 == 2 || $smarty.foreach.products.last}
|
||
|
</ul>
|
||
|
{if !$smarty.foreach.products.last}
|
||
|
<ul class="product_list grid row">
|
||
|
{/if}
|
||
|
{/if}
|
||
|
|
||
|
|
||
|
{/foreach}
|
||
|
</ul>
|
||
|
{addJsDefL name=min_item}{l s='Please select at least one product' js=1}{/addJsDefL}
|
||
|
{addJsDefL name=max_item}{l s='You cannot add more than %d product(s) to the product comparison' sprintf=$comparator_max_item js=1}{/addJsDefL}
|
||
|
{addJsDef comparator_max_item=$comparator_max_item}
|
||
|
{addJsDef comparedProductsIds=$compared_products}
|
||
|
{/if}
|
||
|
|
||
|
{literal}
|
||
|
<script>
|
||
|
var pagenext = "";
|
||
|
$(document).ready(function(){
|
||
|
|
||
|
/* var scrolling = $(window);
|
||
|
var ajaxon = false;
|
||
|
scrolling.scroll(function(event) {
|
||
|
var pos = scrolling.height() + scrolling.scrollTop();
|
||
|
var stop_scroll = $(document).height() - $("#footer").height() - $(".bottom-category").height() ;
|
||
|
if ( pos >= stop_scroll && !ajaxon) {
|
||
|
var next_page = $("#pagination_next_bottom a").attr("href");
|
||
|
if(next_page){
|
||
|
ajaxon = true ;
|
||
|
$(".bottom-pagination-content").remove();
|
||
|
$("#loader").show();
|
||
|
$.ajax({
|
||
|
type: 'GET',
|
||
|
url: next_page+'&content_only=1',
|
||
|
cache: false,
|
||
|
success : function(data)
|
||
|
{
|
||
|
ajaxon = false ;
|
||
|
$("#loader").hide();
|
||
|
if(data){
|
||
|
$('#product_list').append(data);
|
||
|
}
|
||
|
|
||
|
|
||
|
{/literal}{*
|
||
|
{if $popup_connection && !$cookie->logged && !$sales_mobile}
|
||
|
*}{literal}
|
||
|
$(".sale, .sale a.button-grey, div.product-container, div.product-container a, div.product-container a.button-grey").click(function(e) {
|
||
|
e.stopPropagation();
|
||
|
var href = '/';
|
||
|
if(typeof $(this).attr('href') != 'undefined') {
|
||
|
href = $(this).attr('href');
|
||
|
}
|
||
|
else {
|
||
|
if($(this).find('a.button-grey').size() > 0) {
|
||
|
href = $(this).find('a.button-grey').attr('href');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$('.privatesales_popup_connection').find('input[name=back]').val(href);
|
||
|
$('.popup_overlay').fadeIn(100);
|
||
|
$('.privatesales_popup_connection').fadeIn(250);
|
||
|
return false;
|
||
|
});
|
||
|
{/literal}{*
|
||
|
{/if}
|
||
|
*}{literal}
|
||
|
|
||
|
},
|
||
|
error : function(jqXHR, textStatus)
|
||
|
{
|
||
|
alert('error '+textStatus);
|
||
|
$("#loader").hide();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
});*/
|
||
|
|
||
|
if (!('ontouchstart' in window))
|
||
|
$('ul.product_list li').addClass('no-touch');
|
||
|
|
||
|
});
|
||
|
</script>
|
||
|
{/literal}
|