The question arose how to get the telephone numbers of registered users subscribed to a specific subscription. Now the following plugin is used to generate the newsletter:
<?php /** ** Плагин, при публикации ресурса в указанном разделе, передает текст ресурса ** в шаблон Sendex и отправляет подписку в очередь ** ** OnDocPublished срабатывает только при публикации ресурса через контекстное ** меню документа в дереве ресурсов ** ** В шаблоне sendex в месте куда нужно вставлять контент должен быть ** тег <div id="content"></div> */ if ($modx->event->name == 'OnDocPublished') { if ($resource->get('parent') != 3) return; // 3 - ID раздела с новостями // Получение шаблона $response = $modx->runProcessor('element/template/get', array( 'id' => 4 // 4 - ID шаблона sendex )); if ($response->isError()) { $modx->log(modX::LOG_LEVEL_ERROR, 'SendexOnNewsPublished - ошибка чтения шаблона. '.$response->getMessage()); return; } else { $template = $response->getObject(); } $newTplContent = preg_replace('/(<div.*?id="content"[^>]*>)(.*?)(<\/div>)/i', '<div id="content"> <a href=http://site-name.com/index.php?id='.$resource->get('id').'>'.$resource->get('pagetitle').'</a> </div>', $template['content'], 1); $data = $template; $data['content'] = $newTplContent; //Запись контента новости в шаблон $response = $modx->runProcessor('element/template/update', $data); if ($response->isError()) { $modx->log(modX::LOG_LEVEL_ERROR, 'SendexOnNewsPublished - ошибка записи в шаблон. '.$response->getMessage()); return; } else { $modx->cacheManager->clearCache(); } // Отправка шаблона в очередь рассылки $modx->addPackage('sendex', MODX_CORE_PATH . 'components/sendex/model/'); if ($newsletter = $modx->getObject('sxNewsletter', $resource->getTVValue('poroda'))) { // $resource->getTVValue('poroda') - ID рассылки $response = $newsletter->addQueues(); if ($response !== true) { echo $response;die; } } } return; need to call this
send("gate.iqsms.ru", 80, "api_login", "api_password", "7хххххххххх", "text here", "iqsms", "wap.yousite.ru");