Перейти к содержанию
Форум поддержки пользователей VamShop

Как вывести все доступные размеры у товара (обуви)?!


Рекомендуемые сообщения

Например, у Вас есть товар - обувь.

Вы хотите внутри категорий, на странице со списком товара вывести все доступные размеры.

Вот как могло бы это выглядеть:

razmery.png

В админке настраиваете спецификации у товра, группируете, как в примере с умными часами - http://demo2.vamshop.ru/product/samsung-gear-2-wild-orange.html

А затем правите шаблон вывода атрибутов товара.

В Админке - Оформление - Микро-шаблоны - product-listing правите:

        <div class="description">{attribute_list product_id=$node.id}</div>

на:

        <div class="description">{attribute_list product_id=$node.id template="razmery"}</div>

Затем в Админке - Расширения - Тэги заходите в тэг {attribute_list}

Внизу нажимаете кнопку Создать микро-шаблон из тэга.

В опциии Псевдоним указываете razmery

Сохрнаяете.

Вы создали шаблон razmery, которым будут отрисовываться атрибуты товаров в списке товара в каталоге.

Затем надо чуть его исправить что б выводить все доступные размеры как на картинке выше.

Пример шаблона (обратите внимение, что код показан для атрибута Размеры, т.е. если у Вас атрибут по-другому называется, то меняйте 2 в коде == "Размеры" на Ваше название атрибута):

   
                {if $attr.target=="CATALOG"}
{if !$attr.is_group}

                    {foreach from=$attr.element_list item=attr_element}
{if {$attr_element.name} == "Размеры"}

{if isset($attr_element.values_attribute)}
{$attr_element.name}:
                        <ul class="attributes nav nav-pills">
                            <li class="active"><span class="active">{value_filter template=$attr_element.template.template_catalog 
                                                  id_attribute=$attr_element.values_attribute.id 
                                                  name_attribute="" 
                                                  values_attribute=$attr_element.values_attribute}</span></li>
                             </ul>
                        {/if}
{/if}
                    {/foreach}   
{/if}

{if $attr.is_group}

                    {foreach from=$attr.group_list item=attr_element}
                    {if $attr_element@first}<ul class="specs">{/if}                     
                    {if $attr_element.values_attribute && $attr_element.group_attributes}                    
{if $attr_element.group_attributes && {$attr_element.name} == "Размеры"}
                              {$attr_element.name}:
                            {if !empty($attr_element.values_attribute.name)}</b>{/if}                                
                        <ul class="attributes nav nav-pills">
                            <li class="active"><span class="active">{$attr_element.values_attribute.name}</span></li>

                          {foreach from=$attr_element.group_attributes item=attr_val}                        
                            <li class="{cycle values="odd,even"}">
                                {if $attr_val.make}<b>{/if}
                                    <a class="confirm" href={$attr_val.content_chng_url} onclick='$("#attr{$attr_val.values_attribute.id}").attr("value","1");'> {$attr_val.values_attribute.name} </a>
                                    <input id="attr{$attr_val.values_attribute.id}" name="data[set_attr][{$attr_val.values_attribute.id}]" type="hidden" />
                                {if $attr_val.make}</b>{/if}
                            </li>           
                        {/foreach}
                        </ul>
{/if}                        
                    {/if}                      
                    {if $attr_element@last}</ul>{/if}
                    {/foreach}


{/if}

                {else if $attr.target=="PRODUCT"}
                    {foreach from=$attr.element_list item=attr_element}
                        {if isset($attr_element.values_attribute)}
                            {if $attr_element@first} <ul class="specs"> {/if}                
                                <li class="{cycle values="odd,even"}">{value_filter template=$attr_element.template.template_product 
                                                  id_attribute=$attr_element.values_attribute.id 
                                                  name_attribute=$attr_element.name 
                                                  values_attribute=$attr_element.values_attribute}</li>
                            {if $attr_element@last} </ul> {/if}
                        {/if}
                    {/foreach} 
                {else if $attr.target=="PRODUCT_GROUP"}

	                 {foreach from=$attr.element_list item=attr_element}
	                     {if isset($attr_element.values_attribute)}
	                         <ul class="specs">               
	                             <li class="{cycle values="odd,even"}">{value_filter template=$attr_element.template.template_product 
	                                               id_attribute=$attr_element.values_attribute.id 
	                                               name_attribute=$attr_element.name 
	                                               values_attribute=$attr_element.values_attribute}</li>
	                         </ul>
	                     {/if}
	                 {/foreach}
	                 <br /> 

						<div id="spinner">
							<img src="{base_path}/img/ajax-loader.gif" alt="" width="31" height="31" />
						</div>
                    <script> 
                        $(document).ready(function () { 
                            global_spinner = $("#spinner");
                        });
                    </script>

                    <form id="set_attr_form" method="post" action={$base_content}>
                    {foreach from=$attr.element_list item=attr_element}
                    {if $attr_element@first}<ul class="specs">{/if}                     
                    {if $attr_element.values_attribute && $attr_element.group_attributes}                    
                        <li class="{cycle values="odd,even"}">{if !empty($attr_element.values_attribute.name)}<b>{/if}
                                {lang}Select{/lang} {$attr_element.name}:
                            {if !empty($attr_element.values_attribute.name)}</b>{/if}                                
{if $attr_element.group_attributes}
                        <ul class="attributes nav nav-pills">
                            <li class="active"><span class="active">{$attr_element.values_attribute.name}</span></li>
                        {foreach from=$attr_element.group_attributes item=attr_val}                        
                            <li class="{cycle values="odd,even"}">
                                {if $attr_val.make}<b>{/if}
                                    <a class="confirm" href={$attr_val.content_chng_url} onclick='$("#attr{$attr_val.values_attribute.id}").attr("value","1");'> {$attr_val.values_attribute.name} </a>
                                    <input id="attr{$attr_val.values_attribute.id}" name="data[set_attr][{$attr_val.values_attribute.id}]" type="hidden" />
                                {if $attr_val.make}</b>{/if}
                            </li>                          
                        {/foreach}
                        </ul>
{/if}                        
                        </li>
                    {/if}                      
                    {if $attr_element@last}</ul>{/if}
                    {/foreach}
                    <script>
                    $(function () {      
                        $(".confirm").on("click",function(){            
                            var http_send = $(this).attr("href");
                            var form_data = $("#set_attr_form").serialize();
                            $.ajax({
                                    type: "POST",
                                    url: http_send,
                                    data: form_data,
                                    async: true,
                                    success: function (data, textStatus) {
                                        $("#ajaxcontent").html(data);},
                                    beforeSend: function () {
                                        global_spinner.fadeIn("fast");
                                        },
                                    complete: function () {
                                        /*global_spinner.fadeOut("slow");*/
                                        }                                                    
                                });                            
                            return false;
                        });
                    });
                    </script>
                    </form>

                {/if}
                <br />              
    

В /app/Catalog/function.attribute_list.php поменяйте:

        //if($Content->is_group($params['product_id'])) $attr['group_list'] = $Content->getSetAttributesForGroup($params['product_id'],true);

на:

        if($Content->is_group($params['product_id'])) $attr['group_list'] = $Content->getSetAttributesForGroup($params['product_id'],true);

Файл /app/Catalog/function.attribute_list.php прицепил рабочий, на всякий случай.

function.attribute_list.php

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...