• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/mail.php
  • Класс: BitrixImOpenLinesMail
  • Вызов: Mail::prepareMessagesForTemplate
static function prepareMessagesForTemplate($session, $history, $language = null)
{
	$language = $language? $language: null;
	$mess = Loc::loadLanguageFile(__FILE__, $language);

	$userTzOffset = BitrixImUser::getInstance($session['USER_ID'])->getTzOffset();

	$messages = Array();
	foreach ($history['message'] as $messageId => $message)
	{
		if (empty($message['params']['CONNECTOR_MID']))
			continue;

		$isYou = $message['senderId'] == $session['USER_ID'];

		if ($message['senderId'] > 0)
		{
			if ($isYou)
			{
				$authorName = $mess['IMOL_MAIL_AUTHOR_YOU'];
			}
			else
			{
				$authorName = BitrixImOpenLinesConnector::getOperatorName($session['CONFIG_ID'], $message['senderId'], $session['USER_CODE']);
			}

			$authorAvatar = BitrixImOpenLinesConnector::getOperatorAvatar($session['CONFIG_ID'], $message['senderId'], $session['USER_CODE']);
			if ($authorAvatar)
			{
				$authorAvatar = mb_substr($authorAvatar, 0, 4) != 'http'? BitrixImOpenLinesCommon::getServerAddress().$authorAvatar: $authorAvatar;
			}
			else
			{
				$authorAvatar = '';
			}

			$systemFlag = 'N';
		}
		else
		{
			$authorName = '';
			$authorAvatar = '';
			$systemFlag = 'Y';
		}

		$currentDate = new BitrixMainTypeDateTime();
		if (is_object($message['date']))
		{
			$date = $message['date'];
		}
		else
		{
			$date = BitrixMainTypeDateTime::createFromTimestamp($message['date']);
		}

		if ($date->format('Ymd') == $currentDate->format('Ymd'))
		{
			$messageDate = FormatDate($mess['IMOL_MAIL_TIME_FORMAT'], $message['date']->getTimestamp()+intval($userTzOffset));
		}
		else
		{
			$messageDate = FormatDate($mess['IMOL_MAIL_DATETIME_FORMAT'], $message['date']->getTimestamp()+intval($userTzOffset));
		}

		if (isset($message['params']['IMOL_VOTE']))
		{
			if ($message['params']['IMOL_VOTE'] == 'like')
			{
				$messageText = $message['params']['IMOL_VOTE_LIKE'];
			}
			else if ($message['params']['IMOL_VOTE'] == 'dislike')
			{
				$messageText = $message['params']['IMOL_VOTE_DISLIKE'];
			}
			else
			{
				$messageText = $message['params']['IMOL_VOTE_TEXT'];
			}
		}
		else
		{
			$messageText = $message['textLegacy'];

			if (isset($message['params']['FILE_ID']))
			{
				$messageText .= ' ['.$mess['IMOL_MAIL_FILE'].']';

				$messageText = trim($messageText);
			}
		}

		$messages[$messageId] = Array(
			'NAME' => htmlspecialcharsbx($authorName),
			'AVATAR' => $authorAvatar,
			'DATE' => $messageDate,
			'TEXT' => $messageText,
			'CLIENT' => $isYou? 'Y': 'N',
			'SYSTEM' => $systemFlag,
		);
	}

	return $messages;
}