Событие на создание ресурса.

Доброго времени суток!
Как отследить событие создания нового ресурса?
На сайте новости реализованы как каталог с ресурсами из которого при помощи pdoResourse тяну дочерние ресурсы.
Вопрос такой, нужно при публикации такой новости слать уведомления, для этого мне нужно как-то привязаться к событию публикации нового ресурса в родителе свой скрипт.
Как лучше это сделать?
Roman
22 сентября 2016, 07:15
modx.pro
2
3 042
0

Комментарии: 5

    Виктор
    Виктор
    22 сентября 2016, 22:07
    1
    +2
    Слать уведомления на 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();
    
    }
      Roman
      23 сентября 2016, 09:12
      0
      Виктор, спасибо! Слать я буду PUSH сообщения на мобильное приложение, потому обработчик у меня свой.
      if ($resource->get('parent') == 300) {}
      Можете прокомментировать, что есть что? И как применить?
      Пусть к примеру Родитель имеет id ресурса = 30.
      при создании в нём дочки пусть выполнится
      echo 'ок';
      Куда разместить ваше условие?
        Роман Садоян
        23 сентября 2016, 10:01
        +1
        if ($modx->event->name == 'OnDocFormSave' ) {
        // Делаем проверку на родителя, если нужно
        // ID родителя лучше вынести настройку client_config или в настройки
        if ($resource->get('parent') == 30) { // Мы получаем id родителя у объекта $resource, где хранится только что опубликованный ресурс
        echo 'ok';
        }
        
        }
        Этот код пишется в плагине, также ставится галочка на событие OnDocFormSave
          Виктор
          Виктор
          23 сентября 2016, 15:49
          0
          Да, все верно сказал Роман.

          1. Создаем плагин с произвольным именем, вставляем этот код
          2. На вкладке «системные события» ставим галочку OnDocFormSave
          3. В коде меняем id родителя на свой в строке «if ($resource->get('parent') == 300)»
          4. Меняем емайл'ы, в 'to' ставим тот, куда хотим получить письмо, в MAIL_FROM исходящий
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5