- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/ui/preview/task.php
- Класс: BitrixTasksUiPreviewTask
- Вызов: Task::getImRich
static function getImRich(array $params)
{
if (!Loader::includeModule('im'))
{
return false;
}
if (!class_exists('BitrixImV2EntityUrlRichData'))
{
return false;
}
$taskId = (int)$params['taskId'];
if (!$taskId)
{
return false;
}
$task = new CTaskItem($taskId, static::getUser()->getId());
if (!$task)
{
return false;
}
try
{
$select = ['ID', 'TITLE', 'DESCRIPTION', 'RESPONSIBLE_ID', 'CREATED_BY', 'AUDITORS', 'ACCOMPLICES'];
$taskData = $task->getData(false, ['select' => $select], false);
}
catch (TasksException $exception)
{
return false;
}
$membersIds = array_merge(
[(int)$taskData['CREATED_BY']],
[(int)$taskData['RESPONSIBLE_ID']],
array_map(static fn ($id) => (int)$id, $taskData['AUDITORS'] ?? []),
array_map(static fn ($id) => (int)$id, $taskData['ACCOMPLICES'] ?? [])
);
$membersIds = array_values(array_unique($membersIds));
$richData = new BitrixImV2EntityUrlRichData();
$link = CTaskNotifications::getNotificationPath(
['ID' => $taskData['RESPONSIBLE_ID']],
$taskData['ID']
);
$richData
->setType(BitrixImV2EntityUrlRichData::TASKS_TYPE)
->setName(CTextParser::clearAllTags($taskData['TITLE']))
->setDescription(CTextParser::clearAllTags($taskData['DESCRIPTION']))
->setLink($link)
->setAllowedUsers($membersIds)
;
return $richData;
}