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