Логотип

Документация по макросам и шаблонам UMI.CMS

catalog getSmartFilters()

Название

%catalog getSmartFilters()% — Выводит данные для формирования формы фильтрации объектов каталога.

Параметры: catalog getSmartFilters([$template = 'default'], categoryId, [isAdaptive = true,] $level, [, typeId = false, groupNames = false])

template

Имя шаблона, по которому формируется форма с фильтром. В XSLT-шаблонизаторе игнорируется.

categoryId

Id категории товаров, по товарам которой нужно вывести фильтры.

isAdaptive

Является ли фильтр адаптивным, то есть уточняет ли данные фильтрации с учетом уже переданных данных.

level

Уровень вложенности раздела каталога $categoryId, на котором размещены необходимые объекты каталога

typeId

Идентификатор типа данных, объекты которого будут участвовать в фильтре.

groupNames

Имена групп свойств товара (разделенные символом ";"), которые участвуют в фильтре.

Описание

Выводит фильтр по товарам категории, указанной в параметре categoryId. Параметр groupNames задает группы свойств, которые будут участвовать в фильтре (разделитель групп символ ";"). Чтобы в фильтре участвовали только объекты определенного типа данных из указанной категории, необходимо передать значение этого типа в параметре typeId. Для того, чтобы свойство товара участвовало в фильтре, необходимо в модуле «Шаблоны данных» поставить галочки «Фильтруемое» и «Видимое» в настройках соответствующих полей, а потом в модуле Каталог переиндексировать фильтры необходимого раздела. Адаптивный режим фильтрации применяется для построения "умных" фильтров, макрос с этим параметром обычно вызывают через ajax. Для построения "классического" фильтра этот параметр нужно отключить.Для организации фильтров макрос применяется в связке с макросом %catalog getSmartCatalog()%. С помощью %catalog getSmartFilters()% строится форма фильтрации,а с помощью %catalog getSmartCatalog()% выводятся объекты каталога.

Дополнительные сведения

<?= $this->render($this->macros('catalog', 'getSmartFilters', array('default', $page->getId(), 0, 1)), 'catalog/smart-filters'); ?>

Пример вызова

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)%.

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /tpls/catalog/.

Используемые блоки шаблона

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%

        Ссылка на значение.