support 447 Опубликовано 16 октября, 2018 Жалоба Share Опубликовано 16 октября, 2018 Например, у Вас есть товар - обувь. Вы хотите внутри категорий, на странице со списком товара вывести все доступные размеры. Вот как могло бы это выглядеть: В админке настраиваете спецификации у товра, группируете, как в примере с умными часами - 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.phpFetching info... Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения