Для реализации фильтра на странице нужно добавить соответствующие характеристики, сделав их доступными в фильтре и выбрав тип этих фильтров (выбор из списка, текст или чекбокс). После этого нужно включить фильтр, активировав пункт "Показывать фильтр" на нужной странице.
Внешний вид фильтра обычно реализуется в файле шаблона filter.html, который подключается на странице в нужном месте.
Можно реализовать фильтр для вложенных страниц. В этом случае нужно, чтобы у всех дочерних страниц были одинаковые группы характеристик и активирован пункт "Показывать фильтр". Если дополнительно включить элемент "Системная переменная" с названием sys_bottom_products (равен 1), то будет показываться список вложенных товаров. Количество товаров задаётся в настройке страницы Количество записей в каталоге (раздел Дополнительно).
Работа фильтра для дочерних страниц требует больше вычислительных ресурсов сервера, поэтому используйте такую возможность аккуратно.
Массив фильтра доступен в переменной $page.filters, где ключ содержит ID или alias характеристики, а внутри содержит следующие элементы:
[city] => Array ( [id] => 46 [title] => Город [alias] => city [sort] => 1 [group_id] => 5 [type] => select [show_in_filter] => 1 [filter_type] => multicheckbox [show_in_list] => 1 [filter_description] => [after] => [icon] => [to_show] => all [value_min] => 0.00 [value_max] => 0.00 [values] => Array ( [0] => Array ( [id] => 456 [id_option] => 46 [id_product] => 16 [value] => Москва [where_placed] => product [value2] => [value3] => [qty] => 1 [checked] => checked )
Отдельно формируется массив с ценой, где указывается минимальная и максимальная цена. Содержится массив в элементе $page.filters.price
[price] => Array ( [value_min] => 0 [value_max] => 78000 )
Контролировать запрошенные значения из фильтра можно в массиве роутера $uri.params.options шаблона или в коде в массиве $site->uri['params']['options']. Однако удобнее это делать в элементе массива $page.requested_filter
[requested_filter] => Array ( [city] => Москва [47] => [48] => [price] => Array ( [from] => 0 [to] => 78000 [min] => 0 [max] => 78000 ) )
Результаты выводятся в стандартном массиве списка товаров $page.list_products
bitrix (3) шаблон (3) mobile (2) pagespeed (2) simpla (2) блоки (2) переменные (2) cms (1) email (1) google merchant center (1) hosting (1) seo (1) wordpress (1) валюты (1) константы (1) мобильная версия (1) платежи (1) посетители (1) рассылка (1) сравнение (1) теги (1) фильтр (1) шаблоны (1) яндекс маркет (1)