В UMI.CMS есть два вида обработчиков событий:
-
системные - это предустановленные обработчики, которые прописываются при разработке модуля. Эти обработчики прописываются в файле events.php, который лежит в директории модуля. Для модулей, входящих в поставку UMI.CMS, этот файл изменять нельзя.
-
пользовательские - эти обработчики должны находиться в файле custom_events.php в директории модуля.
При возникновении события происходит вызов всех назначенных ему обработчиков (как системных, так и пользовательских).
Назначение пользовательских и системных обработчиков происходит одинаково. Для примера, рассмотрим назначение пользовательского обработчика для обработки события на добавление нового комментария comments_message_post_do.
Создадим файл custom_events.php в директории модуля comments (/classes/components/comments/) и пропишем туда перехватчик события:
<?php
$oAddCommentListener = new umiEventListener("comments_message_post_do", "comments", "onAddComment");
?>
Мы назначили обработчик события - некий метод onAddComment модуля comments, который мы опишем ниже.