- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/controller/controlbutton.php
- Класс: BitrixIntranetControllerControlButton
- Вызов: ControlButton::getTaskData
private function getTaskData($entityId): array
{
global $USER;
if (!Loader::includeModule('tasks'))
{
return [];
}
if (
!BitrixTasksAccessTaskAccessController::can(
$USER->GetID(),
BitrixTasksAccessActionDictionary::ACTION_TASK_READ,
$entityId
)
)
{
return [];
}
$query = new Query(BitrixTasksInternalsTaskTable::getEntity());
$query->setSelect([
'ID',
'TITLE',
'DESCRIPTION',
'DEADLINE',
'STATUS',
'CREATED_BY',
'GROUP_ID',
'TM_USER_ID' => 'TM.USER_ID',
//'TM_TYPE' => 'TM.TYPE',
]);
$query->setFilter([
'=ID' => $entityId,
]);
$query->registerRuntimeField('', new ReferenceField(
'TM',
BitrixTasksInternalsTaskMemberTable::getEntity(),
['=ref.TASK_ID' => 'this.ID']
));
$res = $query->exec();
$task = [
'USER_IDS' => [],
];
while ($item = $res->fetch())
{
$task['ID'] = $item['ID'];
$task['TITLE'] = $item['TITLE'];
$task['DESCRIPTION'] = $item['DESCRIPTION'];
$task['CREATED_BY'] = $item['CREATED_BY'];
$task['GROUP_ID'] = $item['GROUP_ID'];
$task['LINK'] = SITE_DIR . 'company/personal/user/' . $item['CREATED_BY'] . '/tasks/task/view/' . $item['ID'] . '/';
$userId = (int)$item['TM_USER_ID'];
$userType = $item['TM_TYPE'];
unset($item['TM_USER_ID'], $item['TM_TYPE']);
$task['SE_MEMBER'][$userId] = ['USER_ID' => $userId, 'TYPE' => $userType];
if (!in_array($userId, $task['USER_IDS'], true))
{
$task['USER_IDS'][] = $userId;
}
/*$roleMap = ['O' => 'CREATED_BY', 'R' => 'RESPONSIBLE_ID'];
if (array_key_exists($userType, $roleMap))
{
$tasks[$taskId][$roleMap[$userType]] = $userId;
}*/
}
$this->checkUsers($task['USER_IDS']);
return $task;
}