В этой статье я покажу на примерах как работать с событиями в ядре d7 на примере модуля grain.forum (Простой адаптивный форум). Будет показано и как создавать обработчик события с возможностью и изменения данных с позиции разработчика сайта, и как вызываются обработчики событий внутри модуля. Это статья не про ORM-события (т.е. события, связанные с хранением данных в базе, и где используется более стандартизованный подход), а про обычные события, которые могут использоваться для чего угодно.
[spoiler]
Пояснение: событие OnGlobalsGetFilter в модуле grain.forum предназначено для модификации глобального фильтра для форумов и их разделов (фильтра, который применяется в компонентах всегда и в основном используется для привязки форумов и разделов к сайтам).
Пример обработки события (со стороны разработчика)
Возвращаемый объект
Обработчик события может (но не обязан) вернуть объект типа \Bitrix\Main\EventResult;
Создать такой объект можно так
где $type может принимать значения:
\Bitrix\Main\EventResult::SUCCESS - при успешной обработке
\Bitrix\Main\EventResult::ERROR - если нужно вернуть ошибку
$event->getEventType() - статус на входе (например, после другого обработчика)
$arReturn - возвращаемое значение, зависит от события, и может быть, как числом или строкой, так и, например, массивом
Пример вызова события (со стороны модуля)
Дополнительная информация:
Сниппеты, связанные с событиями в d7
Описание api модуля "Простой адаптивный форум"
[spoiler]
Пояснение: событие OnGlobalsGetFilter в модуле grain.forum предназначено для модификации глобального фильтра для форумов и их разделов (фильтра, который применяется в компонентах всегда и в основном используется для привязки форумов и разделов к сайтам).
Пример обработки события (со стороны разработчика)
|
Возвращаемый объект
Обработчик события может (но не обязан) вернуть объект типа \Bitrix\Main\EventResult;
Создать такой объект можно так
|
\Bitrix\Main\EventResult::SUCCESS - при успешной обработке
\Bitrix\Main\EventResult::ERROR - если нужно вернуть ошибку
$event->getEventType() - статус на входе (например, после другого обработчика)
$arReturn - возвращаемое значение, зависит от события, и может быть, как числом или строкой, так и, например, массивом
Пример вызова события (со стороны модуля)
|
Дополнительная информация:
Сниппеты, связанные с событиями в d7
Описание api модуля "Простой адаптивный форум"
27.10.201718:4227.10.2017 18:42:55