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


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

Комментарии (5)

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

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