Skip to content
  1. Компоненты
  2. MigxPageConfigurator
  3. Системные события

Системные события

Компонент бросает свои системные события на ключевых этапах — нарезке, грабинге контента, рендере, работе с лексиконами и экспорте. Через них можно вмешаться в процесс, не трогая код пакета: написать обычный плагин MODX и подписать его на нужное событие.

Все события регистрируются при установке пакета (группа MigxPageConfigurator), поэтому в списке событий менеджера они доступны сразу.

Как подписаться

Создайте плагин, отметьте нужное событие на вкладке «Системные события». Внутри плагина:

  • параметры события доступны как обычные переменные (имена — из таблиц ниже);
  • чтобы вернуть изменённое значение в компонент, запишите его в $modx->event->returnedValues['<ключ>'].
php
// Плагин на mpcOnGetSectionHtml — обернуть конкретную секцию
if (($section['section_name'] ?? '') === 'features') {
    $modx->event->returnedValues['html'] = '<div class="features-wrap">' . $html . '</div>';
}

Подсказка

Возврат через returnedValues работает только для событий, где компонент его читает (в таблицах — колонка «Можно вернуть»). Если она пустая, событие чисто уведомительное.

Рендер страницы

СобытиеКогда срабатываетПараметрыМожно вернуть
mpcOnBeforeRenderПеред рендером страницы, после сбора всех данных ресурсаresourceData, RenderresourceData
mpcOnBeforeParseConfigПеред разбором конфига в секцииsections, Rendersections
mpcOnGetSectionHtmlНа каждую секцию — после её рендера в HTML, до сборки страницыsection, html, Renderhtml

mpcOnBeforeRender даёт поправить весь resourceData; mpcOnBeforeParseConfig — вмешаться в набор секций; mpcOnGetSectionHtml — изменить HTML конкретной секции по её имени (section.section_name).

Нарезка и грабинг контента

СобытиеКогда срабатываетПараметрыМожно вернуть
mpcOnGetSectionFieldsValuesПосле сбора значений полей секции при грабингеsectionKey, fieldsValues, section, GrabberfieldsValues
mpcOnGetNewHtmlПри простановке плейсхолдера на месте поля (нарезка)fieldHTMLNew, Grabber (PlaceholderProcessor)fieldHTMLNew
mpcOnHandleContactПри обработке блока контактовcontact, Grabbercontact

Сохранение полей

СобытиеКогда срабатываетПараметрыМожно вернуть
mpcOnFieldSaveПосле успешной записи значения поля через write-API (правки из визуального редактора/админки), перед инвалидацией кэшаresourceId, address

address — адрес записанного поля (содержит, в частности, уровень level: resource/type/global). Удобно для реакции на правку контента — например, сбросить свой кэш или уведомить внешнюю систему.

Стандартные события MODX

Помимо своих событий, компонент подписывает плагин на штатные события MODX OnBeforeDocFormSave и OnDocFormSave — чтобы фиксировать в журнале правки контента из формы ресурса в админке. Подробнее — в разделе Аудит правок.

Лексиконы

СобытиеКогда срабатываетПараметрыМожно вернуть
mpcOnGetResourceIdentifierПри определении идентификатора ресурса (имени файла лексикона)rid, Grabberrid
mpcOnGetLexiconKeyПри формировании ключа лексикона для поляsectionLexiconPrefix, lexiconKey, fieldName, GrabberlexiconKey
mpcOnImportLexiconValueПри импорте значения переводаvaluevalue

Медиа

СобытиеКогда срабатываетПараметрыМожно вернуть
mpcOnBeforeDownloadFileПеред загрузкой файла медиа (картинка/видео/аудио/прочее)fileName, extension, type, downloadPath, GrabberfileName

Тип медиа (images/videos/audios/others) определяется по тегу элемента (см. Работа с медиа), а не по расширению.

Экспорт лексиконов (XLSX)

СобытиеКогда срабатываетПараметрыМожно вернуть
mpcOnBeforeSaveExcelПеред сохранением XLSX-файлаfilePath, ExcelFileHandlerfilePath (только в пределах assets/)
mpcOnAddCellToExcelПеред добавлением строки в XLSXvalues, keys, filePath, ExcelFileHandler