• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/chat.php
  • Класс: BitrixImOpenLinesChat
  • Вызов: Chat::getParamsAddChat
protected function getParamsAddChat(array $params): array
{
	$result = [
		'TYPE' => IM_MESSAGE_OPEN_LINE,
		'AVATAR_ID' => 0,
		'USERS' => false,
		'DESCRIPTION' => '',
		'ENTITY_TYPE' => 'LINES',
		'ENTITY_ID' => $params['USER_CODE'],
		'SKIP_ADD_MESSAGE' => 'Y',
	];

	$connectorId = self::parseLinesChatEntityId($params['USER_CODE'])['connectorId'];

	$userName = '';
	$chatColorCode = '';
	if ($params['USER_ID'])
	{
		$rawUser = UserTable::getById($params['USER_ID']);
		if ($user = $rawUser->fetch())
		{
			if ($user['PERSONAL_PHOTO'] > 0)
			{
				$result['AVATAR_ID'] = CFile::CopyFile($user['PERSONAL_PHOTO']);
			}
			$result['USERS'] = [$params['USER_ID']];

			if (
				$connectorId !== 'livechat'
				|| !empty($user['NAME']))
			{
				$userName = User::getInstance($params['USER_ID'])->getFullName(false);
			}
			$chatColorCode = Color::getCodeByNumber($params['USER_ID']);
			if (User::getInstance($params['USER_ID'])->getGender() === 'M')
			{
				$replaceColor = Color::getReplaceColors();
				if (isset($replaceColor[$chatColorCode]))
				{
					$chatColorCode = $replaceColor[$chatColorCode];
				}
			}
		}
	}

	if (isset($params['CONNECTOR']['chat']['description']))
	{
		$result['DESCRIPTION'] = trim($params['CONNECTOR']['chat']['description']);
	}

	if (empty($params['LINE_NAME']))
	{
		$lineId = self::parseLinesChatEntityId($params['USER_CODE'])['lineId'];
		$configManager = new Config();
		$params['LINE_NAME'] = $configManager->get($lineId)['LINE_NAME'];
	}

	$titleParams = $this->getTitle($params['LINE_NAME'], $userName, $chatColorCode);

	$result['TITLE'] = $titleParams['TITLE'];
	$result['COLOR'] = $titleParams['COLOR'];

	return $result;
}