- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat/GroupChat.php
- Класс: BitrixImV2ChatGroupChat
- Вызов: GroupChat::sendInviteMessage
protected function sendInviteMessage(?int $authorId = null): void
{
if (!$authorId)
{
$authorId = $this->getAuthorId();
}
$author = BitrixImV2EntityUserUser::getInstance($authorId);
$userIds = array_unique($this->getUserIds());
if (count($userIds) < 2)
{
return;
}
$userIds = CIMContactList::PrepareUserIds($userIds);
$users = CIMContactList::GetUserData([
'ID' => array_values($userIds),
'DEPARTMENT' => 'N',
'USE_CACHE' => 'N'
]);
if (!isset($users['users']) || count($users['users']) < 2)
{
return;
}
$usersNames = [];
if ($authorId !== $this->getAuthorId())
{
$usersNames[] = htmlspecialcharsback($this->getAuthor()->getName());
}
foreach ($users['users'] as $user)
{
if ($user['name'] !== $author->getName())
{
$usersNames[] = htmlspecialcharsback($user['name']);
}
}
$messageText = Loc::getMessage(
'IM_CHAT_JOIN_' . $author->getGender(),
[
'#USER_1_NAME#' => htmlspecialcharsback($author->getName()),
'#USER_2_NAME#' => implode(', ', array_unique($usersNames))
]
);
CIMMessage::Add([
'MESSAGE_TYPE' => self::IM_TYPE_CHAT,
'TO_CHAT_ID' => $this->getChatId(),
'FROM_USER_ID' => $author->getId(),
'MESSAGE' => $messageText,
'SYSTEM' => 'Y',
]);
}