• Модуль: 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;
}