- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/secretary.php
- Класс: BitrixIntranetSecretary
- Вызов: Secretary::createTaskChat
static function createTaskChat($taskData, $userId): int
{
if (!self::checkAccessForIm() || !self::checkAccessForCalendar())
{
throw new BitrixMainSystemException('create task chat: failed to load modules');
}
$chat = new CIMChat(0);
$chatFields = [
'TITLE' => $taskData['TITLE'],
'TYPE' => IM_MESSAGE_CHAT,
'ENTITY_TYPE' => 'TASKS',
'ENTITY_ID' => $taskData['ID'],
'SKIP_ADD_MESSAGE' => 'Y',
'AUTHOR_ID' => $userId,
'USERS' => $taskData['USER_IDS']
];
$chatId = $chat->add($chatFields);
if ($chatId)
{
$pathToTask = SITE_DIR . 'company/personal/user/' . $taskData['CREATED_BY'] . '/tasks/task/view/' . $taskData['ID'] . '/';
$entryLinkTitle = '[url=' . $pathToTask . ']' . $taskData['TITLE'] . '[/url]';
$chatMessageFields = [
'FROM_USER_ID' => $userId,
'MESSAGE' => Loc::getMessage(
'INTRANET_CONTROL_BUTTON_TASK_CHAT_FIRST_MESSAGE',
[
'#TASK_TITLE#' => $entryLinkTitle,
]
),
'SYSTEM' => 'Y',
'INCREMENT_COUNTER' => 'N',
'PUSH' => 'Y',
'TO_CHAT_ID' => $chatId,
'SKIP_USER_CHECK' => 'Y',
'SKIP_COMMAND' => 'Y'
];
CIMChat::addMessage($chatMessageFields);
}
return $chatId;
}