Skip to content
  1. Компоненты
  2. simpleFilters
  3. Сниппеты

Сниппеты ​

simpleFilters ​

Выводит список ресурсов, фильтры, подключает все необходимые скрипты и стили.

Основные параметры ​

ПараметрОписаниеЗначение по умолчанию
&parentsРодители для выборки. ID через запятую.Текущий ресурс
&resourcesРесурсы для выборки. ID через запятую.
&showUnpublishedВывод неопубликованных ресурсов0
&templatesШаблоны ресурсов через запятую
&fromIndexВыборка из индекса1
&cacheTimeВремя жизни кеша в минутах300
&suggestionsПросчёт вероятных результатов фильтрации (счётчики у фильтров)1
&whereПервоначальная выборка в JSON-формате
&sortbyПоле для сортировкиmenuindex
&sortdirНаправление сортировкиASC
&limitКоличество на страницу10
&includeTVsTV-поля через запятую для включения в вывод
&tvPrefixПрефикс для TV-полей в чанке ресурсаtv_
&msPrefixПрефикс для полей товара miniShop3ms_
&msoPrefixПрефикс для опций товара miniShop3mso_
&hideOneСкрывать фильтры с одним значением1
&checkEmptyПросчитывать результат для каждого значения фильтра, чтобы отключать неактивные0
&filtersСписок фильтров в формате поле1:тип_поля1,поле2:тип_поля2,поле3:тип_поля3parent
&aliasesПсевдонимы фильтров для URL в формате поле1==псевдоним1,поле2==псевдоним2,поле3==псевдоним3
&fseparatorРазделитель значений фильтра в адресной строке_
&modeРежим работы: and — совпадение всех условий, or — совпадение хотя бы одного условияor

Шаблонизация ​

ПараметрОписаниеЗначение по умолчанию
&tplЧанк вывода ресурса
&tplWrapperЧанк-обёртка всего выводаsf_wrapper
&tplFilterЧанк блока фильтра типа чекбокс или радиокнопкаsf_filter
&tplFilterRowЧанк строки фильтра типа чекбоксsf_filter_row
&tplFilterRadioRowЧанк строки фильтра типа радиокнопкаsf_filter_radio_row
&tplFilterSelectЧанк блока фильтра типа селектsf_filter_select
&tplFilterSelectRowЧанк опции фильтра типа селектsf_filter_option_row
&tplFilterSliderЧанк блока фильтра типа слайдерsf_filter_slider
&tplSelectedЧанк оформления блока выбранного фильтраsf_selected_filter
&tplSelectedRowЧанк оформления строки выбранного фильтраsf_selected_row

Пагинация ​

ПараметрОписаниеЗначение по умолчанию
&tplPaginationWrapperЧанк-обёртка блока пагинацииsf_pagination
&tplPaginationЧанк вывода ссылки на страницуsf_page
&tplPaginationFirstЧанк вывода ссылки на первую страницуsf_page_first
&tplPaginationLastЧанк вывода ссылки на последнюю страницуsf_page_last
&tplMoreButtonЧанк вывода кнопки «Загрузить ещё»sf_morebutton

Быстрый старт ​

Минимальный вызов:

{'!Simplefilters' | snippet}

Подсказка

По умолчанию компонент работает с индексной таблицей, однако, если она пуста, сниппет переключится в режим работы с полями ресурсов 'fromIndex' => 0.

Настройка фильтров ​

В параметре &filters используйте следующие префиксы:

  • Поле ресурса — без префикса
  • TV-параметр — tv_
  • MIGX-поле — migx_
  • Поле товара MiniShop3 — ms_
  • Опция товара MiniShop3 — mso_

Для типов:

  • Чекбокс — checkbox или оставить пустым
  • Выпадающий список — select
  • Слайдер — slider
  • Радиокнопка — radio

Пример указания списка фильтров и псевдонимов:

&filters=`
    parent:select,
    ms_vendor_id:select,
    ms_price:slider,
    tv_instock:slider,
    migx_chars_Высота:slider:title|value,
    ms_color,
    ms_tags:select
`
&aliases=`
    ms_vendor_id==brand,
    ms_price==price,
    tv_instock==instock,
    migx_chars_Высота==height,
    ms_color==color,
    ms_tags==tags
`

MIGX-поля ​

Поля этого типа указываются в формате:

migx_[имя tv]_[название параметра]:[тип фильтра]:[поле названия]|[поле значения]

Допустим есть MIGX-TV chars с такой конфигурацией:

json
[{"fields":
  [
    {"field":"title", "caption":"Параметр"},
    {"field":"value", "caption":"Значение"}
  ]
}]

А у товаров значения указываются следующим образом:

MIGX значения

Чтобы создать фильтр-слайдер для параметра «Высота» нужно прописать:

migx_chars_Высота:slider:title|value

Фильтр для параметра «Назначение» в виде чекбоксов так:

migx_chars_Назначение:title|value

В настройке индексации sf_index_fields всегда без указания типа фильтра:

migx_chars_Назначение:title|value,migx_chars_Высота:title|value

Параметр &where ​

Поддерживает один параметр/значение. Работает только с таблицами ресурса и продукта MiniShop3 (поля указываются без префиксов, как в базе).

ОписаниеПример
Вывод новинок'where' => '{"new":"1"}'
Вывод товаров с ценой больше 2000'where' => '{"price:>":"2000"}'
Вывод ресурсов со словом "скидка" в longtitle'where' => '{"longtitle:like":"скидка"}'

Для более сложной логики можно использовать сторонний сниппет для вывода списка ID ресурсов и указать результат его работы в параметре resources:

{set $ids = 'msProducts' | snippet : [
    'parents' => 12,
    'where' => [
        'Data.price:>' => 1000,
        'Data.vendor_id' => 3
    ],
    'returnIds' => 1
]}

{'!Simplefilters' | snippet : [
    'resources' => $ids,
    //*********
]}

Шаблонизация ​

В чанках по умолчанию используется Fenom (требуется наличие pdoTools), но поддерживается и стандартный синтаксис.

Компонент поддерживает кастомные чанки для разных фильтров.

Для этого нужно указать параметры в виде &tplFilter_параметр и &tplFilterRow_параметр.

Например, если требуется для фильтра по тегам (ms_tags) какое-то своё оформление, создайте соответствующие чанки и укажите в вызове:

&tplFilter_ms_tags=`чанк_для_блока`
&tplFilterRow_ms_tags=`чанк_для_элемента`

Если для параметра указан псевдоним, то используется он:

$aliases=`ms_tags==tag`
&tplFilter_tag=`чанк_для_блока`
&tplFilterRow_tag=`чанк_для_элемента`

Названия блоков фильтров задаются через лексиконы в формате sf_filter_фильтр (также можно менять в плагине).

simpleFiltersSiteMap ​

Сниппет добавляет ссылки на SEO-страницы в карту сайта.
Пример использования с pdoSitemap:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

{'pdoSitemap' | snippet : [
  'forceXML' => 0
]}
{'simpleFiltersSiteMap' | snippet : [
  'tpl' => 'sf_sitemap_tpl'
]}
</urlset>

sfUpdateIndex ​

Выполняет полное обновление индекса всех ресурсов, шаблоны которых указаны в системной настройке sf_index_templates и полей, указанных в sf_index_fields.

sfUpdateSeoRules ​

Выполняет проверку SEO-правил и создаёт SEO-страницы на их основе.

sfUpdateSeoPages ​

Выполняет проверку SEO-правил и создаёт SEO-страницы на их основе при условии, что есть результаты.
Если вызвать с параметром 'mode' => 'refresh' сниппет сначала полностью очистит таблицу, а потом создаст страницы заново. При этом все настройки для страниц (теги, контент, хлебные крошки), естественно, будут утеряны.

Подсказка

Для запуска сниппетов по расписанию можно использовать CronManager или Scheduler