• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_chat.php
  • Класс: CIMChat
  • Вызов: CIMChat::AddSystemMessage
static function AddSystemMessage($params)
{
	$chatId = intval($params['CHAT_ID']);
	if ($chatId <= 0)
		return false;

	$arUser = false;
	$userId = intval($params['USER_ID']);
	if ($userId > 0)
	{
		$arSelect = Array("ID", "LAST_NAME", "NAME", "LOGIN", "SECOND_NAME", "PERSONAL_GENDER");
		$dbUsers = CUser::GetList('', '', array('ID_EQUAL_EXACT' => $userId), array('FIELDS' => $arSelect));
		if ($arUser = $dbUsers->Fetch())
		{
			$arUser['NAME'] = BitrixImUser::formatFullNameFromDatabase($arUser);
			$arUser['PERSONAL_GENDER'] = $arUser["PERSONAL_GENDER"] == 'F'? 'F': 'M';
		}
	}

	if (isset($params['MESSAGE_CODE']))
	{
		$messageReplace = is_array($params['MESSAGE_REPLACE'])? $params['MESSAGE_REPLACE']: Array();
		if ($arUser)
		{
			$messageReplace['#USER_NAME#'] = $arUser['NAME'];
			$message = GetMessage($params['MESSAGE_CODE'].$arUser['PERSONAL_GENDER'], $messageReplace);
		}
		else
		{
			$message = GetMessage($params['MESSAGE_CODE'], $messageReplace);
		}
	}
	else
	{
		$messageReplace = is_array($params['MESSAGE_REPLACE'])? $params['MESSAGE_REPLACE']: Array();
		$message = trim($params['MESSAGE']);
		if ($message <> '' && !empty($messageReplace))
		{
			$message = str_replace(array_keys($messageReplace), array_values($messageReplace), $message);
		}
	}
	if ($message == '')
		return false;

	return self::AddMessage(Array(
		"TO_CHAT_ID" => $chatId,
		"FROM_USER_ID" => $userId,
		"MESSAGE" => $message,
		"SYSTEM" => 'Y',
		"SKIP_USER_CHECK" => 'Y',
	));
}