В 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, который мы опишем ниже.