
mFilter
Фасетная фильтрация для MODX 3 с поддержкой SEO URL


Документация для разработчиков по расширению и кастомизации mFilter.
| Раздел | Описание |
|---|---|
| JavaScript | Архитектура фронтенда, подключение скриптов |
| JS API | Программное управление фильтрами |
| Headless API | REST API для SPA-приложений |
| Сервисы | PHP сервисы и Dependency Injection |
| Типы фильтров | Создание собственных типов фильтрации |
| События | Плагин и системные события |
| Модели и БД | Таблицы базы данных |
┌─────────────────────────────────────────────────────────┐
│ Фронтенд │
├─────────────────┬───────────────────────────────────────┤
│ SSR режим │ Headless режим │
│ (FilterUI) │ (ApiClient + FilterAPI) │
├─────────────────┴───────────────────────────────────────┤
│ Hooks System │
│ beforeApply → apply → afterApply │
├─────────────────────────────────────────────────────────┤
│ REST API Router │
├─────────────────────────────────────────────────────────┤
│ Controllers │
│ FilterController, SlugController │
├─────────────────────────────────────────────────────────┤
│ Services │
│ Filter │ FilterSet │ SlugManager │ UrlRouter │ SEO │
├─────────────────────────────────────────────────────────┤
│ Handlers │
│ FilterTypes │ Sources │ FilterHandler │
├─────────────────────────────────────────────────────────┤
│ Models │
│ FilterSet │ Slug │ Pattern │ WordForm │ SeoTemplate │
└─────────────────────────────────────────────────────────┘const filter = mfilterGet('mfilter-form');
filter.setFilter('brand', ['apple', 'samsung']);
filter.submit();mfilterHooks.add('beforeApply', (ctx) => {
console.log('Фильтры:', ctx.params.filters);
// Можно модифицировать ctx.params
});// В плагине на OnMFilterInit
$mfilter->getFilterTypeRegistry()->register('mytype', new MyFilterType($modx));// core/components/mfilter/config/services.php
return [
'slugManager' => MyCustomSlugManager::class,
];