UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: izen29 от 20 Февраля 2013, 18:51:27

Название: модуль faq уведомления о новых вопросах
Отправлено: izen29 от 20 Февраля 2013, 18:51:27
В описание для XSLT и в настройках модуля об этом ни слова. Может кто подскажет как можно создавать группы рассылок для уведомления о поступлении новых вопросов кого то кроме админа сайта?
Название: Re:модуль faq уведомления о новых вопросах
Отправлено: Rodogor от 20 Февраля 2013, 19:42:05
Надо кастомизировать метод отправки вопроса post_question модуля FAQ, именно то место, где отправляется письмо. Сделать нужно 1в1 как в модуле "обратная связь", там есть "списки адресов". Прям этот список адресов и заюзать.
Там addRecipient (добавление получателя) происходит в цикле. Остаётся этот список откуда-то взять - можно прям в коде нафигачить массив, можно из модуля "Обратная связь" позаимствовать, можно какой-нибудь справочник придумать, можно с группы пользователей почты собрать,.....
Название: Re:модуль faq уведомления о новых вопросах
Отправлено: admin от 27 Февраля 2013, 09:59:13
а можно воспользоваться событийной моделью используя точку faq_post_question
и написать кастом для обработки этой точки. Пример такого обработчика можно подглядеть в очень похожей теме на wiki Уведомление модератора о новом сообщении на форуме (http://wiki.umisoft.ru/%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%BE_%D0%BD%D0%BE%D0%B2%D0%BE%D0%BC_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BD%D0%B0_%D1%84%D0%BE%D1%80%D1%83%D0%BC%D0%B5)

хотя там будут небольшие изменения (по другому id добавленного сообщения называется в самойц точке и так как точки две, "до" и "после", то надо проверить что мы работаем с точной в режиме "после") примерно такого вида (код не тестировал!)
public function newPostMail(umiEventPoint $event) {
  if($e->getMode() == "after") {
$message_id  = $event->getParam('element_id');
 
$Name = "Admin ИМЯ_ДОМЕНА.ru"; //senders name
$email = "no-replay@pИМЯ_ДОМЕНА.ru"; //senders e-mail adress
$recipient = "addres@gmail.com"; //recipient
$mail_body = "В форум было добавлено новое сообщение. Ссылка на редактирование http://ВАШ_ДОМЕН.ru/admin/faq/edit/$message_id"; //mail body
$subject = "Новое сообщение в форуме"; //subject
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
 
if(mail($recipient, $subject, $mail_body, $header)){
return true;
} else {
return false;
}
   }
}