Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. <?php
  2. /**
  3. ** Плагин, при публикации ресурса в указанном разделе, передает текст ресурса
  4. ** в шаблон Sendex и отправляет подписку в очередь
  5. **
  6. ** OnDocPublished срабатывает только при публикации ресурса через контекстное
  7. ** меню документа в дереве ресурсов
  8. **
  9. ** В шаблоне sendex в месте куда нужно вставлять контент должен быть
  10. ** тег <div id="content"></div>
  11. */
  12.  
  13. if ($modx->event->name == 'OnDocPublished') {
  14.  
  15. if ($resource->get('parent') != 3) return; // 3 - ID раздела с новостями
  16.  
  17. // Получение шаблона
  18.  
  19. $response = $modx->runProcessor('element/template/get', array(
  20. 'id' => 4 // 4 - ID шаблона sendex
  21. ));
  22.  
  23. if ($response->isError()) {
  24. $modx->log(modX::LOG_LEVEL_ERROR, 'SendexOnNewsPublished - ошибка чтения шаблона. '.$response->getMessage());
  25. return;
  26. } else {
  27. $template = $response->getObject();
  28. }
  29. $newTplContent = preg_replace('/(<div.*?id="content"[^>]*>)(.*?)(</div>)/i', '<div id="content">
  30. <a href=http://skot-dvor.com/index.php?id='.$resource->get('id').'>'.$resource->get('pagetitle').'</a>
  31. </div>', $template['content'], 1);
  32.  
  33. $data = $template;
  34. $data['content'] = $newTplContent;
  35.  
  36. //Запись контента новости в шаблон
  37.  
  38. $response = $modx->runProcessor('element/template/update', $data);
  39.  
  40. if ($response->isError()) {
  41. $modx->log(modX::LOG_LEVEL_ERROR, 'SendexOnNewsPublished - ошибка записи в шаблон. '.$response->getMessage());
  42. return;
  43. } else {
  44. $modx->cacheManager->clearCache();
  45. }
  46.  
  47. // Отправка шаблона в очередь рассылки
  48.  
  49. $modx->addPackage('sendex', MODX_CORE_PATH . 'components/sendex/model/');
  50.  
  51. if ($newsletter = $modx->getObject('sxNewsletter', $resource->getTVValue('poroda'))) { // $resource->getTVValue('poroda') - ID рассылки
  52. $response = $newsletter->addQueues();
  53. if ($response !== true) {
  54. echo $response;die;
  55. }
  56. }
  57.  
  58. }
  59. return;
  60.  
  61. send("gate.iqsms.ru", 80, "api_login", "api_password",
  62. "7хххххххххх", "text here", "iqsms", "wap.yousite.ru");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement