%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.117.105.74 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/sender.letter.stat/ |
Upload File : |
<?php define('STOP_STATISTICS', true); define('BX_SECURITY_SHOW_MESSAGE', true); require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php'); use Bitrix\Fileman\Block\Editor as BlockEditor; use Bitrix\Main\Context; use Bitrix\Main\HttpRequest; use Bitrix\Main\Loader; use Bitrix\Sender\Entity; use Bitrix\Sender\Internals\CommonAjax; use Bitrix\Sender\Internals\QueryController as Controller; use Bitrix\Sender\Stat; if (!Bitrix\Main\Loader::includeModule('sender')) { return; } $modifyLetterChecker = CommonAjax\Checker::getModifyLetterPermissionChecker(); $actions = array(); $actions[] = Controller\Action::create('getClickMap') ->setRequestMethodGet() ->setHandler( function (HttpRequest $request, Controller\Response $response) { $content = $response->initContentHtml(); $message = ''; $letter = new Entity\Letter($request->get('letterId')); if ($letter->isSupportHeatMap()) { try { $message = $letter->getMessage()->getConfiguration()->get('BODY'); } catch (\Bitrix\Main\SystemException $exception) { $message = $exception->getMessage(); } } Loader::includeModule('fileman'); $charset = Context::getCurrent()->getCulture()->getCharset(); $message = BlockEditor::getHtmlForEditor($message, $charset); $content->set($message); } ); $actions[] = Controller\Action::create('getReadByTime') ->setHandler( function (HttpRequest $request, Controller\Response $response) { $stat = Stat\Statistics::create()->filter('chainId', $request->get('letterId')); $stat->setCacheTtl(0); $content = $response->initContentJson(); $content->add('recommendedTime', $stat->getRecommendedSendTime()); $content->add('readingByTimeList', $stat->getReadingByDayTime()); } ); $actions[] = Controller\Action::create('resendErrors') ->setHandler( function (HttpRequest $request, Controller\Response $response) { $letter = new Entity\Letter($request->get('letterId')); $letter->sendErrors(); $response->initContentJson()->getErrorCollection()->add($letter->getErrors()); } )->addChecker($modifyLetterChecker); $actions[] = Controller\Action::create('getData') ->setHandler( function (HttpRequest $request, Controller\Response $response) { $content = $response->initContentJson(); $letter = new Entity\Letter($request->get('letterId')); $postingData = $letter->getLastPostingData(); $postingId = $postingData['ID']; if (!$postingId) { $content->addError('Posting not found.'); return; } $data = Stat\Posting::getData($letter->getId(), array( 'USER_NAME_FORMAT' => $request->get('nameTemplate'), 'PATH_TO_USER_PROFILE' => $request->get('pathToUserProfile'), )); $content->set($data); } ); $checker = CommonAjax\Checker::getViewLetterPermissionChecker(); Controller\Listener::create()->addChecker($checker)->setActions($actions)->run();