Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 16.18 KB | None | 0 0
  1. {strip}
  2. {$_is_dialog = $wa->get('cart')}
  3. {function name=in_stock n=0 low=5 critical=2}
  4.     {if $n > $low or $n === null}
  5.         <div class="stock-info stock-info--item-page stock-info--stock">
  6.             <span class="stock-icon"><svg class="icon" width="10" height="11"><use xlink:href="#icon-in-stock"></use></svg></span>
  7.             <span class="stock-text">[`In stock`]</span>
  8.         </div>
  9.     {elseif $n > $critical}
  10.         <div class="stock-info stock-info--item-page stock-info--less">
  11.             <span class="stock-icon"><svg class="icon" width="10" height="11"><use xlink:href="#icon-in-stock"></use></svg></span>
  12.             <span class="stock-text">{* _w("Only %d left in stock", "Only %d left in stock", $n) *}{_w("Only a few items left")}</span>
  13.         </div>
  14.     {elseif $n > 0}
  15.         <div class="stock-info stock-info--item-page stock-info--1">
  16.             <span class="stock-icon"><svg class="icon" width="10" height="11"><use xlink:href="#icon-in-stock"></use></svg></span>
  17.             <span class="stock-text">{_w("Only %d left in stock", "Only %d left in stock", $n)}</span>
  18.         </div>
  19.     {else}
  20.         <div class="stock-info stock-info--item-page stock-info--not">
  21.             <span class="stock-icon"><svg class="icon" width="10" height="11"><use xlink:href="#icon-in-stock"></use></svg></span>
  22.             <span class="stock-text">{if $wa->shop->settings('ignore_stock_count')}[`Pre-order only`]{else}[`Out of stock`]{/if}</span>
  23.         </div>
  24.     {/if}
  25. {/function}
  26. <section class="item-pg__sidebar">
  27.     <div class="item-pg__sidebar-inner">
  28.         <form id="cart-form{if $_is_dialog}-dialog{/if}" data-image="{$wa->shop->productImgUrl($product, "96x96")|default:"`$wa_parent_theme_url`img/dummy200.png"}" method="post" action="{$wa->getUrl('/frontendCart/add')}">
  29.             <div class="item-sidebar__top">
  30.                 <h3 class="item-sidebar__title" data-title="{$product.name|escape}">{sprintf('[`Buy %s`]',$product.name|escape)}</h3>
  31.                 {if $product.summary && !$_is_dialog && $theme_settings.shop_productpage_show_summary}<div class="item-sidebar__descr">{$product.summary}</div>{/if}
  32.                 <div class="item-sidebar__price">
  33.                     <div class="price-text">[`Price`]</div>
  34.                     <div class="price__wrapper">
  35.                         <div class="item-price">
  36.                             <div class="item-price__num"> <span class="price-number s-product-price">{shop_currency_html($product.price)}</span></div>
  37.                         </div>
  38.                         {if $theme_settings.products_show_economy}
  39.                             {include file="inc/product.saving.html" product=$product show_anyway=1}
  40.                         {/if}
  41.                         {if $product.compare_price > 0}
  42.                         <div class="item-price item-price--old">
  43.                             <div class="item-price__num"> <span class="price-number s-product-oldprice">{shop_currency_html($product.compare_price)}</span></div>
  44.                         </div>
  45.                         {/if}
  46.                     </div>
  47.                 </div>
  48.                 {if isset($product.skus) && count($product.skus) == 1}
  49.                     {$sku = $product.skus[$product.sku_id]}
  50.                     {if $sku.sku}<div class="cat-item__sku"><span>Артикул: {$sku.sku|escape}</span></div>{/if}
  51.                 {/if}
  52.             </div>
  53.             <div class="item-sidebar__stock">
  54.                 {foreach $product.skus as $sku}
  55.                     {if $sku.stock}
  56.                         {foreach $stocks as $stock_id => $stock}
  57.                         <div class="sidebar__stock-wrapper sku-{$sku.id}-stock"{if $sku.id != $product.sku_id} style="display:none"{/if} data-sku-count="{$sku.count}">
  58.                             {if isset($sku.stock[$stock_id])}
  59.                                 {$stock_count = $sku.stock[$stock_id]}
  60.                             {else}
  61.                                 {$stock_count = null}
  62.                             {/if}
  63.                             <div class="stock-text stock-text--place">{$stock.name|escape}</div>
  64.                             {in_stock n=$stock_count low=$stock.low_count critical=$stock.critical_count}<br>
  65.                         </div>
  66.                         {/foreach}
  67.                     {else}
  68.                         <div class="sidebar__stock-wrapper sku-{$sku.id}-stock"{if $sku.id != $product.sku_id} style="display:none"{/if} data-sku-count="{$sku.count}">
  69.                             {in_stock n=$sku.count}
  70.                         </div>
  71.                     {/if}
  72.                 {/foreach}
  73.                 {if $product.sku_type}
  74.                 <div class="sku-no-stock" style="display:none;">
  75.                     <strong class="stock-none stock-info--not">[`Product with the selected option combination is not available for purchase`]</strong>
  76.                 </div>
  77.                 {/if}
  78.             </div>
  79.             {if $services || ($product.sku_type || count($product.skus)>1)}
  80.             <div class="item-sidebar__options">
  81.                 {if $product.sku_type}
  82.                     {$default_sku_features = $product.sku_features}
  83.                     {$product_available = $product.status}
  84.                     {* list all SKUs for Schema.org markup *}
  85.                     {foreach $product.skus as $sku}
  86.                         <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  87.                             {$sku_available =  $product.status && $sku.available && ($wa->shop->settings('ignore_stock_count') || $sku.count === null || $sku.count > 0)}
  88.                             {if $sku.name}<meta itemprop="name" content="{$sku.name|escape}">{/if}
  89.                             <meta itemprop="price" content="{$sku.price}">
  90.                             <meta itemprop="priceCurrency" content="{$product.currency}">
  91.                             {if (!($sku.count === null) && $sku.count <= 0)}
  92.                                 <link itemprop="availability" href="http://schema.org/OutOfStock" />
  93.                             {else}
  94.                                 <link itemprop="availability" href="http://schema.org/InStock" />
  95.                             {/if}
  96.                         </div>
  97.                     {/foreach}
  98.                     {foreach $features_selectable as $f}
  99.                     <div class="options__wrapper">
  100.                         <div class="options__head">
  101.                             <h3 class="options__title">{$f.name|escape}</h3>
  102.                             <a class="options__mobile-toggle" href="#"><span class="icon-options-toogle"></span><span class="icon-options-toogle"></span></a>
  103.                         </div>
  104.                         <div class="options__content">
  105.                             {if $f.type == 'color'}
  106.                                 <ul class="options__color-list">
  107.                                     {foreach $f.values as $v_id => $v}
  108.                                     {if !isset($default_sku_features[$f.id])}{$default_sku_features[$f.id]=$v_id}{/if}
  109.                                     <li class="options__color-item tooltip-container{if $v_id == ifset($default_sku_features[$f.id])} active{/if}" style="{$v->style}" data-sku-id="{$f.id}:{$v_id};" data-value="{$v_id}">
  110.                                         <span class="options__color-text">{strip_tags($v)}</span>
  111.                                         <div class="tooltip-content">{strip_tags($v)}</div>
  112.                                     </li>
  113.                                     {/foreach}
  114.                                 </ul>
  115.                                 <input type="hidden" data-feature-id="{$f.id}" class="sku-feature" name="features[{$f.id}]" value="{ifset($default_sku_features[$f.id])}">
  116.                             {else}
  117.                             <div class="options__buttons">
  118.                                 <ul class="options__buttons-list">
  119.                                     {foreach $f.values as $v_id => $v}
  120.                                     {if !isset($default_sku_features[$f.id])}{$default_sku_features[$f.id]=$v_id}{/if}
  121.                                     <li class="options__buttons-item{if $v_id == ifset($default_sku_features[$f.id])} active{/if}" data-sku-id="{$f.id}:{$v_id};" data-value="{$v_id}"><a class="options__buttons-link" href="#">{$v}</a></li>
  122.                                     {/foreach}
  123.                                 </ul>
  124.                                 <input type="hidden" data-feature-id="{$f.id}" class="sku-feature" name="features[{$f.id}]" value="{ifset($default_sku_features[$f.id])}">
  125.                             </div>
  126.                             {/if}
  127.                         </div>
  128.                     </div>
  129.                     {/foreach}
  130.                 {else}
  131.                     {$product_available = false}
  132.                     {if count($product.skus) > 1}
  133.                         <div class="options__wrapper">
  134.                             <div class="options__content">
  135.                                 <ul class="options__form-list skus">
  136.                                     {foreach $product.skus as $sku}
  137.                                     {$sku_available =  $product.status && $sku.available && ($wa->shop->settings('ignore_stock_count') || $sku.count === null || $sku.count > 0)}
  138.                                     <li class="options__form-item" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  139.                                         <label class="form-label--radio{if !$sku.available} disabled{/if}">
  140.                                             <input name="sku_id" type="radio" value="{$sku.id}"{if !$sku.available} disabled="true"{/if}{if !$sku_available}data-disabled="1"{/if}{if $sku.id == $product.sku_id} checked="checked"{/if} data-compare-price="{shop_currency($sku.compare_price, $product.currency, null, 0)}" data-price="{shop_currency($sku.price, $product.currency, null, 0)}"{if $sku.image_id} data-image-id="{$sku.image_id}"{/if}>
  141.                                             <span class="label-text" itemprop="name">{$sku.name|escape}</span>
  142.                                             <meta itemprop="price" content="{$sku.price}">
  143.                                             <meta itemprop="priceCurrency" content="{$product.currency}">
  144.                                             {if (!($sku.count === null) && $sku.count <= 0)}
  145.                                             <link itemprop="availability" href="http://schema.org/OutOfStock" />
  146.                                             {else}
  147.                                             <link itemprop="availability" href="http://schema.org/InStock" />
  148.                                             {/if}
  149.                                         </label>
  150.                                     </li>
  151.                                     {$product_available = $product_available or $sku_available}
  152.                                     {/foreach}
  153.                                 </ul>
  154.                             </div>
  155.                         </div>
  156.                     {else}
  157.                         <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  158.                             {$sku = $product.skus[$product.sku_id]}
  159.                             {if $sku.name}<meta itemprop="name" content="{$sku.name|escape}">{/if}
  160.                             <meta itemprop="price" content="{$sku.price}">
  161.                             <meta itemprop="priceCurrency" content="{$product.currency}">
  162.                             {if !$sku.available}
  163.                             <link itemprop="availability" href="http://schema.org/Discontinued" />
  164.                             <p><em class="bold error">[`This product is not available for purchase`]</em></p>
  165.                             {elseif !$wa->shop->settings('ignore_stock_count') && !($sku.count === null || $sku.count > 0)}
  166.                             <link itemprop="availability" href="http://schema.org/OutOfStock" />
  167.                             {else}
  168.                             <link itemprop="availability" href="http://schema.org/InStock" />
  169.                             {/if}
  170.                             <input name="sku_id" type="hidden" value="{$product.sku_id}">
  171.                             {$product_available = $product.status && $sku.available && ($wa->shop->settings('ignore_stock_count') || $sku.count === null || $sku.count > 0)}
  172.                         </div>
  173.                     {/if}
  174.                 {/if}
  175.                 {if $services}
  176.                 <div class="options__wrapper options__wrapper--extra">
  177.                     <div class="options__content options__content--extra">
  178.                     {foreach $services as $s}
  179.                     <div class="options__content--extra-item service-{$s.id}">
  180.                         <label class="form-label--checkbox">
  181.                             <input data-price="{shop_currency($s.price, $s.currency, null, 0)}" {if !$product_available}disabled="disabled"{/if} type="checkbox" name="services[]" value="{$s.id}">
  182.                             <span class="label-text">{$s.name|escape}{if $s.price && !isset($s.variants)} (+<span>{shop_currency_html($s.price, $s.currency)}</span>){/if}</span>
  183.                         </label>
  184.                         {if isset($s.variants)}
  185.                         <select data-variant-id="{$s.variant_id}" class="service-variants" name="service_variant[{$s.id}]" disabled>
  186.                             {foreach $s.variants as $v}
  187.                             <option {if $s.variant_id == $v.id}selected{/if} data-price="{shop_currency($v.price, $s.currency, null, 0)}" value="{$v.id}">{$v.name|escape} (+{shop_currency($v.price, $s.currency)})</option>
  188.                             {/foreach}
  189.                         </select>
  190.                         {else}
  191.                         <input type="hidden" name="service_variant[{$s.id}]" value="{$s.variant_id}">
  192.                         {/if}
  193.                     </div>
  194.                     {/foreach}
  195.                     </div>
  196.                 </div>
  197.                 {/if}
  198.             </div>
  199.             {else}
  200.                 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  201.                     {$sku = $product.skus[$product.sku_id]}
  202.                     {if $sku.name}<meta itemprop="name" content="{$sku.name|escape}">{/if}
  203.                     <meta itemprop="price" content="{$sku.price}">
  204.                     <meta itemprop="priceCurrency" content="{$product.currency}">
  205.                     {if !$sku.available}
  206.                     <link itemprop="availability" href="http://schema.org/Discontinued" />
  207.                     <p><em class="bold error">[`This product is not available for purchase`]</em></p>
  208.                     {elseif !$wa->shop->settings('ignore_stock_count') && !($sku.count === null || $sku.count > 0)}
  209.                     <link itemprop="availability" href="http://schema.org/OutOfStock" />
  210.                     {else}
  211.                     <link itemprop="availability" href="http://schema.org/InStock" />
  212.                     {/if}
  213.                     <input name="sku_id" type="hidden" value="{$product.sku_id}">
  214.                     {$product_available = $product.status && $sku.available && ($wa->shop->settings('ignore_stock_count') || $sku.count === null || $sku.count > 0)}
  215.                 </div>
  216.             {/if}
  217.             <div class="item-sidebar__action">
  218.                 <div class="item-sidebar__order-btns">
  219.                     <input type="hidden" name="product_id" value="{$product.id}">
  220.                     <button type="submit" class="uni-btn uni-btn--red{if $theme_settings.shop_productpage_hide_if_sold} uni-btn__hide-disabled{/if}"{if !$product_available} disabled="disabled"{/if}>добавить в корзину<span class="hover-anim"></span></button>
  221.                     {if !$_is_dialog}
  222.                         <!-- plugin hook: 'frontend_product.cart' -->
  223.                         {* @event frontend_product.%plugin_id%.cart *}
  224.                         {foreach $frontend_product as $_}{$_.cart}{/foreach}
  225.                     {/if}
  226.                 </div>
  227.                 {if !empty($theme_settings.shop_productpage_phone)}
  228.                 <div class="item-sidebar__phone">
  229.                     <div class="phone-text">[`Order by phone`]</div>
  230.                     <div class="phone-number">{$theme_settings.shop_productpage_phone}</div>
  231.                 </div>
  232.                 {/if}
  233.                 {if !$_is_dialog}
  234.                     <!-- plugin hook: 'frontend_product.block_aux' -->
  235.                     {* @event frontend_product.%plugin_id%.block_aux *}
  236.                     {if !empty($frontend_product)}
  237.                         <div class="aux">
  238.                             {foreach $frontend_product as $_}{$_.block_aux}{/foreach}
  239.                         </div>
  240.                     {/if}
  241.                     <div class="item-sidebar__action-btns">
  242.                         <div class="item-user-actions">
  243.                             {if $theme_settings.products_show_compare eq "all" || ($theme_settings.products_show_compare eq "registered" && $wa->isAuthEnabled() && $wa->user()->isAuth())}
  244.                             {$compare = explode(",",waRequest::cookie('shop_compare'))}
  245.                             <a class="action-button action-button--add-compare btn-compare-{$product.id}{if in_array($product.id,$compare)} active{/if}" href="#" data-url="{$wa->getUrl('/frontend/compare/', ['id' => implode(',', $compare) ])}" data-product="{$product.id}">
  246.                                 <span class="action-icon action-icon--compare">
  247.                                     <svg class="icon-default icon-compare" width="19" height="16"><use xlink:href="#icon-compare"></use></svg>
  248.                                     <svg class="icon-for-active icon-compare-pressed" width="19" height="16"><use xlink:href="#icon-compare-pressed"></use></svg>
  249.                                 </span>
  250.                                 <span class="action-text">[`Compare`]</span>
  251.                                 <span class="tooltip-content tooltip-content--default">[`Add to comparison table`]</span>
  252.                                 <span class="tooltip-content tooltip-content--active">[`Remove from comparison table`]</span>
  253.                             </a>
  254.                             {/if}
  255.                             {if $theme_settings.products_show_wishlist eq "all" || ($theme_settings.products_show_wishlist eq "registered" && $wa->isAuthEnabled() && $wa->user()->isAuth())}
  256.                             {$theme_favorite = explode(",",waRequest::cookie('shop_favorite'))}
  257.                             <a class="action-button action-button--add-fav btn-fav-{$product.id}{if in_array($product.id,$theme_favorite)} active{/if}" href="#" data-product="{$product.id}">
  258.                                 <span class="action-icon action-icon--fav">
  259.                                     <svg class="icon-default icon-favorite" width="16" height="15"><use xlink:href="#icon-fav"></use></svg>
  260.                                     <svg class="icon-for-active icon-fav-pressed" width="16" height="15"><use xlink:href="#icon-fav-pressed"></use></svg>
  261.                                 </span>
  262.                                 <span class="action-text">[`Favorites`]</span>
  263.                                 <span class="tooltip-content tooltip-content--default">[`Add to favorites`]</span>
  264.                                 <span class="tooltip-content tooltip-content--active">[`Remove from favorites`]</span>
  265.                             </a>
  266.                             {/if}
  267.                         </div>
  268.                     </div>
  269.                 {/if}
  270.             </div>
  271.         </form>
  272.     </div>
  273.     {if !$_is_dialog}
  274.         <!-- plugin hook: 'frontend_product.block' -->
  275.         {* @event frontend_product.%plugin_id%.block *}
  276.         {foreach $frontend_product as $_}{$_.block}{/foreach}
  277.         {include file="product.features.html" inline}
  278.     {/if}
  279. </section>
  280. <script>
  281. ( function($) {
  282.    var is_product_exist = (typeof Product === "function");
  283.  
  284.     (!is_product_exist) ? $.getScript("{$wa_theme_url}js/product.js?v{$wa_theme_version}", initProduct) : initProduct();
  285.  
  286.     function initProduct() {
  287.         new Product({
  288.             $form: $("#cart-form{if $_is_dialog}-dialog{/if}"),
  289.             is_dialog: {if $_is_dialog}true{else}false{/if},
  290.             saving: {if $theme_settings.products_show_economy}true{else}false{/if},
  291.             saving_min: {$theme_settings.products_show_economy_min|default:101},
  292.             saving_rounding: "{$theme_settings.products_show_economy_rounding_type}",
  293.             currency: {json_encode($currency_info)},
  294.             services: {if count($product.skus) > 1 or $product.sku_type}{json_encode($sku_services)}{else}false{/if},
  295.             features: {if $product.sku_type}{json_encode($sku_features_selectable)}{else}false{/if}
  296.         });
  297.     }
  298. })(jQuery);
  299. </script>
  300. {/strip}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement