
Интеграции
Поддерживаемые компоненты
| Компонент | Описание |
|---|---|
| MiniShop3 | Интернет-магазин |
| mSearch | Полнотекстовый поиск |
Принцип интеграции
mFilter получает список ресурсов от элемента — сниппета из параметра &element, например msProducts или pdoResources.
{'!mFilter' | snippet : ['element' => 'msProducts']}
{'!mFilter' | snippet : ['element' => 'pdoResources']}Без &element mFilter выбирает ресурсы сам, по parents, — см. mFilter. mSearch подключается не через &element: mFilter сам ищет фразу и пересекает её с выборкой элемента, см. mSearch.
Режим с &element
- Элемент возвращает все ID области (
returnIds=1). - mFilter фильтрует ID и делит их на страницы.
- Пагинатор — сниппет из
&paginator, например pdoPage, — выводит строки текущей страницы через элемент. - Ссылки на страницы выводит mFilter чанком
tplPagination.
Элемент вызывается дважды, с разными параметрами:
Требования к element
Элемент должен поддерживать параметры:
| Параметр | Требование |
|---|---|
returnIds | Вернуть ID через запятую или JSON {"id": вес} вместо HTML |
limit | 0 — без ограничения |
resources | Список ID для вывода. mFilter передаёт его вместе с parents=0 |
sortby | Пустой — выводить resources в переданном порядке |
Порядок mFilter получает от элемента при выборке, а при выводе страницы передаёт пустой sortby и не сортирует заново. Сниппеты на pdoTools, включая msProducts, так и делают.
Элемент получает все параметры вызова mFilter, кроме element, paginator, useFilters, ajax и ajaxMode. Лексиконы для msProducts mFilter загружает сам. Для других элементов перечислите их в &lexicons: после фильтрации без перезагрузки лексиконы страницы не загружены.
Требования к paginator
Пагинатор должен поддерживать параметры:
| Параметр | Требование |
|---|---|
element | Сниппет, которым отрисовываются строки |
resources | Список ID |
page, pageLimit, pageNavVar, setMeta | Как у pdoPage: ими mFilter выключает собственную навигацию pdoPage |
