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