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