Advertisement
aresnet

product.tpk_mod

Mar 10th, 2014
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 34.69 KB | None | 0 0
  1. {include file="$tpl_dir./errors.tpl"}
  2. {if $errors|@count == 0}
  3. <script type="text/javascript">
  4. // <![CDATA[
  5.  
  6. // PrestaShop internal settings
  7. var currencySign = '{$currencySign|html_entity_decode:2:"UTF-8"}';
  8. var currencyRate = '{$currencyRate|floatval}';
  9. var currencyFormat = '{$currencyFormat|intval}';
  10. var currencyBlank = '{$currencyBlank|intval}';
  11. var taxRate = {$tax_rate|floatval};
  12. var jqZoomEnabled = {if $jqZoomEnabled}true{else}false{/if};
  13.  
  14. //JS Hook
  15. var oosHookJsCodeFunctions = new Array();
  16.  
  17. // Parameters
  18. var id_product = '{$product->id|intval}';
  19. var productHasAttributes = {if isset($groups)}true{else}false{/if};
  20. var quantitiesDisplayAllowed = {if $display_qties == 1}true{else}false{/if};
  21. var quantityAvailable = {if $display_qties == 1 && $product->quantity}{$product->quantity}{else}0{/if};
  22. var allowBuyWhenOutOfStock = {if $allow_oosp == 1}true{else}false{/if};
  23. var availableNowValue = '{$product->available_now|escape:'quotes':'UTF-8'}';
  24. var availableLaterValue = '{$product->available_later|escape:'quotes':'UTF-8'}';
  25. var productPriceTaxExcluded = {$product->getPriceWithoutReduct(true)|default:'null'} - {$product->ecotax};
  26. var productBasePriceTaxExcluded = {$product->base_price} - {$product->ecotax};
  27.  
  28. var reduction_percent = {if $product->specificPrice AND $product->specificPrice.reduction AND $product->specificPrice.reduction_type == 'percentage'}{$product->specificPrice.reduction*100}{else}0{/if};
  29. var reduction_price = {if $product->specificPrice AND $product->specificPrice.reduction AND $product->specificPrice.reduction_type == 'amount'}{$product->specificPrice.reduction|floatval}{else}0{/if};
  30. var specific_price = {if $product->specificPrice AND $product->specificPrice.price}{$product->specificPrice.price}{else}0{/if};
  31. var product_specific_price = new Array();
  32. {foreach from=$product->specificPrice key='key_specific_price' item='specific_price_value'}
  33.     product_specific_price['{$key_specific_price}'] = '{$specific_price_value}';
  34. {/foreach}
  35. var specific_currency = {if $product->specificPrice AND $product->specificPrice.id_currency}true{else}false{/if};
  36. var group_reduction = '{$group_reduction}';
  37. var default_eco_tax = {$product->ecotax};
  38. var ecotaxTax_rate = {$ecotaxTax_rate};
  39. var currentDate = '{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}';
  40. var maxQuantityToAllowDisplayOfLastQuantityMessage = {$last_qties};
  41. var noTaxForThisProduct = {if $no_tax == 1}true{else}false{/if};
  42. var displayPrice = {$priceDisplay};
  43. var productReference = '{$product->reference|escape:'htmlall':'UTF-8'}';
  44. var productAvailableForOrder = {if (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE}'0'{else}'{$product->available_for_order}'{/if};
  45. var productShowPrice = '{if !$PS_CATALOG_MODE}{$product->show_price}{else}0{/if}';
  46. var productUnitPriceRatio = '{$product->unit_price_ratio}';
  47. var idDefaultImage = {if isset($cover.id_image_only)}{$cover.id_image_only}{else}0{/if};
  48. var stock_management = {$stock_management|intval};
  49. {if !isset($priceDisplayPrecision)}
  50.     {assign var='priceDisplayPrecision' value=2}
  51. {/if}
  52. {if !$priceDisplay || $priceDisplay == 2}
  53.     {assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, $priceDisplayPrecision)}
  54.     {assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
  55. {elseif $priceDisplay == 1}
  56.     {assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, $priceDisplayPrecision)}
  57.     {assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
  58. {/if}
  59.  
  60.  
  61. var productPriceWithoutReduction = '{$productPriceWithoutReduction}';
  62. var productPrice = '{$productPrice}';
  63.  
  64. // Customizable field
  65. var img_ps_dir = '{$img_ps_dir}';
  66. var customizationFields = new Array();
  67. {assign var='imgIndex' value=0}
  68. {assign var='textFieldIndex' value=0}
  69. {foreach from=$customizationFields item='field' name='customizationFields'}
  70.     {assign var="key" value="pictures_`$product->id`_`$field.id_customization_field`"}
  71.     customizationFields[{$smarty.foreach.customizationFields.index|intval}] = new Array();
  72.     customizationFields[{$smarty.foreach.customizationFields.index|intval}][0] = '{if $field.type|intval == 0}img{$imgIndex++}{else}textField{$textFieldIndex++}{/if}';
  73.     customizationFields[{$smarty.foreach.customizationFields.index|intval}][1] = {if $field.type|intval == 0 && isset($pictures.$key) && $pictures.$key}2{else}{$field.required|intval}{/if};
  74. {/foreach}
  75.  
  76. // Images
  77. var img_prod_dir = '{$img_prod_dir}';
  78. var combinationImages = new Array();
  79.  
  80. {if isset($combinationImages)}
  81.     {foreach from=$combinationImages item='combination' key='combinationId' name='f_combinationImages'}
  82.         combinationImages[{$combinationId}] = new Array();
  83.         {foreach from=$combination item='image' name='f_combinationImage'}
  84.             combinationImages[{$combinationId}][{$smarty.foreach.f_combinationImage.index}] = {$image.id_image|intval};
  85.         {/foreach}
  86.     {/foreach}
  87. {/if}
  88.  
  89. combinationImages[0] = new Array();
  90. {if isset($images)}
  91.     {foreach from=$images item='image' name='f_defaultImages'}
  92.         combinationImages[0][{$smarty.foreach.f_defaultImages.index}] = {$image.id_image};
  93.     {/foreach}
  94. {/if}
  95.  
  96. // Translations
  97. var doesntExist = '{l s='This combination does not exist for this product. Please select another combination.' js=1}';
  98. var doesntExistNoMore = '{l s='This product is no longer in stock' js=1}';
  99. var doesntExistNoMoreBut = '{l s='with those attributes but is available with others.' js=1}';
  100. var uploading_in_progress = '{l s='Uploading in progress, please be patient.' js=1}';
  101. var fieldRequired = '{l s='Please fill in all the required fields before saving your customization.' js=1}';
  102.  
  103. {if isset($groups)}
  104.     // Combinations
  105.     {foreach from=$combinations key=idCombination item=combination}
  106.         var specific_price_combination = new Array();
  107.         var available_date = new Array();
  108.         specific_price_combination['reduction_percent'] = {if $combination.specific_price AND $combination.specific_price.reduction AND $combination.specific_price.reduction_type == 'percentage'}{$combination.specific_price.reduction*100}{else}0{/if};
  109.         specific_price_combination['reduction_price'] = {if $combination.specific_price AND $combination.specific_price.reduction AND $combination.specific_price.reduction_type == 'amount'}{$combination.specific_price.reduction}{else}0{/if};
  110.         specific_price_combination['price'] = {if $combination.specific_price AND $combination.specific_price.price}{$combination.specific_price.price}{else}0{/if};
  111.         specific_price_combination['reduction_type'] = '{if $combination.specific_price}{$combination.specific_price.reduction_type}{/if}';
  112.         specific_price_combination['id_product_attribute'] = {if $combination.specific_price}{$combination.specific_price.id_product_attribute|intval}{else}0{/if};
  113.         available_date['date'] = '{$combination.available_date}';
  114.         available_date['date_formatted'] = '{dateFormat date=$combination.available_date full=false}';
  115.         addCombination({$idCombination|intval}, new Array({$combination.list}), {$combination.quantity}, {$combination.price}, {$combination.ecotax}, {$combination.id_image}, '{$combination.reference|addslashes}', {$combination.unit_impact}, {$combination.minimal_quantity}, available_date, specific_price_combination);
  116.     {/foreach}
  117. {/if}
  118.  
  119. {if isset($attributesCombinations)}
  120.     // Combinations attributes informations
  121.     var attributesCombinations = new Array();
  122.     {foreach from=$attributesCombinations key=id item=aC}
  123.         tabInfos = new Array();
  124.         tabInfos['id_attribute'] = '{$aC.id_attribute|intval}';
  125.         tabInfos['attribute'] = '{$aC.attribute}';
  126.         tabInfos['group'] = '{$aC.group}';
  127.         tabInfos['id_attribute_group'] = '{$aC.id_attribute_group|intval}';
  128.         attributesCombinations.push(tabInfos);
  129.     {/foreach}
  130. {/if}
  131. //]]>
  132. </script>
  133. <div itemscope itemtype="http://data-vocabulary.org/Product">
  134. <span itemprop="category">{include file="$tpl_dir./breadcrumb.tpl"}</span>
  135. <div id="primary_block" class="clearfix">
  136.  
  137.     <meta itemprop="description" content="{$product->description_short|strip_tags}" />
  138.     <meta itemprop="type" content="website" />
  139.     <meta itemprop="url" content="http://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}" />
  140.     <meta itemprop="availability" content="{if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}" />
  141.     <meta itemprop="price" content="{if $priceDisplay >= 0 && $priceDisplay <= 2}{convertPrice price=$productPrice}{/if}" />
  142.     <meta itemprop="pricecurrency" content="{$currencySign|html_entity_decode:2:"UTF-8"}" />
  143.    
  144.    
  145.     {if isset($adminActionDisplay) && $adminActionDisplay}
  146.     <div id="admin-action">
  147.         <p>{l s='This product is not visible to your customers.'}
  148.         <input type="hidden" id="admin-action-product-id" value="{$product->id}" />
  149.         <input type="submit" value="{l s='Publish'}" class="exclusive" onclick="submitPublishProduct('{$base_dir}{$smarty.get.ad|escape:'htmlall':'UTF-8'}', 0, '{$smarty.get.adtoken|escape:'htmlall':'UTF-8'}')"/>
  150.         <input type="submit" value="{l s='Back'}" class="exclusive" onclick="submitPublishProduct('{$base_dir}{$smarty.get.ad|escape:'htmlall':'UTF-8'}', 1, '{$smarty.get.adtoken|escape:'htmlall':'UTF-8'}')"/>
  151.         </p>
  152.         <p id="admin-action-result"></p>
  153.         </p>
  154.     </div>
  155.     {/if}
  156.  
  157.     {if isset($confirmation) && $confirmation}
  158.     <p class="confirmation">
  159.         {$confirmation}
  160.     </p>
  161.     {/if}
  162.  
  163.     <!-- right infos-->
  164.     <div id="pb-right-column">
  165.         <!-- product img-->
  166.         <div id="image-block">
  167.         {if $have_image}
  168.             <span id="view_full_size">
  169.                 <img src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large_default')|escape:'html'}"{if $jqZoomEnabled && $have_image} class="jqzoom"{/if} title="{if !empty($cover.legend)}{$cover.legend|escape:'htmlall':'UTF-8'}{else}{$product->name|escape:'htmlall':'UTF-8'}{/if}" alt="{if !empty($cover.legend)}{$cover.legend|escape:'htmlall':'UTF-8'}{else}{$product->name|escape:'htmlall':'UTF-8'}{/if}" id="bigpic" width="{$largeSize.width}" height="{$largeSize.height}"/>
  170.                 <span class="span_link">{l s='Maximize'}</span>
  171.             </span>
  172.         {else}
  173.             <span id="view_full_size">
  174.                 <img src="{$img_prod_dir}{$lang_iso}-default-large_default.jpg" id="bigpic" alt="" title="{$product->name|escape:'htmlall':'UTF-8'}" width="{$largeSize.width}" height="{$largeSize.height}" itemprop="image" />
  175.                 <span class="span_link">{l s='Maximize'}</span>
  176.             </span>
  177.         {/if}
  178.         </div>
  179.         {if isset($images) && count($images) > 0}
  180.         <!-- thumbnails -->
  181.         <div id="views_block" class="clearfix {if isset($images) && count($images) < 2}hidden{/if}">
  182.         {if isset($images) && count($images) > 3}<span class="view_scroll_spacer"><a id="view_scroll_left" class="hidden" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Previous'}</a></span>{/if}
  183.         <div id="thumbs_list">
  184.             <ul id="thumbs_list_frame">
  185.             {if isset($images)}
  186.                 {foreach from=$images item=image name=thumbnails}
  187.                     {assign var=imageIds value="`$product->id`-`$image.id_image`"}
  188.                     {if !empty($image.legend)}
  189.                         {assign var=imageTitlte value=$image.legend|escape:'htmlall':'UTF-8'}
  190.                     {else}
  191.                         {assign var=imageTitlte value=$product->name|escape:'htmlall':'UTF-8'}
  192.                     {/if}
  193.                     <li id="thumbnail_{$image.id_image}">
  194.                         <a href="{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox_default')|escape:'html'}" rel="other-views" class="thickbox{if $smarty.foreach.thumbnails.first} shown{/if}" title="{$imageTitlte}">
  195.                             <img id="thumb_{$image.id_image}" src="{$link->getImageLink($product->link_rewrite, $imageIds, 'medium_default')|escape:'html'}" alt="{$imageTitlte}" title="{$imageTitlte}" height="{$mediumSize.height}" width="{$mediumSize.width}" />
  196.                         </a>
  197.                     </li>
  198.                 {/foreach}
  199.             {/if}
  200.             </ul>
  201.         </div>
  202.         {if isset($images) && count($images) > 3}<a id="view_scroll_right" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Next'}</a>{/if}
  203.         </div>
  204.         {/if}
  205.         {if isset($images) && count($images) > 1}<p class="resetimg clear"><span id="wrapResetImages" style="display: none;"><img src="{$img_dir}icon/displayall.png" alt="{l s='Cancel'}" width="11" height="13"/> <a id="resetImages" href="{$link->getProductLink($product)|escape:'html'}" onclick="$('span#wrapResetImages').hide('slow');return (false);">{l s='Display all pictures'}</a></span></p>{/if}
  206.         <!-- usefull links-->
  207.         <ul id="usefull_link_block">
  208.             {if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}
  209.             <li class="print"><a href="javascript:print();">{l s='Print'}</a></li>
  210.             {if $have_image && !$jqZoomEnabled}
  211.             {/if}
  212.         </ul>
  213.     </div>
  214.  
  215.     <!-- left infos-->
  216.     <div id="pb-left-column">
  217.         <h1>{$product->name|escape:'htmlall':'UTF-8'}</h1>
  218.  
  219.         {if $product->description_short OR $packItems|@count > 0}
  220.         <div id="short_description_block">
  221.             {if $product->description_short}
  222.                 <div id="short_description_content" class="rte align_justify">{$product->description_short}</div>
  223.             {/if}
  224.             {if $product->description}
  225.             <p class="buttons_bottom_block"><a href="javascript:{ldelim}{rdelim}" class="button">{l s='More details'}</a></p>
  226.             {/if}
  227.             {if $packItems|@count > 0}
  228.             <div class="short_description_pack">
  229.                 <h3>{l s='Pack content'}</h3>
  230.                 {foreach from=$packItems item=packItem}
  231.                 <div class="pack_content">
  232.                     {$packItem.pack_quantity} x <a href="{$link->getProductLink($packItem.id_product, $packItem.link_rewrite, $packItem.category)|escape:'html'}">{$packItem.name|escape:'htmlall':'UTF-8'}</a>
  233.                     <p>{$packItem.description_short}</p>
  234.                 </div>
  235.                 {/foreach}
  236.             </div>
  237.             {/if}
  238.         </div>
  239.         {/if}
  240.  
  241.         {*{if isset($colors) && $colors}
  242.         <!-- colors -->
  243.         <div id="color_picker">
  244.             <p>{l s='Pick a color:' js=1}</p>
  245.             <div class="clear"></div>
  246.             <ul id="color_to_pick_list" class="clearfix">
  247.             {foreach from=$colors key='id_attribute' item='color'}
  248.                 <li><a id="color_{$id_attribute|intval}" class="color_pick" style="background: {$color.value};" onclick="updateColorSelect({$id_attribute|intval});$('#wrapResetImages').show('slow');" title="{$color.name}">{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$color.name}" width="20" height="20" />{/if}</a></li>
  249.             {/foreach}
  250.             </ul>
  251.             <div class="clear"></div>
  252.         </div>
  253.         {/if}*}
  254.  
  255.         {if ($product->show_price AND !isset($restricted_country_mode)) OR isset($groups) OR $product->reference OR (isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS)}
  256.         <!-- add to cart form-->
  257.         <form id="buy_block" {if $PS_CATALOG_MODE AND !isset($groups) AND $product->quantity > 0}class="hidden"{/if} action="{$link->getPageLink('cart')|escape:'html'}" method="post">
  258.  
  259.             <!-- hidden datas -->
  260.             <p class="hidden">
  261.                 <input type="hidden" name="token" value="{$static_token}" />
  262.                 <input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" />
  263.                 <input type="hidden" name="add" value="1" />
  264.                 <input type="hidden" name="id_product_attribute" id="idCombination" value="" />
  265.             </p>
  266.  
  267.             <div class="product_attributes">
  268.                 {if isset($groups)}
  269.                 <!-- attributes -->
  270.                 <div id="attributes">
  271.                 <div class="clear"></div>
  272.                 {foreach from=$groups key=id_attribute_group item=group}
  273.                     {if $group.attributes|@count}
  274.                         <fieldset class="attribute_fieldset">
  275.                             <label class="attribute_label" for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :&nbsp;</label>
  276.                             {assign var="groupName" value="group_$id_attribute_group"}
  277.                             <div class="attribute_list">
  278.                             {if ($group.group_type == 'select')}
  279.                                 <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="attribute_select" onchange="findCombination();getProductAttribute();">
  280.                                     {foreach from=$group.attributes key=id_attribute item=group_attribute}
  281.                                         <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>
  282.                                     {/foreach}
  283.                                 </select>
  284.                             {elseif ($group.group_type == 'color')}
  285.                                 <ul id="color_to_pick_list" class="clearfix">
  286.                                     {assign var="default_colorpicker" value=""}
  287.                                     {foreach from=$group.attributes key=id_attribute item=group_attribute}
  288.                                     <li{if $group.default == $id_attribute} class="selected"{/if}>
  289.                                         <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();">
  290.                                             {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
  291.                                                 <img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" /><br />
  292.                                             {/if}
  293.                                         </a>
  294.                                     </li>
  295.                                     {if ($group.default == $id_attribute)}
  296.                                         {$default_colorpicker = $id_attribute}
  297.                                     {/if}
  298.                                     {/foreach}
  299.                                 </ul>
  300.                                 <input type="hidden" class="color_pick_hidden" name="{$groupName}" value="{$default_colorpicker}" />
  301.                             {elseif ($group.group_type == 'radio')}
  302.                                 <ul>
  303.                                     {foreach from=$group.attributes key=id_attribute item=group_attribute}
  304.                                         <li>
  305.                                             <input type="radio" class="attribute_radio" name="{$groupName}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} onclick="findCombination();getProductAttribute();" />
  306.                                             <span>{$group_attribute|escape:'htmlall':'UTF-8'}</span>
  307.                                         </li>
  308.                                     {/foreach}
  309.                                 </ul>
  310.                             {/if}
  311.                             </div>
  312.                         </fieldset>
  313.                     {/if}
  314.                 {/foreach}
  315.                 </div>
  316.             {/if}
  317.             <p id="product_reference" {if isset($groups) OR !$product->reference}style="display: none;"{/if}>
  318.                 <label for="product_reference">{l s='Reference:'} </label>
  319.                 <span class="editable">{$product->reference|escape:'htmlall':'UTF-8'}</span>
  320.             </p>
  321.  
  322.             <!-- quantity wanted -->
  323.             <p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) OR $virtual OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
  324.                 <label>{l s='Quantity:'}</label>
  325.                 <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}" size="2" maxlength="3" {if $product->minimal_quantity > 1}onkeyup="checkMinimalQuantity({$product->minimal_quantity});"{/if} />
  326.             </p>
  327.  
  328.             <!-- minimal quantity wanted -->
  329.             <p id="minimal_quantity_wanted_p"{if $product->minimal_quantity <= 1 OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
  330.                 {l s='This product is not sold individually. You must select at least'} <b id="minimal_quantity_label">{$product->minimal_quantity}</b> {l s='quantity for this product.'}
  331.             </p>
  332.             {if $product->minimal_quantity > 1}
  333.             <script type="text/javascript">
  334.                 checkMinimalQuantity();
  335.             </script>
  336.             {/if}
  337.  
  338.             <!-- availability -->
  339.             <p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) OR ($product->quantity > 0 && !$product->available_now) OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
  340.                 <span id="availability_label">{l s='Availability:'}</span>
  341.                 <span id="availability_value"{if $product->quantity <= 0} class="warning_inline"{/if} itemprop="availability">{if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}</span>              
  342.             </p>
  343.             <p id="availability_date"{if ($product->quantity > 0) OR !$product->available_for_order OR $PS_CATALOG_MODE OR !isset($product->available_date) OR $product->available_date < $smarty.now|date_format:'%Y-%m-%d'} style="display: none;"{/if}>
  344.                 <span id="availability_date_label">{l s='Availability date:'}</span>
  345.                 <span id="availability_date_value">{dateFormat date=$product->available_date full=false}</span>
  346.             </p>
  347.             <!-- number of item in stock -->
  348.             {if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
  349.             <p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
  350.                 <span id="quantityAvailable">{$product->quantity|intval}</span>
  351.                 <span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item in stock'}</span>
  352.                 <span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items in stock'}</span>
  353.             </p>
  354.             {/if}
  355.  
  356.             <!-- Out of stock hook -->
  357.             <div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
  358.                 {$HOOK_PRODUCT_OOS}
  359.             </div>
  360. <!-- Customizable products -->
  361. {if isset($product) && $product->customizable}
  362.   <div class="bullet customization_block">
  363.    <form method="post" action="{$customizationFormTarget}" enctype="multipart/form-data" id="customizationForm" class="clearfix">
  364.     <p class="infoCustomizable">
  365.      {l s='After saving your customized product, remember to add it to your cart.'}
  366.      {if $product->uploadable_files}<br />{l s='Allowed file formats are: GIF, JPG, PNG'}{/if}
  367.     </p>
  368.     {if $product->uploadable_files|intval}
  369.     <div class="customizableProductsFile">
  370.      <h3>{l s='Pictures'}</h3>
  371.      <ul id="uploadable_files" class="clearfix">
  372.       {counter start=0 assign='customizationField'}
  373.       {foreach from=$customizationFields item='field' name='customizationFields'}
  374.        {if $field.type == 0}
  375.         <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field}
  376.          {if isset($pictures.$key)}
  377.          <div class="customizationUploadBrowse">
  378.           <img src="{$pic_dir}{$pictures.$key}_small" alt="" />
  379.           <a href="{$link->getProductDeletePictureLink($product, $field.id_customization_field)}" title="{l s='Delete'}" >
  380.            <img src="{$img_dir}icon/delete.gif" alt="{l s='Delete'}" class="customization_delete_icon" width="11" height="13" />
  381.           </a>
  382.          </div>
  383.          {/if}
  384.          <div class="customizationUploadBrowse">
  385.           <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>
  386.           <input type="file" name="file{$field.id_customization_field}" id="img{$customizationField}" class="customization_block_input {if isset($pictures.$key)}filled{/if}" />
  387.          </div>
  388.         </li>
  389.         {counter}
  390.        {/if}
  391.       {/foreach}
  392.      </ul>
  393.     </div>
  394.     {/if}
  395.     {if $product->text_fields|intval}
  396.     <div class="customizableProductsText">
  397.      <h3>{l s='Text'}</h3>
  398.      <ul id="text_fields">
  399.      {counter start=0 assign='customizationField'}
  400.      {foreach from=$customizationFields item='field' name='customizationFields'}
  401.       {if $field.type == 1}
  402.       <li class="customizationUploadLine{if $field.required} required{/if}">
  403.        <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>
  404.        <textarea type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" rows="1" cols="40" class="customization_block_input">{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}</textarea>
  405.       </li>
  406.       {counter}
  407.       {/if}
  408.      {/foreach}
  409.      </ul>
  410.     </div>
  411.     {/if}
  412.     <p id="customizedDatas">
  413.      <input type="hidden" name="quantityBackup" id="quantityBackup" value="" />
  414.      <input type="hidden" name="submitCustomizedDatas" value="1" />
  415.      <input type="button" class="button" value="{l s='Save'}" onclick="javascript:saveCustomization()" />
  416.      <span id="ajax-loader" style="display:none"><img src="{$img_ps_dir}loader.gif" alt="loader" /></span>
  417.     </p>
  418.    </form>
  419.    <p class="clear required"><sup>*</sup> {l s='required fields'}</p>
  420.   </div>
  421. {/if}
  422.             <p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties OR $product->quantity <= 0) OR $allow_oosp OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
  423.         </div>
  424.  
  425.         <div class="content_prices clearfix">
  426.  
  427.             <!-- prices -->
  428.             {if $product->show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}
  429.  
  430.             {if $product->online_only}
  431.             <p class="online_only">{l s='Online only'}</p>
  432.             {/if}
  433.  
  434.             <div class="price">
  435.                 <p class="our_price_display">
  436.                 {if $priceDisplay >= 0 && $priceDisplay <= 2}
  437.                     <span id="our_price_display">{convertPrice price=$productPrice}</span>
  438.                     <!--{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))}
  439.                         {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
  440.                     {/if}-->
  441.                 {/if}
  442.                 </p>
  443.  
  444.                 {if $product->on_sale}
  445.                     <!--<img src="{$img_dir}onsale_{$lang_iso}.gif" alt="{l s='On sale'}" class="on_sale_img"/>-->
  446.                     <span class="on_sale">{l s='On sale!'}</span>
  447.                 {elseif $product->specificPrice AND $product->specificPrice.reduction AND $productPriceWithoutReduction > $productPrice}
  448.                     <span class="discount">{l s='Reduced price!'}</span>
  449.                 {/if}
  450.                 {if $priceDisplay == 2}
  451.                     <br />
  452.                     <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span>&nbsp;{l s='tax excl.'}</span>
  453.                 {/if}
  454.             </div>
  455.             <p id="reduction_percent" {if !$product->specificPrice OR $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}><span id="reduction_percent_display">{if $product->specificPrice AND $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}%{/if}</span></p>
  456.             <p id="reduction_amount" {if !$product->specificPrice OR $product->specificPrice.reduction_type != 'amount' || $product->specificPrice.reduction|intval ==0} style="display:none"{/if}>
  457.                 <span id="reduction_amount_display">
  458.                 {if $product->specificPrice AND $product->specificPrice.reduction_type == 'amount' AND $product->specificPrice.reduction|intval !=0}
  459.                     -{convertPrice price=$productPriceWithoutReduction-$productPrice|floatval}
  460.                 {/if}
  461.                 </span>
  462.             </p>
  463.             <p id="old_price"{if !$product->specificPrice || !$product->specificPrice.reduction} class="hidden"{/if}>
  464.             {if $priceDisplay >= 0 && $priceDisplay <= 2}
  465.                     <span id="old_price_display">{if $productPriceWithoutReduction > $productPrice}{convertPrice price=$productPriceWithoutReduction}{/if}</span>
  466.                     <!-- {if $tax_enabled && $display_tax_label == 1}{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}{/if} -->
  467.             {/if}
  468.             </p>
  469.             {if $packItems|@count && $productPrice < $product->getNoPackPrice()}
  470.                 <p class="pack_price">{l s='Instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p>
  471.                 <br class="clear" />
  472.             {/if}
  473.             {if $product->ecotax != 0}
  474.                 <p class="price-ecotax">{l s='Include'} <span id="ecotax_price_display">{if $priceDisplay == 2}{$ecotax_tax_exc|convertAndFormatPrice}{else}{$ecotax_tax_inc|convertAndFormatPrice}{/if}</span> {l s='For green tax'}
  475.                     {if $product->specificPrice AND $product->specificPrice.reduction}
  476.                     <br />{l s='(not impacted by the discount)'}
  477.                     {/if}
  478.                 </p>
  479.             {/if}
  480.             {if !empty($product->unity) && $product->unit_price_ratio > 0.000000}
  481.                  {math equation="pprice / punit_price"  pprice=$productPrice  punit_price=$product->unit_price_ratio assign=unit_price}
  482.                 <p class="unit-price"><span id="unit_price_display">{convertPrice price=$unit_price}</span> {l s='per'} {$product->unity|escape:'htmlall':'UTF-8'}</p>
  483.             {/if}
  484.             {*close if for show price*}
  485.             {/if}
  486.      
  487.             <p id="add_to_cart" {if (!$allow_oosp && $product->quantity <= 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE}style="display:none"{/if} class="buttons_bottom_block">
  488.                 <input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" />
  489.             </p>
  490.             {if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}
  491.  
  492.             <div class="clear"></div>
  493.         </div>
  494.         </form>
  495.         {/if}
  496.         {if isset($HOOK_EXTRA_RIGHT) && $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}
  497.     </div>
  498. </div>
  499.         </div>
  500.  
  501. {if (isset($quantity_discounts) && count($quantity_discounts) > 0)}
  502. <!-- quantity discount -->
  503. <ul class="idTabs clearfix">
  504.     <li><a href="#discount" style="cursor: pointer" class="selected">{l s='Sliding scale pricing'}</a></li>
  505. </ul>
  506. <div id="quantityDiscount">
  507.     <table class="std">
  508.     <thead>
  509.         <tr>
  510.             <th>{l s='Product'}</th>
  511.             <th>{l s='From (qty)'}</th>
  512.             <th>{if Configuration::get('PS_DISPLAY_DISCOUNT_PRICE')}{l s='Price'}{else}{l s='Discount'}{/if}</th>
  513.         </tr>
  514.     </thead>
  515.     <tbody>
  516.         {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'}
  517.         <tr id="quantityDiscount_{$quantity_discount.id_product_attribute}" class="quantityDiscount_{$quantity_discount.id_product_attribute}">
  518.             <td>
  519.                 {if (isset($quantity_discount.attributes) && ($quantity_discount.attributes))}
  520.                     {$product->getProductName($quantity_discount.id_product, $quantity_discount.id_product_attribute)}
  521.                 {else}
  522.                     {$product->getProductName($quantity_discount.id_product)}
  523.                 {/if}
  524.             </td>
  525.             <td>{$quantity_discount.quantity|intval}</td>
  526.             <td>
  527.                 {if $quantity_discount.price >= 0 OR $quantity_discount.reduction_type == 'amount'}
  528.                     {if Configuration::get('PS_DISPLAY_DISCOUNT_PRICE')}
  529.                         {convertPrice price=$productPrice-$quantity_discount.real_value|floatval}
  530.                     {else}
  531.                         -{convertPrice price=$quantity_discount.real_value|floatval}
  532.                     {/if}
  533.                 {else}
  534.                     {if Configuration::get('PS_DISPLAY_DISCOUNT_PRICE')}
  535.                         {convertPrice price = $productPrice-($productPrice*$quantity_discount.reduction)|floatval}
  536.                     {else}
  537.                         -{$quantity_discount.real_value|floatval}%
  538.                     {/if}
  539.                 {/if}
  540.             </td>
  541.         </tr>
  542.         {/foreach}
  543.     </tbody>
  544.     </table>
  545. </div>
  546. {/if}
  547. {if isset($HOOK_PRODUCT_FOOTER) && $HOOK_PRODUCT_FOOTER}{$HOOK_PRODUCT_FOOTER}{/if}
  548.  
  549. <!-- description and features -->
  550. {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}
  551. <div id="more_info_block" class="clearfix">
  552.     <ul id="more_info_tabs" class="idTabs idTabsShort clearfix">
  553.         {if $product->description}<li><a id="more_info_tab_more_info" href="#idTab1">{l s='More info'}</a></li>{/if}
  554.         {if $features}<li><a id="more_info_tab_data_sheet" href="#idTab2">{l s='Data sheet'}</a></li>{/if}
  555.         {if $attachments}<li><a id="more_info_tab_attachments" href="#idTab9">{l s='Download'}</a></li>{/if}
  556.         {if isset($accessories) AND $accessories}<li><a href="#idTab4">{l s='Accessories'}</a></li>{/if}
  557.    {*{if isset($product) && $product->customizable}<li><a href="#idTab10">{l s='Product customization'}</a></li>{/if}*}
  558.         {$HOOK_PRODUCT_TAB}
  559.     </ul>
  560.     <div id="more_info_sheets" class="sheets align_justify">
  561.     {if isset($product) && $product->description}
  562.         <!-- full description -->
  563.         <div id="idTab1" class="rte">{$product->description}</div>
  564.     {/if}
  565.     {if isset($features) && $features}
  566.         <!-- product's features -->
  567.         <ul id="idTab2" class="bullet">
  568.         {foreach from=$features item=feature}
  569.            {if isset($feature.value)}
  570.                 <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'}</li>
  571.            {/if}
  572.         {/foreach}
  573.         </ul>
  574.     {/if}
  575.     {if isset($attachments) && $attachments}
  576.         <ul id="idTab9" class="bullet">
  577.         {foreach from=$attachments item=attachment}
  578.             <li><a href="{$link->getPageLink('attachment', true, NULL, "id_attachment={$attachment.id_attachment}")|escape:'html'}">{$attachment.name|escape:'htmlall':'UTF-8'}</a><br />{$attachment.description|escape:'htmlall':'UTF-8'}</li>
  579.         {/foreach}
  580.         </ul>
  581.     {/if}
  582.     {if isset($accessories) AND $accessories}
  583.         <!-- accessories -->
  584.         <div id="idTab4" class="bullet">
  585.             <div class="products_block accessories_block clearfix">
  586.                 <div class="block_content">
  587.                     <ul>
  588.                     {foreach from=$accessories item=accessory name=accessories_list}
  589.                         {if ($accessory.allow_oosp || $accessory.quantity_all_versions > 0 || $accessory.quantity > 0) AND $accessory.available_for_order AND !isset($restricted_country_mode)}
  590.                             {assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}
  591.                             <li class="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">
  592.                                 <p class="s_title_block">
  593.                                     <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}">{$accessory.name|escape:'htmlall':'UTF-8'}</a>
  594.                                     {if $accessory.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE} - <span class="price">{if $priceDisplay != 1}{displayWtPrice p=$accessory.price}{else}{displayWtPrice p=$accessory.price_tax_exc}{/if}</span>{/if}
  595.                                 </p>
  596.                                 <div class="product_desc">
  597.                                     <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{$accessory.legend|escape:'htmlall':'UTF-8'}" class="product_image"><img src="{$link->getImageLink($accessory.link_rewrite, $accessory.id_image, 'medium_default')|escape:'html'}" alt="{$accessory.legend|escape:'htmlall':'UTF-8'}" width="{$mediumSize.width}" height="{$mediumSize.height}" /></a>
  598.                                         <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{l s='More'}" class="product_description">{$accessory.description_short|strip_tags|truncate:400:'...'}</a>
  599.                                     </div>
  600.                                 <p class="product_accessories_price clearfix">
  601.                                     <a class="lnk_more" href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a>
  602.                                     {if !$PS_CATALOG_MODE && ($accessory.allow_oosp || $accessory.quantity > 0)}
  603.                                     <a class="exclusive button ajax_add_to_cart_button" href="{$link->getPageLink('cart', true, NULL, "qty=1&amp;id_product={$accessory.id_product|intval}&amp;token={$static_token}&amp;add")|escape:'html'}" rel="ajax_id_product_{$accessory.id_product|intval}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>
  604.                                     {/if}
  605.                                 </p>
  606.                                
  607.                             </li>
  608.                         {/if}
  609.                     {/foreach}
  610.                     </ul>
  611.                 </div>
  612.             </div>
  613.         </div>
  614.     {/if}
  615.  
  616.    
  617.  
  618.     {if isset($HOOK_PRODUCT_TAB_CONTENT) && $HOOK_PRODUCT_TAB_CONTENT}{$HOOK_PRODUCT_TAB_CONTENT}{/if}
  619.     </div>
  620. </div>
  621. {/if}
  622. {if isset($packItems) && $packItems|@count > 0}
  623.     <div id="blockpack">
  624.         <h2>{l s='Pack content'}</h2>
  625.         {include file="$tpl_dir./product-list.tpl" products=$packItems}
  626.     </div>
  627. {/if}
  628. {/if}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement