2980
38.70
42.57
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Внимание, этот компонент требует версию PHP
8.0
или выше!
Если ваш сайт использует PHP ниже требуемого, установка этого
дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже
3.0
!
Основные свойства
- Поддержка полей ресурсов, TV и MIGX полей, а также полей и опций товаров MiniShop3.
- Четыре типа фильтров: чекбокс, радиокнопка, выпадающий список, слайдер для числовых значений (на основе noUiSlider).
- Пагинация (постраничная и кнопкой «Загрузить ещё»).
- Настраиваемая сортировка и выбор количества на страницу.
- Работает как в логике AND, так и OR (настраивается).
- Системные события для тонкой настройки (тексты фильтров, значения, сортировка полей и т. д.).
- Для работы не требуется jQuery.
Установка
Пакет устанавливается стандартным образом через установщик MODX3.Системные настройки
- sf_css_path — путь к JS-файлу, по умолчанию {assets_url}components/simplefilters/js/web/default.min.js
- sf_css_path — путь к CSS-файлу, по умолчанию {assets_url}components/simplefilters/css/web/default.min.css
Сниппет simpleFilters
Выводит список ресурсов, фильтры, подключает все необходимые скрипты и стили.Параметры (в скобках — значение по умолчанию):
- parents — родители для выборки (текущий ресурс)
- sortby — поле для сортировки (menuindex)
- sortdir — направление сортировки (ASC)
- limit — кол-во на страницу (10)
- includeTVs — TV-поля через запятую для включения в вывод
- tvPrefix — префикс для TV-полей (tv_)
- msPrefix — префикс для полей товара miniShop3 (ms_)
- msoPrefix — префикс для опций товара miniShop3 (mso_)
- templates — шаблоны ресурсов через запятую
- where — первоначальная выборка в JSON-формате
- filters — список фильтров в формате поле1: тип_поля1, поле2: тип_поля2, поле3: тип_поля3
- fseparator — разделитель значений фильтра в адресной строке (_)
- mode — режим работы: and — совпадение всех условий, or — совпадение хотя бы одного уcловия (or)
- Поле ресурса — без префикса
- TV-параметр — tv_
- MIGX-поле — migx_
- Поле товара MiniShop3 — ms_
- Опция товара MiniShop3 — mso_
- Чекбокс — checkbox или оставить пустым
- Выпадающий список — select
- Слайдер — slider
- Радиокнопка — radio
Пример указания списка фильтров:
...
&filters=`
ms_vendor_id:select,
ms_price:slider,
tv_instock:slider,
migx_chars_Высота:slider:title|value,
pagetitle:select,
ms_color,
ms_tags:select`
...MIGX-поля указываются в формате:
migx_[имя tv]_[название параметра]:[тип фильтра]:[поле названия]|[поле значения]Допустим есть MIGX-TV chars с такой конфигурацией:
[{ "fields":[
{ "field":"title", "caption":"Параметр" },
{ "field":"value", "caption":"Значение" }
]
}]У товаров значения указываются следующим образом:

Чтобы создать фильтр-слайдер для параметра «Высота» нужно прописать:
migx_chars_Высота:slider:title|valueЧекбоксы для параметра «Назначение» так:
migx_chars_Назначение:title|value&where поддерживает один параметр/значение.
Работает только к таблицами ресурса и продукта MiniShop3 (поля указываются без префиксов, как в базе).
Вывод новинок:
&where=`{ "new":"1" }`Вывод товаров с ценой больше 2000:
&where=`{ "price:>":"2000" }`Вывод ресурсов со словом «скидка» в longtitle:
&where=`{ "longtitle:like":"скидка" }`Шаблоны
В чанках по умолчанию используется Fenom (требуется наличие pdoTools), но поддерживается и стандартный синтаксис
- tpl — чанк вывода ресурса
- tplWrapper — чанк-обертка всего вывода (sf_wrapper)
- tplPaginationWrapper — чанк-обертка пагинации (sf_pagination)
- tplPagination — чанк вывода ссылки на страницу (sf_page)
- tplPaginationFirst — чанк вывода ссылки на первую страницу (sf_page_first)
- tplPaginationLast — чанк вывода ссылки на последнюю страницу (sf_page_last)
- tplMoreButton — чанк вывода кнопки «Загрузить ещё» (sf_morebutton)
- 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)
Компонент поддерживает кастомные чанки для разных фильтров.
Для этого нужно указать параметры в виде &tplFilter_параметр и &tplFilterRow_параметр.
Например, если требуется для фильтра по тегам (ms_tags) какое-то своё оформление, создайте соответствующие чанки и укажите в вызове:
&tplFilter_ms_tags=`чанк_для_блока`
&tplFilterRow_ms_tags=`чанк_для_элемента`Названия блоков фильтров задаются через лексиконы в формате sf_filter_фильтр (также можно менять в плагине, см. далее).
Системные события
Все события принимают массив $data.- sfOnGetIds — вызывается после первоначального сбора ID выводимых ресурсов. Можно добавить ресурс, прописав его ID или полностью переписать набор.
- sfOnGetFilterValues — вызывается после создания значений фильтра. Принимает массив со значениями (например, можно отсортировать по-своему), названием и типом фильтра.
- sfOnBeforeCreateFilterRow — вызывается при создании строки (элемента фильтра). Можно заменить названия, значения и т. д.
- sfOnBeforeCreateFilter — вызывается при создании блока фильтра. Например, можно изменить название блока, значения для слайдера и т. д.
- sfOnCheckResource — вызывается при проверке ресурса на соответствие значению выбранного фильтра. Приходит id ресурса, название фильтра и значение. Чтобы ресурс добавился в выборку должно возвращать $data['result'] = true;
В комплекте идет плагин simpleFilters с примерами.
simpleFilters
1.0.4
- Добавлена возможность фильтрации по MIGX-полям
- Исправлена ошибка в выводе полей типа select
- Добавлен чанк кнопки «Загрузить ещё»
1.0.3
- Добавлена возможность пагинации по кнопке «Загрузить ещё»
- По умолчанию включен режим OR
- Оптимизация логики
1.0.2
- Исправлен баг с установкой пустых чанков
1.0.1
- Добавлена защита пакета
1.0.0
- Первая редакция




Последние обсуждения в сообществе MODX.pro