- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/mail.php
- Класс: BitrixImOpenLinesMail
- Вызов: Mail::sendSessionHistory
static function sendSessionHistory($sessionId, $email)
{
$sessionId = intval($sessionId);
if ($sessionId <= 0 || $email == '')
{
return false;
}
$select = ModelSessionTable::getSelectFieldsPerformance();
$select['CONFIG_LINE_NAME'] = 'CONFIG.LINE_NAME';
$select['CONFIG_LANGUAGE_ID'] = 'CONFIG.LANGUAGE_ID';
$select['LIVECHAT_URL_CODE'] = 'LIVECHAT.URL_CODE';
$select['LIVECHAT_URL_CODE_PUBLIC'] = 'LIVECHAT.URL_CODE_PUBLIC';
$orm = ModelSessionTable::getList(Array(
'select' => $select,
'filter' => Array('=ID' => $sessionId)
));
$session = $orm->fetch();
if (!$session)
{
return false;
}
$mess = Loc::loadLanguageFile(__FILE__, $session['CONFIG_LANGUAGE_ID']? $session['CONFIG_LANGUAGE_ID']: null);
Log::write(Array(
'LANG' => $select['CONFIG_LANGUAGE_ID']? $select['CONFIG_LANGUAGE_ID']: null,
'MESS' => $mess
));
$lineName = $session['CONFIG_LINE_NAME'];
$widgetUrl = $session['EXTRA_URL'];
if (empty($widgetUrl))
{
if (!empty($session['LIVECHAT_URL_CODE_PUBLIC']))
{
$widgetUrl = BitrixImOpenLinesCommon::getServerAddress().'/online/'.$session['LIVECHAT_URL_CODE_PUBLIC'];
}
else if (!empty($session['LIVECHAT_URL_CODE']))
{
$widgetUrl = BitrixImOpenLinesCommon::getServerAddress().'/online/'.$session['LIVECHAT_URL_CODE'];
}
}
$widgetUrlParsed = parse_url($widgetUrl);
$title = str_replace(
Array('#SITE_URL#', '#SESSION_ID#'),
Array($widgetUrlParsed['host'], $sessionId),
$mess['IMOL_MAIL_HISTORY_TITLE']
);
$actionTitle = $mess['IMOL_MAIL_HISTORY_ACTION_TITLE'];
$actionDesc = str_replace(
Array('#SESSION_ID#'),
Array($sessionId),
$mess['IMOL_MAIL_HISTORY_ACTION_DESC']
);
$arFields = array(
"EMAIL_TO" => $email,
"EMAIL_TITLE" => $title,
"TEMPLATE_SERVER_ADDRESS" => BitrixImOpenLinesCommon::getServerAddress(),
"TEMPLATE_SESSION_ID" => $sessionId,
"TEMPLATE_ACTION_TITLE" => $actionTitle,
"TEMPLATE_ACTION_DESC" => $actionDesc,
"TEMPLATE_WIDGET_DOMAIN" => $widgetUrlParsed['host'],
"TEMPLATE_WIDGET_URL" => $widgetUrl,
"TEMPLATE_LINE_NAME" => $lineName,
);
$event = new CEvent;
$event->Send("IMOL_HISTORY_LOG", SITE_ID, $arFields, "N", "", Array(), $session['CONFIG_LANGUAGE_ID']);
CEvent::ExecuteEvents();
ModelSessionTable::update($session['ID'], Array('SEND_HISTORY' => 'Y'));
return true;
}