- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/chat/chat.php
- Класс: BitrixLandingChatChat
- Вызов: Chat::add
static function add($fields)
{
if (array_key_exists('CHAT_ID', $fields))
{
unset($fields['CHAT_ID']);
}
if (array_key_exists('AVATAR', $fields))
{
$avatarId = self::getAvatarId($fields['AVATAR']);
}
else
{
$avatarId = 0;
}
// first create chat in th IM module
if (
isset($fields['TITLE']) &&
BitrixMainLoader::includeModule('im')
)
{
$userId = Manager::getUserId();
$chat = new CIMChat(0);
$chatId = $chat->add([
'TITLE' => $fields['TITLE'],
'USERS' => [$userId],
'AVATAR_ID' => $avatarId,
'OWNER_ID' => $userId,
'ENTITY_TYPE' => 'LANDING'
]);
if ($chatId)
{
// welcome message
CIMChat::addMessage([
'FROM_USER_ID' => $userId,
'SYSTEM' => 'Y',
'TO_CHAT_ID' => $chatId,
'MESSAGE' => Loc::getMessage('LANDING_CHAT_WELCOME_CREATE_MESSAGE'),
]);
$fields['CHAT_ID'] = $chatId;
// and create internal chat
$result = parent::add($fields);
if ($result->isSuccess())
{
CIMChat::SetChatParams($chatId, [
'ENTITY_ID' => $result->getId()
]);
}
return $result;
}
}
return parent::add($fields);
}