Skip to content
mFilter
mFilter
Фасетная фильтрация для MODX 3 с поддержкой SEO URL
  • MODX 3
  • PHP 8.1
  • Vue 3
  1. Компоненты
  2. mFilter
  3. Разработка

Разработка ​

Разделы ​

РазделОписание
JavaScriptПодключение скриптов, настройки формы, слайдер диапазона
JS APIУправление фильтром из своего кода
Headless APIЗапросы к серверу без формы, из своего приложения
СервисыPHP-сервисы фасада MFilter
Типы фильтровВстроенные типы и свой тип фильтра
СобытияСобытия MODX, на которые подписан плагин, и OnMFilterInit
Модели и БДТаблицы базы данных

Архитектура ​

Точки расширения ​

ГдеЧтоПодробнее
JavaScriptХуки — перехват запросов фильтрацииHeadless API → Хуки
JavaScriptСобытия формы в браузереJS API → События
PHPСвои типы фильтров, в том числе по своим таблицамТипы фильтров
PHPСобытие OnMFilterInit — регистрация своих типовСобытия
ЧанкиСвоя разметка формы и результатовЧанки и разметка

Быстрые примеры ​

Программное управление фильтром ​

javascript
mfilterGet().setFilter('color', ['red', 'blue']);   // запрос уйдёт сам

Хук на применение фильтров ​

javascript
mfilterHooks.add('beforeApply', (ctx) => {
    console.log('Фильтры:', ctx.params.filters);
    // Можно модифицировать ctx.params
});

Регистрация своего типа фильтра ​

php
// В плагине на OnMFilterInit
$mfilter->getFilterTypesRegistry()->register('mytype', new MyFilterType($modx, $mfilter));