Skip to content

Обработчики

События 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/, по файлу на событие. Они короткие и читаемые: когда этой страницы не хватает, обычно хватает самого класса.

© PageBlocks 2019-present