Пишем обработчик события

Обработчик события представляет собой обычный метод, прописанный в одной из библиотек модуля.

Для примера, рассмотрим создание пользовательского метода-обработчика события comments_message_post_do. Пользовательские методы должны быть прописаны в файл __custom.php в директории модуля.

Ранее мы назначили обработчик события comments_message_post_do - это метод onAddComment. Реализуем этот метод в __custom.php:

<?php
 abstract class __custom_comments {
 ...
  public function onAddComment(iUmiEventPoint $oEventPoint) {
   if ($oEventPoint->getMode() === "before") return true;

   if ($oEventPoint->getMode() === "after") {
    // берем необходимые параметры
    $iCommentId = $oEventPoint->getParam("message_id");

    // получаем объект "Комментарий"
    $oComment = umiHierarchy::getInstance()->getElement($iCommentId);
    if ($oComment instanceof umiHierarchyElement) {
     
     // формируем письмо
     $oMyMail = new umiMail();
     $oMyMail->setFrom("mailer@example.com", "mailer");
     $oMyMail->setSubject("Добавлен новый комментарий");
     $oMyMail->setContent($oComment->getValue("message"));
     $oMyMail->addRecipient("admin@example.com", "Admin");

     // отправляем письмо
     $oMyMail->commit();
    }
    return true;
   }
  }
 ...
 };
?>

Готово! При добавлении нового комментария администратору отправляется письмо с текстом комментария. При желании Вы можете добавить туда ссылку на редактирование комментария, информацию об авторе и т.п.