Advertisement
Igor150195

cart

Nov 12th, 2024
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Smarty 16.63 KB | None | 0 0
  1. {assign var=params_count value=1}
  2. {if $e.params|@count}
  3.     {assign var=params_count value=$e.params|@count}
  4. {/if}
  5.  
  6. {if isset($products[$e.kind_id])}
  7.     {assign var="product" value=$products[$e.kind_id]}
  8. {else}
  9.     {assign var="product" value=$products[$k]}
  10. {/if}
  11.  
  12. {section loop=$params_count name=co}
  13.     {if $site.reg.shop2.cf_margin_price_enabled && isset($e.position)}
  14.         {assign var=pos value=$e.position[$k]} {*позиция*}
  15.         {assign var=key value=$k} {*уникальный ключ итема*}
  16.     {else}
  17.         {assign var=pos value=$smarty.section.co.index} {*позиция*}
  18.         {assign var=key value=$smarty.section.co.index} {*ключ итема*}
  19.     {/if}
  20.     <div class="cart-products__item">
  21.         <div class="cart-products__left">
  22.             <div class="cart-product">
  23.                 <div class="cart-product__left">
  24.                     {assign var="cart_image_width" value=$shop2.my.cart_image_width|default:240}
  25.                     {assign var="cart_image_height" value=$shop2.my.cart_image_height|default:240}
  26.                        
  27.                     <div class="gr-product-image{if !$product.image_filename} no-image{/if}{if $shop2.my.gr_images_size}{if $site.gr_shop_images.images_size=="2"} gr_image_3x4{elseif $site.gr_shop_images.images_size=="3"} gr_image_2x3{elseif $site.gr_shop_images.images_size=="4"} gr_image_4x3{elseif $site.gr_shop_images.images_size=="5"} gr_image_3x2{else} gr_image_1x1{/if}{/if}">
  28.                         <a href="{get_seo_url mode="product" alias=$product.alias}">
  29.                             {if $product.image_filename}
  30.                                 <img src="{s3_img width=$cart_image_width height=$cart_image_height src=$product.image_filename method=$shop2.my.s3_img_method}"{if $site.gr_shop_images.images_view} class="gr_image_contain"{/if} alt="{$product.name}" />
  31.                             {/if}
  32.                         </a>
  33.                     </div>
  34.                 </div>
  35.  
  36.                 <div class="cart-product__right">
  37.                     <div class="cart-details">
  38.                        
  39.                         <div class="gr-product-name">
  40.                             <a {if $product.alias != "#"}href="{get_seo_url mode="product" alias=$product.alias}"{/if}>{$product.name}</a>
  41.                         </div>
  42.  
  43.                         {include file="global:shop2.2.131-product-article.tpl"}
  44.                        
  45.                         {*if $gift}
  46.                             <div class="cart-product-action"><strong>{#SHOP2_GIFT#}</strong></div>
  47.                         {/if*}
  48.    
  49.                         {assign var="stock_status" value=$product.stock_status}
  50.    
  51.                         {if $stock_status == 'not_enough'}
  52.                             <div class="cart-product-action">
  53.                                 <strong>{#SHOP2_PRODUCT_NOT_ENOUGH#|sprintf:$product.amount|htmlspecialchars}</strong>
  54.                                 <div class="shop2-tooltip" data-tooltip="{#SHOP2_PRODUCT_NOT_ENOUGH_TOOLTIP#|sprintf:$product.amount|htmlspecialchars}"></div>
  55.                             </div>
  56.                         {elseif $stock_status == 'deleted'}
  57.                             {if !$gift}
  58.                                 <div class="cart-product-action">
  59.                                     <strong>{#SHOP2_PRODUCT_DELETED#}</strong>
  60.                                     <div class="shop2-tooltip" data-tooltip="{#SHOP2_PRODUCT_DELETED_TOOLTIP#|htmlspecialchars}"></div>
  61.                                 </div>
  62.                             {/if}
  63.                         {/if}
  64.        
  65.                         {if $e.discounts_applied|@count}
  66.                             <div class="cart-product-action">
  67.                                 <strong>{#SHOP2_ACTIONS#}:</strong>
  68.                                 {foreach from=$e.discounts_applied item=discount name=product_discounts}
  69.                                     {$discounts.$discount.discount_name}{if !$smarty.foreach.product_discounts.last}, {/if}
  70.                                     {if $cart.all.$key.promo && $discounts.$discount.discount_kind == 8}
  71.                                         <span class="discount-promo">({if $cart.all.$key.promo.main}{#SHOP2_PROMO_MAIN_TITLE#}{else}{#SHOP2_PROMO_TITLE#}{/if})</span>
  72.                                     {/if}
  73.                                 {/foreach}
  74.                             </div>
  75.                         {/if}
  76.                        
  77.                         {if $cart.bonusParams.enabled && $cart.bonusParams.is_accrual && $product.bonus_value > 0 && !$cart.bonusParams.accrual_mode && !$gift}
  78.                             {if $e.params[$key].amount}
  79.                                 {assign var=bonus_total_value value=$e.params[$key].amount*$product.bonus_value}
  80.                             {else}
  81.                                 {assign var=bonus_total_value value=$e.amount*$product.bonus_value}
  82.                             {/if}
  83.                            
  84.                             <div class="bonus-param">
  85.                                 <span class="bonus-param__title">
  86.                                     <i class="gr-mask-icon">&nbsp;</i>{#SHOP2_PRODUCT_BONUS#}<span>:</span>
  87.                                 </span>
  88.                                 <span class="bonus-param__value">{$bonus_total_value}</span>
  89.                             </div>
  90.                         {/if}
  91.                     </div>
  92.                    
  93.                     <div class="cart-params">
  94.                         {if $shop2.my.gr_cart_options_more_btn!=""}
  95.                             {if $product.meta|@count>0 || $e.params[$key]|@count > 0 || $product.vendor_name !=''}
  96.                                 <div class="cart-params__more">
  97.                                     <div class="{$shop2.my.gr_params_more_btn_class|default:'product-more-btn'} cart-params__more-btn" data-text="{$shop2.my.gr_cart_options_more_btn}">
  98.                                         <span>
  99.                                             <ins>
  100.                                                 {$shop2.my.gr_cart_options_more_btn}
  101.                                             </ins>
  102.                                             <i class="gr-mask-icon">&nbsp;</i>{*icon_shop_options_down*}
  103.                                         </span>
  104.                                     </div>
  105.                                 </div>
  106.                             {/if}
  107.                         {/if}
  108.                         <div class="cart-params__body">
  109.                             <ul class="cart-params__list">
  110.                                 {if $product.vendor_name !=''}
  111.                                     <li class="gr_vendor_name">
  112.                                         <div class="cart-params__item">
  113.                                             <div class="cart-params__title">{$shop2.my.vendor_alias|default:#SHOP2_VENDOR#}</div>
  114.                                             <div class="cart-params__value">
  115.                                                 <a href="{get_seo_url uri_prefix=$shop2.uri mode="vendor" alias=$product.vendor_alias}">{$product.vendor_name}</a>
  116.                                             </div>
  117.                                         </div>
  118.                                     </li>
  119.                                 {/if}
  120.                                 {foreach from=$product.meta item=op key=kop}
  121.                                     {if $op}
  122.                                         {assign var="option" value=$custom_fields.$kop}
  123.                                         {if $option.in_cart || !isset($option.in_cart)} {* проверка *}
  124.  
  125.                                             {if $option.type == 'text' || $option.type == 'int' || $option.type == 'float' || $option.type == 'textarea' || $option.type == 'html'}
  126.                                                 <li class="gr_type_text">
  127.                                                     <div class="cart-params__item">
  128.                                                         <div class="cart-params__title">{$option.name}:</div>
  129.                                                         <div class="cart-params__value">{$op} {$option.unit|default:""}</div>
  130.                                                     </div>
  131.                                                 </li>
  132.                                             {elseif $option.type == 'checkbox'}
  133.                                                 <li class="gr_type_checkbox">
  134.                                                     <div class="cart-params__item">
  135.                                                         <div class="cart-params__title">{$option.name}:</div>
  136.                                                         <div class="cart-params__value">{if $op == 1}{#SHOP2_YES#}{else}{#SHOP2_NO#}{/if}</div>
  137.                                                     </div>
  138.                                                 </li>
  139.                                             {elseif $option.type == 'color'}
  140.                                                 <li class="gr_type_color">
  141.                                                     <div class="cart-params__item">
  142.                                                         <div class="cart-params__title">{$option.name}:</div>
  143.                                                         <div class="cart-params__value">
  144.                                                             <ul class="shop2-color-pick">
  145.                                                                 <li class="active-color"><span style="background-color: {$op};">&nbsp;</span></li>
  146.                                                             </ul>
  147.                                                         </div>
  148.                                                     </div>
  149.                                                 </li>
  150.                                             {elseif $option.type == 'select'}
  151.                                                 <li class="gr_type_select">
  152.                                                     <div class="cart-params__item">
  153.                                                         <div class="cart-params__title">{$option.name}:</div>
  154.                                                         <div class="cart-params__value">{$option.options.$op}</div>
  155.                                                     </div>
  156.                                                 </li>
  157.                                             {elseif $option.type == 'multiselect' && !$product.cf.$kop.not_mod}
  158.                                                 <li class="gr_type_multiselect">
  159.                                                     <div class="cart-params__item">
  160.                                                         <div class="cart-params__title">{$option.name}:</div>
  161.                                                         <div class="cart-params__value">
  162.                                                             {foreach from=$op item=o_v  key=o_k name=foo}
  163.                                                                 {$option.options.$o_v}{if !$smarty.foreach.foo.last}, {/if}
  164.                                                             {/foreach}
  165.                                                         </div>
  166.                                                     </div>
  167.                                                 </li>
  168.                                             {elseif $option.type == 'image2'}
  169.                                                 <li class="gr_type_image2">
  170.                                                     <div class="cart-params__item">
  171.                                                         <div class="cart-params__title">{$option.name}:</div>
  172.                                                         <div class="cart-params__value gr_cart_param_img">
  173.                                                             <a href="{$IMAGES_DIR}{$op.filename}">
  174.                                                                 {assign var="cart_other_image_width" value=$shop2.my.cart_other_image_width|default:225}
  175.                                                                 {assign var="cart_other_image_height" value=$shop2.my.cart_other_image_height|default:225}
  176.                                                                 <img src="{s3_img width=$cart_other_image_width height=$cart_other_image_height src=$op.filename method=$shop2.my.s3_img_method}" />
  177.                                                             </a>
  178.                                                         </div>
  179.                                                     </div>
  180.                                                 </li>
  181.                                             {elseif $option.type == 'file2'}
  182.                                                 <li class="gr_type_file2">
  183.                                                     <div class="cart-params__item">
  184.                                                         <div class="cart-params__title">{$option.name}:</div>
  185.                                                         <div class="cart-params__value">
  186.                                                             <a href="{$FILES_DIR}{$op.filename}" class="{$shop2.my.gr_file|default:'gr-btn gr-btn-3 gr-btn-sm gr_btn_i_r_2'} file">
  187.                                                                 <span>
  188.                                                                     {#SHOP2_DOWNLOAD#}
  189.                                                                     <i class="gr-mask-icon">&nbsp;</i>{*icon_shop_file*}
  190.                                                                 </span>
  191.                                                             </a>
  192.                                                         </div>
  193.                                                     </div>
  194.                                                 </li>
  195.                                             {elseif ($option.type == 'color_ref' || $option.type == 'color2') && !$product.cf.$kop.not_mod}
  196.                                                 <li class="gr_type_color_ref">
  197.                                                     <div class="cart-params__item">
  198.                                                         <div class="cart-params__title">{$option.name}:</div>
  199.                                                         <div class="cart-params__value">
  200.                                                             {include file="global:shop2.2.131-color-ext.tpl" location="cart"}
  201.                                                         </div>
  202.                                                     </div>
  203.                                                 </li>
  204.                                             {elseif $option.type == 'coordinates'}
  205.                                                 {if $op.x}
  206.                                                     <li class="gr_type_coordinates">
  207.                                                         <div class="cart-params__item">
  208.                                                             <div class="cart-params__title">{$option.name}:</div>
  209.                                                             <div class="cart-params__value">
  210.                                                                 <a href="#" class="shop2-map-link" data-map="{$op|@json_encode|htmlspecialchars}" data-map-type="{$option.map_type|htmlspecialchars}">{$op.title|default:$product.name|htmlspecialchars}</a>
  211.                                                             </div>
  212.                                                         </div>
  213.                                                     </li>
  214.                                                 {/if}
  215.                                             {/if}
  216.                                         {/if}
  217.                                     {/if}
  218.                                 {/foreach}
  219.  
  220.                                 {foreach from=$e.params[$key] item=o_v key=o_k}
  221.                                     {if $o_k!='amount' && $o_v}
  222.                                    
  223.                                         {assign var="option" value=$custom_fields.$o_k}
  224.                                         {assign var="parts" value=": "|explode:$o_v}
  225.                                        
  226.                                         {if $option.in_cart || !isset($option.in_cart)} {* проверка *}
  227.                                             <li class="gr-field-style">
  228.                                                 <div class="cart-params__item">
  229.                                                     {*доп. поля с выбором при заказе*}
  230.                                                     {if $product.cf.$o_k.not_mod}
  231.                                                         {include file="global:shop2.2.131-product-options-not-mod.tpl"}
  232.                                                     {else}
  233.                                                         {if $parts|@count == 2 && $option.type == 'color_ref' && $product.cf.$o_k.not_mod}
  234.                                                             <div class="cart-params__title">{$parts[0]}: </div>
  235.                                                             <div class="cart-params__value">
  236.                                                                 {include file="global:shop2.2.131-color-ext.tpl" location="cart" op=$parts[1]}
  237.                                                             </div>
  238.                                                         {else}
  239.                                                             <div class="cart-params__title">{$o_v}</div>
  240.                                                         {/if}
  241.                                                         <input name="amounts[{$e.kind_id}][{$pos}][{$o_k}]" type="hidden" value="{$o_v|htmlspecialchars}" />
  242.                                                     {/if}
  243.                                                 </div>
  244.                                             </li>
  245.                                         {/if}
  246.                                     {/if}
  247.                                 {/foreach}
  248.                             </ul>
  249.                         </div>
  250.                     </div>
  251.                    
  252.                 </div>
  253.             </div>
  254.         </div>
  255.         <div class="cart-products__right">
  256.            
  257.            
  258.            
  259.             <div class="cart-price">
  260.                 {if $e.is_pre_order}
  261.                     <div class="cart-price__preorder">
  262.                         {$shop2.my.preorder_alias|default:#SHOP2_PREORDER2#}
  263.                     </div>
  264.                 {elseif $shop2.price_on_request && $e.price == 0}
  265.                     <div class="cart-price__preorder">
  266.                         {$shop2.text_price_on_request|default:#SHOP2_PRICE_ON_REQUEST#|l}
  267.                     </div>
  268.                 {else}
  269.                     <div class="cart-price__current">
  270.                         <ins>{$e.price|price_convert}</ins> <span>{$currency.currency_shortname}</span>
  271.                     </div>
  272.                 {/if}
  273.             </div>
  274.            
  275.            
  276.            
  277.             <div class="cart-amount{if $gift} cart-amount--gift{/if}">
  278.                 {if $gift}
  279.                     {*<div class="cart-amount__gift-amount">{$e.amount}</div>*}
  280.                 {else}
  281.                     {assign var="amount_min" value=$product.params.amount_min}
  282.                     {if $product.params.amount_min !="" || $product.params.amount_multiplicity !=""}
  283.                         {assign var="multiplicity" value=$product.params.amount_multiplicity|default:1}
  284.                     {/if}
  285.                     {if !$amount_min}{if $multiplicity}{assign var=amount_min value=$multiplicity}{else}{assign var="amount_min" value=$shop2.my.amount_default|default:1}{/if}{/if}
  286.                     <div class="cart-product-amount">
  287.                         <div class="shop2-product-amount gr_cart_amount">
  288.                             <button type="button" class="amount-minus">
  289.                                 <i class="gr-mask-icon">&nbsp;</i>
  290.                             </button>
  291.                                 {assign var="max" value=$product.amount}
  292.                                 {if ($shop2.product_amount_required == 0 && $product.pre_order == 0) || $product.pre_order == 4}
  293.                                     {assign var="max" value=0}
  294.                                 {/if}
  295.                                 <input {*if $shop2.product_amount_required=='1' || $product.buy_mode==1 || $shop2.product_amount_required=='5' || $product.buy_mode==5*}data-max="{$max}"{*/if*} data-kind="{$product.kind_id}" name="{if $e.params}amounts[{$e.kind_id}][{$pos}][amount]{else}amounts[{$e.kind_id}]{/if}" type="text" maxlength="4" value="{if $e.params[$key].amount}{$e.params[$key].amount}{else}{$e.amount}{/if}" data-min="{$amount_min}" data-multiplicity="{$multiplicity}" />
  296.                             <button type="button" class="amount-plus">
  297.                                 <i class="gr-mask-icon">&nbsp;</i>
  298.                             </button>
  299.                         </div>
  300.                         {if $multiplicity > 0}
  301.                             <div class="amount-min">
  302.                                 {#FILTER_INT_FROM#|mb_strtolower} {$amount_min} {$product.params.unit}
  303.                                 {#FILTER_BY#|mb_strtolower} {if $multiplicity}{$multiplicity}{else}1{/if} {$product.params.unit}
  304.                             </div>
  305.                         {/if}
  306.                     </div>
  307.                 {/if}
  308.             </div>
  309.            
  310.            
  311.             {if $gift}
  312.                 <div class="cart-sum">
  313.                     <div class="cart-sum--gift">{if $e.amount>1}{$e.amount} {/if}{#SHOP2_AS_A_GIFT#}</div>
  314.                 </div>
  315.             {else}
  316.                 <div class="cart-sum">
  317.                     {if $e.is_pre_order}
  318.                         <div class="cart-price__preorder">
  319.                             {$shop2.my.preorder_alias|default:#SHOP2_PREORDER2#}
  320.                         </div>
  321.                     {elseif $shop2.price_on_request && $e.price == 0}
  322.                         <div class="cart-price__preorder">
  323.                             {$shop2.text_price_on_request|default:#SHOP2_PRICE_ON_REQUEST#|l}
  324.                         </div>
  325.                     {else}
  326.                    
  327.                         {if $e.custom_params[$key].amount}
  328.                             {assign var="total_sum" value=$e.custom_params[$key].total}
  329.                         {else}
  330.                             {if count($discounts) > 0}
  331.                                 {assign var="total_sum" value=$e.discount_sum}
  332.                             {else}
  333.                                 {assign var="total_sum" value=$e.sum}
  334.                             {/if}
  335.                         {/if}
  336.                        
  337.                         <div class="cart-sum__price">
  338.                             {$total_sum|price_convert} <span>{$currency.currency_shortname}</span>
  339.                         </div>                         
  340.                        
  341.                        
  342.                         {assign var=current_old_price value=$e.price}
  343.                         {if $e.params[$key].amount}
  344.                             {assign var=current_amount value=$e.params[$key].amount}
  345.                         {else}
  346.                             {assign var=current_amount value=$e.amount}
  347.                         {/if}
  348.                         {assign var=total_old_price value=`$current_old_price*$current_amount`}
  349.  
  350.                         {if !$e.is_pre_order && ($total_old_price > $total_sum)}
  351.                             <div class="cart-sum__old-price">
  352.                                 Цена без скидок {$total_old_price|price_convert} {$currency.currency_shortname}
  353.                             </div>
  354.                         {/if}
  355.                         {*if !$e.is_pre_order}
  356.                             {assign var=formattedPrice value=$e.price}
  357.                             {if $e.params[$key].amount}
  358.                                 {assign var=formattedAmount value=$e.params[$key].amount}
  359.                             {else}
  360.                                 {assign var=formattedAmount value=$e.amount}
  361.                             {/if}
  362.                             {assign var=cart_sum_discount value=`$formattedPrice*$formattedAmount`}
  363.                            
  364.                             <div class="cart-sum__old-price">
  365.                                 {$cart_sum_discount|price_convert} {$currency.currency_shortname}
  366.                             </div>
  367.                         {/if*}
  368.                     {/if}
  369.                 </div>
  370.                 <div class="cart-delete">
  371.                     {strip}
  372.                     <a class="cart-delete-btn" title="{#SHOP2_REMOVE#}" href="{$shop2.uri}?mode=cart&action=del&kind_id={$e.kind_id}" data-id="
  373.                         {if $e.params}
  374.                             {ldelim}'{$e.kind_id}':{ldelim}
  375.                                 {foreach from=$e.params[$key] item=o_v key=o_k name=foo}
  376.                                     {if $o_k == 'amount'}
  377.                                         'amount': '0'
  378.                                     {else}
  379.                                         '{$o_k|htmlspecialchars}':'{$o_v|htmlspecialchars}'
  380.                                     {/if}
  381.                                     {if !$smarty.foreach.foo.last}, {/if}
  382.                                 {/foreach}
  383.                             {rdelim}{rdelim}
  384.                         {else}
  385.                             {$e.kind_id}
  386.                         {/if}">
  387.                         <span>{$shop2.my.gr_cart_delete_text|default:#SHOP2_REMOVE#}</span>
  388.                         <i class="gr-mask-icon">&nbsp;</i>
  389.                     </a>
  390.                     {/strip}
  391.                 </div>
  392.             {/if}
  393.         </div>
  394.     </div>
  395. {/section}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement