- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/mail.php
- Класс: BitrixImOpenLinesMail
- Вызов: Mail::sendOperatorAnswer
static function sendOperatorAnswer($sessionId)
{
$sessionId = intval($sessionId);
if ($sessionId <= 0 || !BitrixMainLoader::includeModule('im'))
{
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)
));
if ($session = $orm->fetch())
{
BitrixImOpenlinesModelSessionCheckTable::update($session['ID'], Array(
'DATE_MAIL' => null
));
}
if (!$session || $session['SOURCE'] != 'livechat' || $session['SPAM'] == 'Y')
{
return false;
}
$email = BitrixImUser::getInstance($session['USER_ID'])->getEmail();
if (!$email)
{
return false;
}
$messages = self::prepareOperatorAnswerForTemplate($session['ID'], false);
if ($messages <= 0)
{
return false;
}
$mess = Loc::loadLanguageFile(__FILE__, $session['CONFIG_LANGUAGE_ID']? $session['CONFIG_LANGUAGE_ID']: null);
$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_ANSWER_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_CONFIG_ID" => $session['CONFIG_ID'],
"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_OPERATOR_ANSWER", SITE_ID, $arFields, "N", "", array(), $session['CONFIG_LANGUAGE_ID']);
return true;
}