• Модуль: 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',
	]);
}