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

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

Для примера, рассмотрим создание пользовательского метода-обработчика события 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;
			}
		}
	...

	};


?>

			

 

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



Сайт с системой управления от 6000 рублей!