Обработчик события представляет собой обычный метод, прописанный в одной из библиотек модуля.
Для примера, рассмотрим создание пользовательского метода-обработчика события comments_message_post_do. Пользовательские методы должны быть прописаны в файл customMacros.php в директории модуля.
Ранее мы назначили обработчик события comments_message_post_do - это метод onAddComment. Реализуем этот метод в customMacros.php:
<?php
class CommentsCustomMacros {
...
public function onAddComment(iUmiEventPoint $oEventPoint) {
if ($oEventPoint->getMode() != "after") {
return;
}
// берем необходимые параметры
$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();
}
}
...
}
?>
Готово! При добавлении нового комментария администратору отправляется письмо с текстом комментария. При желании Вы можете добавить туда ссылку на редактирование комментария, информацию об авторе и т.п.