Обработчики
События MODX, на которые подписан пакет, и что фреймворк делает на каждом. Ваш класс с тем же именем отрабатывает после фреймворкового — см. События.
Жизненный цикл запроса
| Событие | Что делает фреймворк |
|---|---|
OnMODXInit | Пока ничего. Зарегистрировано с priority: 1000, чтобы компонент поднимался раньше плагинов, которые могут на него опираться. |
OnHandleRequest | Заводит псевдонимы modUser и modUserProfile для классов из MODX\Revolution\, стартует сессию и передаёт запрос маршрутизации. |
OnWebPageInit | Подготовка фронта для запрошенной страницы. |
OnCacheUpdate | Чистит кэш маршрутов, кэш шаблонов Fenom, кэш компонента и кэш menu, сбрасывает $_SESSION['pageblocks']. Срабатывает при любой очистке кэша MODX. |
Чистка кэша MODX чистит и наш
OnCacheUpdate означает, что кнопка «Очистить кэш» в менеджере уже покрывает PageBlocks — маршруты, скомпилированные шаблоны и кэшированные списки. Руками чистить почти никогда не нужно.
Форма ресурса
| Событие | Что делает фреймворк |
|---|---|
OnDocFormPrerender | На существующем ресурсе подгружает менеджерские скрипты компонента. В режиме new пропускается. |
OnDocFormRender | Рисует в форме поля секций ресурса. В режиме new пропускается. |
OnBeforeDocFormSave | Собирает значения полей секций из отправленной формы и записывает их в ресурс. |
OnResourceDuplicate | Копирует содержимое PageBlocks в копию ресурса: блоки, вложенные в них таблицы и галереи, строки полей секций. Значения кастомных полей едут внутри properties, который MODX копирует сам. |
Форма пользователя
| Событие | Что делает фреймворк |
|---|---|
OnUserFormPrerender | Подгружает менеджерские скрипты для существующего пользователя. В режиме new пропускается. |
OnUserFormRender | Рисует в форме поля секций пользователя. |
OnUserSave | Пишет кастомные поля пользователя в modx_user_attributes.extended. Работает после ядрового процессора намеренно: иначе процессор перетрёт extended. |
OnUserDuplicate | Парная к OnResourceDuplicate, но для пользователя. Принимает несколько написаний параметров процессора — они отличаются от сборки к сборке MODX. |
OnUserRemove | Фреймворкового обработчика нет. Зарегистрировано, чтобы сайт мог перехватить его своим core/App/Events/OnUserRemove.php. |
Менеджер
| Событие | Что делает фреймворк |
|---|---|
OnManagerPageBeforeRender | Подгружает базовые скрипты, скрипты данных и визуальный редактор на каждой странице менеджера. |
OnSiteSettingsRender | Добавляет modx.combo.js на страницу системных настроек. |
Не подключены
OnLoadWebDocument и OnPageNotFound есть в описании пакета, но закомментированы. Понадобятся — добавьте их плагину в менеджере и положите класс в core/App/Events/.
Где лежит код
Обработчики фреймворка — в core/components/pageblocks/src/Events/, по файлу на событие. Они короткие и читаемые: когда этой страницы не хватает, обычно хватает самого класса.