valeraplusplus

shop2.v2-product-options.tpl

May 30th, 2022 (edited)
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Smarty 17.24 KB | None | 0 0
  1. {assign var="stripeClass" value="even"}
  2. {capture assign="c_vendor"}{strip}
  3.     {if !$shop2.my.hide_vendor_in_list || $mode == 'product'}
  4.  
  5.         {if $product.vendor_name}
  6.             <tr class="even">
  7.                 <th>{$shop2.my.vendor_alias|default:#SHOP2_VENDOR#}</th>
  8.                 <td>
  9.                     {if !$shop2.my.hide_vendor_name}
  10.                         <a href="{get_seo_url uri_prefix=$shop2.uri mode="vendor" alias=$product.vendor_alias}">{$product.vendor_name}</a>
  11.                     {/if}
  12.                    
  13.                     {if $product.vendor_filename && $shop2.my.show_vendor_image}
  14.                         <div class="shop2-vendor">
  15.                             <a href="{get_seo_url uri_prefix=$shop2.uri mode="vendor" alias=$product.vendor_alias}">
  16.                                 {assign var="width" value=$shop2.my.vendor_image_width|default:80}
  17.                                 {assign var="height" value=$shop2.my.vendor_image_height|default:40}
  18.                                 <img src="{s3_img src=$product.vendor_filename width=$width height=$height method="r"}" alt="{$product.vendor_name}" />
  19.                             </a>
  20.                         </div>
  21.                     {/if}
  22.                 </td>
  23.             </tr>
  24.         {/if}
  25.  
  26.     {/if}
  27. {/strip}{/capture}
  28.  
  29. {capture assign="c_dimensions"}{strip}
  30.     {if $shop2.my.show_dimensions_in_list}
  31.  
  32.         {if $product.length}
  33.             {assign var="stripeClass" value="odd"}
  34.             <tr class="odd">
  35.                 <th>{#SHOP2_PRODUCT_LENGTH#}</th>
  36.                 <td>
  37.                     {$product.length}
  38.                 </td>
  39.             </tr>
  40.         {/if}
  41.  
  42.         {if $product.width}
  43.             {assign var="stripeClass" value="even"}
  44.             <tr class="even">
  45.                 <th>{#SHOP2_PRODUCT_WIDTH#}</th>
  46.                 <td>
  47.                     {$product.width}
  48.                 </td>
  49.             </tr>
  50.         {/if}
  51.  
  52.         {if $product.height}
  53.             <tr class="odd">
  54.                 {assign var="stripeClass" value="odd"}
  55.                 <th>{#SHOP2_PRODUCT_HEIGHT#}</th>
  56.                 <td>
  57.                     {$product.height}
  58.                 </td>
  59.             </tr>
  60.         {/if}
  61.  
  62.     {/if}
  63. {/strip}{/capture}
  64.  
  65. {if $shop2.my.hide_options_in_list && $mode != 'product'}
  66.    
  67.     {*не показываем параметры в списке, но мультиселекты с not_mod там должны быть - чтобы параметр добавлялся в корзину*}
  68.     {if $product_refs[$product.product_id] && $meta}
  69.         {foreach from=$product_refs[$product.product_id] item=o_values key=o_name}
  70.             {assign var="option" value=$meta.$o_name}
  71.             {if $option.in_card}
  72.                 {if $option.type == 'multiselect'}
  73.                     {assign var="values" value=$product.meta[$o_name]}
  74.                     {if $values}
  75.                         {assign var="all_values" value=$meta.$o_name.options}
  76.                         {if $product.cf.$o_name.not_mod}
  77.                             {foreach from=$values item=value key=k name=foo}
  78.                                 {if $smarty.foreach.foo.first}
  79.                                     <input type="hidden" name="{$o_name}" class="additional-cart-params" value="{$option.name}: {$all_values.$value}">
  80.                                 {/if}
  81.                             {/foreach}
  82.                         {/if}
  83.                     {/if}
  84.                 {/if}
  85.             {/if}
  86.         {/foreach}
  87.     {/if}
  88.  
  89.     {if $c_vendor}
  90.         <table class="shop2-product-options">{$c_vendor}</table>
  91.     {/if}
  92.  
  93. {else} {*-----------------------------------------------------------------------------------------*}
  94.  
  95.     {include file="global:shop2.v2-product-compare-btn.tpl"}
  96.    
  97.     {if $shop2.json.favorite_products == 1 && $shop2.view=="list"}
  98.         <div class="favorite_btn_wrapper">
  99.             <label class="favorite_btn" {if $product.is_favorite}style="display:none;"{/if}>{'ADD_TO_FAVORITE'|l}</label>
  100.             <label class="favorite_btn_active" {if !$product.is_favorite}style="display:none;"{/if}><span class="icon"></span><a href="{get_seo_url mode='favorites' uri_prefix=$shop2.uri}">{'FORUM_FAVORITES'|l} (<span>{$shop2.favorite_count}</span>)</a></label>
  101.         </div>
  102.     {/if}
  103.    
  104.     {capture assign="c_options"}{strip}
  105.        
  106.         {$c_vendor}
  107.  
  108.         {$c_dimensions}
  109.  
  110.         {if $product_refs[$product.product_id] && $meta}
  111.             {foreach from=$product_refs[$product.product_id] item=o_values key=o_name}
  112.                 {assign var="option" value=$meta.$o_name}
  113.  
  114.                 {if $option.type != 'html' && (($mode == 'product' && $option.in_detail) || ($mode != 'product' && $product.cf.$o_name.in_list))}
  115.                 <tr class="{if $stripeClass == "even"}{cycle values="odd,even"}{else}{cycle values="even,odd"}{/if}{if $option.type == 'color'} type-color{elseif $option.type == 'image2'} type-texture{elseif $option.type == 'select'} type-select{/if}">
  116.                     {if $option.type == 'color'}
  117.        
  118.                         {* цвет ------------------------------- *}
  119.                         {if $o_values}
  120.                            
  121.                                 <th>{$option.name}</th>
  122.                                 <td>
  123.                                     <ul class="shop2-color-pick">
  124.                                         {foreach from=$o_values item=o_kinds key=o_color}
  125.                                             <li data-kinds="{','|implode:$o_kinds}" data-name="{$o_name}" data-value="{$o_color|escape}" class="{if $o_color==$product.meta[$o_name]}active-color{/if} shop2-cf">
  126.                                                 <span style="background-color: {$o_color};">&nbsp;</span>
  127.                                             </li>
  128.                                         {/foreach}
  129.                                     </ul>
  130.                                 </td>
  131.                            
  132.                         {/if}
  133.                         {* /----------------------------------- *}
  134.                    
  135.                     {elseif $option.type=='select'}
  136.  
  137.                         {* список ----------------------------- *}
  138.                         {if $o_values}
  139.                             {assign var="all_values" value=$meta.$o_name.options}
  140.                             {assign var="value" value=$product.meta[$o_name]}
  141.                             {if $o_values|@count == 1}
  142.                                 {* одно значение *}
  143.                                 {*assign var="kind_id" value=$o_values.$value.0}
  144.                                 {if $kind_id == $product.kind_id && $value*}
  145.                                 {if $value}
  146.                                    
  147.                                         <th>{$option.name}</th>
  148.                                         <td>{$all_values.$value}</td>
  149.                                    
  150.                                 {/if}
  151.                                 {* /------------ *}
  152.                             {else}
  153.                                 {* больше *}
  154.                                
  155.                                     <th>{$option.name}</th>
  156.                                     <td>
  157.                                         <select name="cf_{$o_name}" class="shop2-cf">
  158.                                             {foreach from=$o_values item=o_kinds key=o_value}
  159.                                                 <option  value="{$o_value}" data-name="{$o_name}" data-value="{$o_value}" data-kinds="{','|implode:$o_kinds}" {if $value==$o_value}selected="selected"{/if}>{$all_values.$o_value}</option>
  160.                                             {/foreach}
  161.                                         </select>
  162.                                     </td>
  163.                                
  164.                                 {* /------------ *}
  165.                             {/if}
  166.                         {/if}
  167.                         {* /----------------------------------- *}
  168.                    
  169.  
  170.                     {elseif $option.type == 'multiselect'}
  171.  
  172.                         {* мультиселект --------------------------- *}
  173.                         {assign var="values" value=$product.meta[$o_name]}
  174.                         {if $values}
  175.                             {assign var="all_values" value=$meta.$o_name.options}
  176.                            
  177.                                 <th>{$option.name}</th>
  178.                                 <td>
  179.                                     {*if $option.not_mod}
  180.                                             <select name="{$o_name}" class="additional-cart-params">
  181.                                                 {foreach from=$values item=value key=k name=foo}
  182.                                                 <option value="{$option.name}: {$all_values.$value}">{$all_values.$value}</option>
  183.                                                 {/foreach}
  184.                                             </select>                                      
  185.                                     {else}
  186.                                         {foreach from=$values item=value key=k name=foo}
  187.                                             {$all_values.$value}
  188.                                             {if !$smarty.foreach.foo.last}, {/if}
  189.                                         {/foreach}
  190.                                     {/if*}
  191.                                     {if $product.cf.$o_name.not_mod}
  192.                                         {*if $shop2.calc_custom_fields}
  193.                                         {Наценка для доп. полей}
  194.                                             <select name="{$o_name}" class="additional-cart-params js-calc-custom-fields">
  195.                                                 {foreach from=$values item=value key=k name=foo}
  196.                                                 <option value="{$option.name}: {$all_values.$value}" data-item-id="{$value}">{$product.cf_select[$o_name][$value]}</option>
  197.                                                 {/foreach}
  198.                                             </select>                                        
  199.                                         {/--------------}
  200.                                         {else*}
  201.                                         {* без модификаций *}
  202.                                             {assign var="default_val" value=$product_refs_data[$product.product_id][$o_name][$product.kind_id].default}
  203.                                             <select name="{$o_name}" class="additional-cart-params">
  204.                                                 {foreach from=$values item=value key=k name=foo}
  205.                                                     {if $default_val == $value}
  206.                                                         {assign var="default_active" value=true}
  207.                                                     {else}
  208.                                                         {assign var="default_active" value=false}
  209.                                                     {/if}
  210.                                                     <option value="{$option.name}: {$all_values.$value}"{if $default_active} selected="selected"{/if}>{$all_values.$value}</option>
  211.                                                 {/foreach}
  212.                                             </select>
  213.                                         {* /-------------- *}                                        
  214.                                         {*/if*}
  215.                                     {else}
  216.                                         {foreach from=$values item=value key=k name=foo}
  217.                                             {$all_values.$value}
  218.                                             {if !$smarty.foreach.foo.last}, {/if}
  219.                                         {/foreach}
  220.                                     {/if}
  221.                                 </td>
  222.                            
  223.                             {/if}
  224.                         {* /----------------------------------- *}
  225.                    
  226.  
  227.                     {elseif $option.type == 'file2'}
  228.  
  229.                         {* файл ------------------------------- *}
  230.                         {assign var="filename" value=$product.meta[$o_name].filename}
  231.                         {if $filename || $product.cf.$o_name.not_mod}
  232.  
  233.                             <th>{$option.name}</th>
  234.                             <td>
  235.                                 {if $product.cf.$o_name.not_mod}
  236.                                     {if $product.meta[$o_name]}
  237.                                         <a href="/u/{$product.meta[$o_name]}" target="_blank">{$product.meta[$o_name]}</a> <span class="delete-upload-file shop2-btn" onclick="shop2.product.deleteUploadProduct('{$o_name}', {$product.kind_id})">{#LINKS_DELETE#}</span>
  238.                                     {else}
  239.                                         <input type="file" id="_upload_{$o_name}{$product.kind_id}" class="shop2-upload-file"><span class="shop2-btn shop2-upload-btn" onclick="shop2.product.uploadProduct('{$o_name}', {$product.kind_id})">{#DOWNLOAD#}</span>
  240.                                     {/if}
  241.                                     <input type="hidden" name="{$o_name}" class="additional-cart-params" value="{$option.name}: {$product.meta[$o_name]}"/>
  242.                                 {else}
  243.                                 <a href="{$FILES_DIR}{$filename}" class="file"><span class="icon"></span>{#SHOP2_DOWNLOAD#}</a>
  244.                                 {/if}
  245.                             </td>
  246.  
  247.                         {/if}
  248.                         {* /----------------------------------- *}
  249.  
  250.                     {elseif $option.type == 'image2'}
  251.  
  252.                         {* картинка --------------------------- *}
  253.                         {capture assign="images"}{strip}
  254.                             {foreach from=$o_values item=o_kinds key=o_value}
  255.                                 {if $o_value && $cf_images.$o_value}
  256.                                     <li data-kinds="{','|implode:$o_kinds}" data-name="{$o_name}" data-value="{$o_value|escape}" class="{if $o_value == $product.meta[$o_name].image_id}active-texture{/if} shop2-cf">
  257.                                         <img src="{s3_img width=30 height=30 src=$cf_images.$o_value method=$shop2.my.s3_img_method}" alt="{$option.name}" />
  258.                                     </li>
  259.                                 {/if}
  260.                             {/foreach}
  261.                         {/strip}{/capture}
  262.  
  263.                         {if $images || $product.cf.$o_name.not_mod}
  264.  
  265.                             <th>{$option.name}</th>
  266.                             <td>
  267.                                 {if $product.cf.$o_name.not_mod}
  268.                                     {if $product.meta[$o_name]}
  269.                                         <img src="{s3_img src=$product.meta[$o_name] dir="u" width=90 height=90}" alt=""><span class="delete-upload-file shop2-btn" onclick="shop2.product.deleteUploadProduct('{$o_name}', {$product.kind_id})">{#LINKS_DELETE#}</span>
  270.                                     {else}
  271.                                         <input type="file" accept="image/*" id="_upload_{$o_name}{$product.kind_id}" class="shop2-upload-file"><span class="shop2-btn shop2-upload-btn" onclick="shop2.product.uploadProduct('{$o_name}', {$product.kind_id}, true, {ldelim}'width':90,'height':90{rdelim})">{#DOWNLOAD#}</span>
  272.                                     {/if}
  273.                                     <input type="hidden" name="{$o_name}" class="additional-cart-params" value="{$option.name}: {$product.meta[$o_name]}" />
  274.                                 {else}
  275.                                 <ul class="shop2-texture-pick">
  276.                                     {$images}
  277.                                 </ul>
  278.                                 {/if}
  279.                             </td>
  280.  
  281.                         {/if}
  282.                         {* /----------------------------------- *}
  283.  
  284.                     {elseif $option.type == 'textarea'}
  285.  
  286.                         {* текст --------------------------- *}
  287.                         {assign var="text" value=$product.meta[$o_name]}
  288.                         {if $text || $text === '0' || $product.cf.$o_name.not_mod}
  289.  
  290.                             <th>{$option.name}</th>
  291.                             <td>
  292.                                 {if $product.cf.$o_name.not_mod}
  293.                                     <input type="text" name="{$o_name}" class="additional-cart-params">
  294.                                 {else}
  295.                                 {$text}
  296.                                 {/if}
  297.                             </td>
  298.  
  299.                         {/if}
  300.                         {* /----------------------------------- *}
  301.  
  302.                     {elseif $option.type == 'checkbox'}
  303.  
  304.                         {* галочка --------------------------- *}
  305.                         {assign var="checked" value=$product.meta[$o_name]}
  306.                         {if $checked}
  307.                             <th>{$option.name}</th>
  308.                             <td>
  309.                                 {if $checked}{#SHOP2_YES#}{else}{#SHOP2_NO#}{/if}
  310.                             </td>
  311.                         {/if}
  312.                         {* /----------------------------------- *}
  313.  
  314.                     {elseif $option.type == 'text' || $option.type=='int' || $option.type=='float'}
  315.                        
  316.                         {* строка или число ------------------ *}
  317.                         {if $product.meta[$o_name] || $product.meta[$o_name] === '0' || $product.cf.$o_name.not_mod}
  318.  
  319.                                 <th>{$option.name}</th>
  320.                                 <td>
  321.                                 {if $product.cf.$o_name.not_mod}
  322.                                     <input type="text" name="{$o_name}" class="additional-cart-params">
  323.                                 {else}
  324.                                     {$product.meta[$o_name]} {$option.unit}
  325.                                 {/if}
  326.                                 </td>
  327.                         {/if}
  328.                         {* /---------------------------------- *}
  329.  
  330.                     {elseif $option.type == 'color_ref' || $option.type == 'color2'}
  331.                        
  332.                         {assign var="values" value=$product.meta[$o_name]}
  333.  
  334.                         {if $values|@count}
  335.                             <th>{$option.name}</th>
  336.                             <td>
  337.                                 {include file="global:shop2.v2-color-ext.tpl" location="product"}
  338.                             </td>
  339.                         {/if}
  340.                     {elseif $option.type == 'coordinates'}
  341.  
  342.                         {assign var="coords" value=$product.meta[$o_name]}
  343.  
  344.                         {if $coords.x}
  345.                             <th>{$option.name}</th>
  346.                             <td>
  347.                                 <a href="#" class="shop2-map-link" data-map="{$coords|@json_encode|htmlspecialchars}" data-map-type="{$option.map_type|htmlspecialchars}">{$coords.title|default:$product.name|htmlspecialchars}</a>
  348.                             </td>
  349.                         {/if}
  350.                     {elseif $option.type == 'date'}
  351.  
  352.                         {* дата ------------------ *}
  353.                         {if $product.meta[$o_name] || $product.cf.$o_name.not_mod}
  354.  
  355.                                 <th data-test="calendar">{$option.name}</th>
  356.                                 <td>
  357.                                     {if $product.cf.$o_name.not_mod}
  358.                                         <input type="text" size="14" name="{$o_name}" class="additional-cart-params input-calendar shop2-date">
  359.                                     {else}
  360.                                         {$product.meta[$o_name]} {$option.unit}
  361.                                     {/if}
  362.                                 </td>
  363.                         {/if}
  364.                         {* /---------------------------------- *}
  365.                     {elseif $option.type == 'date_interval'}
  366.                         {* интервал дат ------------------ *}
  367.                        
  368.                         {if $product.meta[$o_name] || $product.cf.$o_name.not_mod}
  369.  
  370.                                 <th>{$option.name}</th>
  371.                                 <td>
  372.                                     {if $product.cf.$o_name.not_mod}
  373.                                         <div class="shop2-date-from">
  374.                                             <span>{#SHOP2_FROM#}</span>
  375.                                             <input type="text" size="14" name="{$o_name}][from" class="additional-cart-params shop2-date_interval">
  376.                                         </div>
  377.                                         <div class="shop2-date-to">
  378.                                             <span>{#SHOP2_TO#}</span>
  379.                                             <input type="text" size="14" name="{$o_name}][to" class="additional-cart-params shop2-date_interval">
  380.                                         </div>
  381.                                     {else}
  382.                                         <div><span>{#SHOP2_FROM#} </span>{$product.meta[$o_name].from}</div>
  383.                                         <div><span>{#SHOP2_TO#} </span>{$product.meta[$o_name].to}</div>
  384.                                     {/if}
  385.                                 </td>
  386.                         {/if}
  387.                         {* /---------------------------------- *}
  388.  
  389.                     {/if}
  390.                     </tr>
  391.                 {/if}
  392.             {/foreach}
  393.         {/if}
  394.     {/strip}{/capture}
  395.    
  396.     {if $c_options}
  397.         <table class="shop2-product-options">{$c_options}</table>
  398.     {/if}
  399.  
  400. {/if}
Add Comment
Please, Sign In to add comment