Добрый день!
Возникла необходимость реализовать такую функциональность: при добавлении нового материала в определенный контейнер, нужно высылать на адреса зарегистрированных пользователей определенной группы сообщение.
На деле: есть группа "пользователи ПО" и как только в каталоге "Обновления ПО" добавится новое обновление - они должны быть уведомлены.
Хотел бы спросить совета у более опытных разработчиков.
1. Думаю, что реализовывать нужно это дело с помощью плагина. И слушать событие OnBeforeDocFormSave поскольку если использовать событие OnDocFormSave, то высылаться будет сообщение каждый раз, если даже отредактировать сопроводительный текст в обновлении. Правильно или нет?
2. При наступлении события OnDocFormSave думаю написать что-то типа такого:
$e =& $modx->event;
switch ($e->name ) {
// если наступило событие "перед сохранением документа"
case 'OnDocFormSave':
{
// получаем id сохраняемого документа
$docId = $modx->documentObject['id'];
// ищем информацию о сохраняемом объекте в базе
$checkDoc = $modx->getDocument($docId);
// если не найдено ничего - значит объет создается, а не редактируется
if (empty($checkDoc)) {
// проверяем, является ли создаваемый документ обновлением ПО
if ($modx->documentObject['parent'] == 33) {
// вот тут нужно вызвать функцию, которая отправит сообщение пользователям
// думал в сторону eForm глянуть, но как сэмулировать программно нажатие кнопки отправить,
// что-то не допёр...помогите плз.
}
}
break ;
}
default:
return ;
}
ps прокомментируйте плз, если я что-то не так написал