- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskplannermaintance.php
- Класс: CTaskPlannerMaintance
- Вызов: CTaskPlannerMaintance::getTasks
static function getTasks($arIDs = array(), $bOpened = false)
{
$res = null;
if (!is_array($arIDs) && $arIDs <> '')
{
$arIDs = unserialize($arIDs, ['allowed_classes' => false]);
}
$arIDs = array_values($arIDs);
$USER_ID = self::$USER_ID;
$res = array();
if (count($arIDs) > 0)
{
$pathTemplate = BitrixTasksIntegrationSocialnetworkUITask::getActionPath();
$arFilter = array('ID' => $arIDs);
if ($bOpened)
{
$arFilter['!STATUS'] = self::$arTaskStatusOpened;
}
$tasks = array();
$task2member = array();
$dbRes = CTasks::GetList(
array(),
$arFilter,
array(
'ID', 'RESPONSIBLE_ID', 'PRIORITY', 'STATUS', 'TITLE',
'TASK_CONTROL', 'TIME_SPENT_IN_LOGS', 'TIME_ESTIMATE',
'ALLOW_TIME_TRACKING'
)
);
while ($arRes = $dbRes->Fetch())
{
$arRes['TITLE'] = BitrixMainTextEmoji::decode($arRes['TITLE']);
$tasks[$arRes['ID']] = $arRes;
$task2member[$arRes['ID']]['ACCOMPLICES'] = array();
$task2member[$arRes['ID']]['AUDITORS'] = array();
}
$taskIds = array_keys($tasks);
if(!empty($taskIds))
{
$rsMembers = CTaskMembers::getList(
array(),
array('TASK_ID' => array_unique($taskIds))
);
while($arMember = $rsMembers->fetch())
{
$taskId = $arMember['TASK_ID'];
if ($arMember['TYPE'] == 'A')
{
$task2member[$taskId]['ACCOMPLICES'][] = $arMember['USER_ID'];
}
}
foreach($tasks as $id => $data)
{
// Permit only for responsible user and accomplices
if ($data['RESPONSIBLE_ID'] !== $USER_ID &&
!in_array($USER_ID, $task2member[$id]['ACCOMPLICES']))
{
continue;
}
$res[] = array(
'ID' => $data['ID'],
'RESPONSIBLE_ID' => $data['RESPONSIBLE_ID'],
'PRIORITY' => $data['PRIORITY'],
'STATUS' => $data['STATUS'],
'TITLE' => $data['TITLE'],
'TASK_CONTROL' => $data['TASK_CONTROL'],
'ALLOW_TIME_TRACKING' => $data['ALLOW_TIME_TRACKING'],
'TIME_SPENT_IN_LOGS' => $data['TIME_SPENT_IN_LOGS'],
'TIME_ESTIMATE' => $data['TIME_ESTIMATE'],
'URL' => BitrixTasksUITask::makeActionUrl($pathTemplate, $data['ID'], 'view', $USER_ID)
);
}
}
}
return $res;
}