- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/internals/commonajax/actionpreview.php
- Класс: Bitrix\Sender\Internals\CommonAjax\ActionPreview
- Вызов: ActionPreview::onRequest
static function onRequest(Main\HttpRequest $request, Controller\Response $response)
{
$content = $response->initContentHtml();
Main\Loader::includeModule('fileman');
$canEditPhp = Security\User::current()->canEditPhp();
$canUseLpa = Security\User::current()->canUseLpa();
$tracker = (new Tracker(Tracker::TYPE_UNSUB))
->setModuleId('sender')
->setFields(array(
'RECIPIENT_ID' => 0,
'MAILING_ID' => 0,
'EMAIL' => 'test@example.com',
'CODE' => 'test@example.com',
'TEST' => 'Y'
))
->setHandlerUri(Option::get('sender', 'unsub_link'));
$html = $request->getPostList()->getRaw('content');
preg_match_all("/#([0-9a-zA-Z_.]+?)#/", $html, $personalizeFields);
$fieldsData = [];
if(is_object($GLOBALS["USER"]) && isset($personalizeFields[1]))
{
foreach ($personalizeFields[1] as $field)
{
$fieldArray = explode(".", $field);
if(count($fieldArray) > 1)
{
$document = Helper::getData(
$fieldArray[0], [$GLOBALS["USER"]->GetID()]
);
if(!isset($document[1]))
{
continue;
}
$document = $document[1];
$fieldsData[$field] = $document
&& isset($document[$fieldArray[1]])
? $document[$fieldArray[1]] :'';
}
}
}
$previewParams = array(
'CAN_EDIT_PHP' => $canEditPhp,
'CAN_USE_LPA' => $canUseLpa,
'SITE' => $request->get('site_id') ?: SITE_ID,
'HTML' => ($html && Main\Text\Encoding::detectUtf8($html))
? Main\Text\Encoding::convertEncoding(
$html,
'UTF-8',
SITE_CHARSET
)
: $html
,
'FIELDS' => array_merge($fieldsData, array(
'SENDER_CHAIN_CODE' => 'sender_chain_item_0',
'UNSUBSCRIBE_LINK' => $tracker->getLink()
)),
);
$html = EditorMail::getPreview($previewParams);
$content->set($html);
}