• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat/GeneralChat.php
  • Класс: BitrixImV2ChatGeneralChat
  • Вызов: GeneralChat::sendMessageUsersAdd
protected function sendMessageUsersAdd(array $usersToAdd, bool $skipRecent = false): void
{
	if ($this->getContext()->getUserId() > 0)
	{
		parent::sendMessageUsersAdd($usersToAdd, $skipRecent);

		return;
	}

	if (!self::getAutoMessageStatus(self::GENERAL_MESSAGE_TYPE_JOIN))
	{
		return;
	}

	$userCodes = [];
	foreach ($usersToAdd as $userId)
	{
		$userCodes[] = "[USER={$userId}][/USER]";
	}
	$userCodesString = implode(', ', $userCodes);

	if (count($usersToAdd) > 1)
	{
		$messageText = Loc::getMessage("IM_CHAT_GENERAL_JOIN_PLURAL", ['#USER_NAME#' => $userCodesString]);
	}
	else
	{
		$user = User::getInstance(current($usersToAdd));
		$genderModifier = $user->getGender() === 'F' ? '_F' : '';
		$messageText = Loc::getMessage('IM_CHAT_GENERAL_JOIN' . $genderModifier, ['#USER_NAME#' => $userCodesString]);
	}

	CIMChat::AddMessage([
		"TO_CHAT_ID" => $this->getId(),
		"MESSAGE" => $messageText,
		"FROM_USER_ID" => $this->getContext(),
		"SYSTEM" => 'Y',
		"RECENT_ADD" => $skipRecent ? 'N' : 'Y',
		"PARAMS" => [
			"CODE" => 'CHAT_JOIN',
			"NOTIFY" => $this->getEntityType() === self::ENTITY_TYPE_LINE? 'Y': 'N',
		],
		"PUSH" => 'N',
		"SKIP_USER_CHECK" => 'Y',
	]);
}