<?=
$this->macros('catalog', 'getSmartFilters', array('default', $page->getId(), 0, 1))
; ?>
Пример вызова
udata://catalog/getSmartFilters//45/0/1
XML-ответ UData
Запрос: udata://catalog/getSmartFilters//45/0/1
<udata xmlns:xlink="http://www.w3.org/TR/xlink" category-id="45" level="1" type-id="132" total="5" is-adaptive="0" module="catalog" method="getSmartFilters" generation-time="0.051321">
<group name="cenovye_svojstva" title="Ценовые свойства">
<field name="price" title="Цена" data-type="price" is-multiple="0">
<minimum link="?filter[price][from]=800">800</minimum>
<maximum link="?filter[price][to]=7500">7500</maximum>
</field>
</group>
<group name="opisanie_tovara" title="Описание товара">
<field name="recommended_items" title="Похожие товары" data-type="symlink" is-multiple="1">
<item link="?filter[recommended_items]=Телевизор «Panasonic»">Телевизор «Panasonic»</item>
<item link="?filter[recommended_items]=Телевизор «Philips»">Телевизор «Philips»</item>
<item link="?filter[recommended_items]=Телевизор «Vityas»">Телевизор «Vityas»</item>
</field>
<field name="photo_4" title="Фотография 4" data-type="img_file" is-multiple="0">
<item link="?filter[photo_4]=0">0</item>
</field>
<field name="srok_godnosti" title="Срок годности" data-type="date" is-multiple="0">
<minimum link="?filter[srok_godnosti][from]=1443646800">1443646800</minimum>
<maximum link="?filter[srok_godnosti][to]=1446238800">1446238800</maximum>
</field>
</group>
<group name="item_properties" title="Характеристики">
<field name="diagonal" title="Диагональ" data-type="relation" is-multiple="0" guide-id="128">
<item link="?filter[diagonal]=120 см">120 см</item>
</field>
<field name="weight" title="Вес" data-type="float" is-multiple="0">
<item link="?filter[weight]=120">120</item>
</field>
<field name="ekran" title="Экран" data-type="relation" is-multiple="0" guide-id="129">
<item link="?filter[ekran]=Большой">Большой</item>
</field>
<field name="yarkost" title="Яркость" data-type="relation" is-multiple="0" guide-id="130">
<item link="?filter[yarkost]=Не очень ярко">Не очень ярко</item>
<item link="?filter[yarkost]=Очень ярко">Очень ярко</item>
</field>
<field name="cvet" title="Цвет" data-type="relation" is-multiple="0" guide-id="122">
<item link="?filter[cvet]=Не особо прозрачный">Не особо прозрачный</item>
<item link="?filter[cvet]=Очень прозрачный">Очень прозрачный</item>
</field>
<field name="zawita_ot_detej" title="Защита от детей" data-type="boolean" is-multiple="0">
<item link="?filter[zawita_ot_detej]=1">1</item>
</field>
</group>
</udata>
Если необходимо фильтровать одновременно по двум значениями выбранного поля, то попробуйте запрос вида udata://catalog/getSmartFilters//45/0/1//(opisanie_tovara);(item_properties)?filter[cvet][]=Не особо прозрачный&filter[cvet][]=Очень прозрачный.
При таком синтаксисе все возможные значения собираются в массив.
Вывод осуществляется по шаблону, указанному в параметре template (по умолчанию default.tpl
).
Пример вызова
Простой вывод фильтра по разделу каталога: %catalog getSmartFilters('test', 45, 0, 1)%.
Используемые блоки шаблона
search_block
Общий блок для вывода фильтра.
%category-id%
id раздела каталога, по товарам которого нужно вывести фильтр.
%level%
Уровень вложенности раздела каталога %category-id%, на котором размещены необходимые объекты каталога.
%type-id%
id объектного типа данных, к которому принадлежат искомые объекты каталога.
%total%
Общее количество объектов.
%is-adaptive%
Является ли фильтр адаптивным, то есть уточняет ли данные фильтрации с учетом уже переданных данных.
%group%
Выводит группы полей.
search_block_empty
Общий блок для вывода фильтра, если нет данных для построения фильтров
field_group_block
Общий блок для вывода группы полей
%name%
Имя поля.
%title%
Заголовок поля.
%field%
Значение поля.
field_block_string
Для вывода поля типа "string"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "string".
field_block_string_item
Для вывода варианта значения полей типа "string", "password"
%value%
Значение поля типа "string" или "password".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
field_block_date
Для вывода поля типа "date"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%item%
Вариант значения поля типа "date".
field_block_numeric
Для вывода полей типа "int", "float", "counter"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%minimum%
Минимальное значение.
%maximum%
Максимальное значение.
field_block_price
Для вывода поля типа "price"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%minimum%
Минимальная цена.
%maximum%
Максимальная цена.
field_block_boolean
Для вывода поля типа "boolean"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "boolean".
field_block_boolean_item
Для вывода варианта значения поля типа "boolean"
%value%
Значение поля типа "boolean".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
field_block_file
Для вывода полей типа "file", "img_file", "swf_file", "video_file"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "file", "img_file", "swf_file", "video_file".
field_block_file_item
Для вывода варианта значения полей типа "file", "img_file", "swf_file", "video_file"
%value%
Значение поля типа "file", "img_file", "swf_file", "video_file".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
field_block_optioned
Для вывода поля типа "optioned"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "optioned".
field_block_optioned_item
Для вывода варианта значения поля типа "optioned"
%value%
Значение поля типа "optioned".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
field_block_tags
Для вывода поля типа "tags"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "tags".
field_block_tags_item
Для вывода варианта значения поля типа "tags"
%value%
Значение поля типа "tags".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
field_block_symlink
Для вывода поля типа "symlink"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "symlink".
field_block_symlink_item
Для вывода варианта значения поля типа "symlink"
%value%
Значение поля типа "symlink".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
field_block_text
Для вывода полей типа "text" и "wysiwyg"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "text" и "wysiwyg".
field_block_text_item
Для вывода варианта значения полей типа "text" и "wysiwyg"
%value%
Значение поля типа "text" и "wysiwyg".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
field_block_relation
Для вывода поля типа "relation"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "relation".
field_block_relation_multiple
Для вывода поля типа "relation_multiple"
%name%
Имя поля.
%title%
Заголовок поля.
%data-type%
Тип поля.
%is-multiple%
Является ли значение множественным.
%guide-id%
Идентификатор справочника.
%item%
Вариант значения поля типа "relation_multiple".
field_block_relation_item
Для вывода варианта значения поля типа "relation"
%value%
Значение поля типа "relation".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
field_block_relation_multiple_item
Для вывода варианта значения поля типа "relation_multiple"
%value%
Значение поля типа "relation_multiple".
%is-selected%
Выбрано ли значение.
%link%
Ссылка на значение.
Название
%catalog getSmartFilters()% — Выводит данные для формирования формы фильтрации объектов каталога.
Параметры: catalog getSmartFilters([$template = 'default'], categoryId, [isAdaptive = true, level = 1, typeId = false, groupNames = false])
- template
-
Имя шаблона, по которому формируется форма с фильтром. В XSLT-шаблонизаторе игнорируется.
- categoryId
-
Id категории товаров, по товарам которой нужно вывести фильтры.
- isAdaptive
-
Является ли фильтр адаптивным, то есть уточняет ли данные фильтрации с учетом уже переданных данных.
- level
-
Уровень вложенности раздела каталога $categoryId, на котором размещены необходимые объекты каталога
- typeId
-
Идентификатор типа данных, объекты которого будут участвовать в фильтре.
- groupNames
-
Имена групп свойств товара (разделенные символом ";"), которые участвуют в фильтре.
Описание
Выводит фильтр по товарам категории, указанной в параметре categoryId. Параметр groupNames задает группы свойств, которые будут участвовать в фильтре (разделитель групп символ ";"). Чтобы в фильтре участвовали только объекты определенного типа данных из указанной категории, необходимо передать значение этого типа в параметре typeId. Для того, чтобы свойство товара участвовало в фильтре, необходимо в модуле «Шаблоны данных» поставить галочки «Фильтруемое» и «Видимое» в настройках соответствующих полей, а потом в модуле Каталог переиндексировать фильтры необходимого раздела. Адаптивный режим фильтрации применяется для построения "умных" фильтров, макрос с этим параметром обычно вызывают через ajax. Для построения "классического" фильтра этот параметр нужно отключить.Для организации фильтров макрос применяется в связке с макросом %catalog getSmartCatalog()%. С помощью %catalog getSmartFilters()% строится форма фильтрации,а с помощью %catalog getSmartCatalog()% выводятся объекты каталога.