Фильтры
Фильтры на странице
Для реализации фильтра на странице нужно добавить соответствующие характеристики, сделав их доступными в фильтре и выбрав тип этих фильтров (выбор из списка, текст или чекбокс). После этого нужно включить фильтр, активировав пункт "Показывать фильтр" на нужной странице.
Внешний вид фильтра обычно реализуется в файле шаблона 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