Событие на создание ресурса.
Доброго времени суток!
Как отследить событие создания нового ресурса?
На сайте новости реализованы как каталог с ресурсами из которого при помощи pdoResourse тяну дочерние ресурсы.
Вопрос такой, нужно при публикации такой новости слать уведомления, для этого мне нужно как-то привязаться к событию публикации нового ресурса в родителе свой скрипт.
Как лучше это сделать?
Как отследить событие создания нового ресурса?
На сайте новости реализованы как каталог с ресурсами из которого при помощи pdoResourse тяну дочерние ресурсы.
Вопрос такой, нужно при публикации такой новости слать уведомления, для этого мне нужно как-то привязаться к событию публикации нового ресурса в родителе свой скрипт.
Как лучше это сделать?
Комментарии: 5
Слать уведомления на email? Если да, то можно плагином, на событие ondocformsave
<?php
if ($resource->get('parent') == 300) {
$message = $modx->getChunk('mail-tpl');
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'mail@domen.ru');
$modx->mail->set(modMail::MAIL_FROM_NAME,'От кого');
$modx->mail->set(modMail::MAIL_SUBJECT,'Тема');
$modx->mail->address('to','urmail@domen.ru');
$modx->mail->address('reply-to','urmail@domen.ru');
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'Произошла ошибка при отправке сообщения: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
}
Виктор, спасибо! Слать я буду PUSH сообщения на мобильное приложение, потому обработчик у меня свой.
Пусть к примеру Родитель имеет id ресурса = 30.
при создании в нём дочки пусть выполнится
if ($resource->get('parent') == 300) {}
Можете прокомментировать, что есть что? И как применить?Пусть к примеру Родитель имеет id ресурса = 30.
при создании в нём дочки пусть выполнится
echo 'ок';
Куда разместить ваше условие? if ($modx->event->name == 'OnDocFormSave' ) {
// Делаем проверку на родителя, если нужно
// ID родителя лучше вынести настройку client_config или в настройки
if ($resource->get('parent') == 30) { // Мы получаем id родителя у объекта $resource, где хранится только что опубликованный ресурс
echo 'ok';
}
}
Этот код пишется в плагине, также ставится галочка на событие OnDocFormSave
Да, все верно сказал Роман.
1. Создаем плагин с произвольным именем, вставляем этот код
2. На вкладке «системные события» ставим галочку OnDocFormSave
3. В коде меняем id родителя на свой в строке «if ($resource->get('parent') == 300)»
4. Меняем емайл'ы, в 'to' ставим тот, куда хотим получить письмо, в MAIL_FROM исходящий
1. Создаем плагин с произвольным именем, вставляем этот код
2. На вкладке «системные события» ставим галочку OnDocFormSave
3. В коде меняем id родителя на свой в строке «if ($resource->get('parent') == 300)»
4. Меняем емайл'ы, в 'to' ставим тот, куда хотим получить письмо, в MAIL_FROM исходящий
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.