Обработчик события представляет собой обычный метод, прописанный в одной из библиотек модуля.
Для примера, рассмотрим создание пользовательского метода-обработчика события 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;
}
}
...
};
?>
Готово! При добавлении нового комментария администратору отправляется письмо с текстом комментария. При желании Вы можете добавить туда ссылку на редактирование комментария, информацию об авторе и т.п.