- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskplannermaintance.php
- Класс: CTaskPlannerMaintance
- Вызов: CTaskPlannerMaintance::OnPlannerInit
static function OnPlannerInit($params)
{
global $APPLICATION, $USER, $CACHE_MANAGER;
self::$SITE_ID = $params['SITE_ID'];
self::$USER_ID = ($params['USER_ID']? $params['USER_ID'] : $USER->GetID());
$tasks = array();
if (self::$USER_ID > 0)
{
$CACHE_MANAGER->RegisterTag('tasks_user_'.self::$USER_ID);
$CACHE_MANAGER->RegisterTag('tasks_user_fields');
$taskIds = self::getCurrentTasksList();
$tasksCount = self::getTasksCount($taskIds);
}
else
{
$taskIds = array();
$tasksCount = 0;
}
if (
$params['FULL']
&& self::$USER_ID > 0
&& is_array($taskIds)
&& !empty($taskIds)
)
{
$tasks = self::getTasks($taskIds);
}
CJSCore::RegisterExt('tasks_planner_handler', [
'js' => [
'/bitrix/js/tasks/core_planner_handler.js',
'/bitrix/js/tasks/task-iframe-popup.js',
],
'css' => '/bitrix/js/tasks/css/tasks.css',
'lang' => BX_ROOT.'/modules/tasks/lang/'.LANGUAGE_ID.'/core_planner_handler.php',
'rel' => ['ui.design-tokens', 'ui.fonts.opensans', 'popup', 'tooltip'],
]);
if (self::$USER_ID > 0)
{
$userTimer = CTaskTimerManager::getInstance(self::$USER_ID);
$lastTimer = $userTimer->getLastTimer();
$taskOnTimer = false;
if ($lastTimer !== false && $lastTimer['TASK_ID'])
{
// Timered task can be in day plan, try to found it
if (in_array($lastTimer['TASK_ID'], $taskIds))
{
foreach ($tasks as &$taskData)
{
if ($taskData['ID'] == $lastTimer['TASK_ID'])
{
$taskOnTimer = $taskData;
break;
}
}
unset($taskData);
}
// If task not found, select it
if ($taskOnTimer === false)
{
$neededTasks = self::getTasks([$lastTimer['TASK_ID']]);
if (!empty($neededTasks))
{
$neededTask = $neededTasks[0];
if (isset($neededTask) && (int)$neededTask['RESPONSIBLE_ID'] === (int)self::$USER_ID)
{
$taskOnTimer = $neededTask;
}
}
}
}
}
else
{
$lastTimer = false;
$taskOnTimer = false;
}
$pathTemplate = BitrixTasksIntegrationSocialnetworkUITask::getActionPath();
$taskAddUrl = BitrixTasksUITask::makeActionUrl($pathTemplate, 0, 'edit', self::$USER_ID);
$taskAddUrl .= '?'.http_build_query(['ADD_TO_TIMEMAN' => 'Y']);
$arResult = [
'DATA' => [
'TASKS_ENABLED' => true,
'TASKS' => $tasks,
'TASKS_COUNT' => $tasksCount,
'TASKS_TIMER' => $lastTimer,
'TASK_ON_TIMER' => $taskOnTimer,
'MANDATORY_UFS' => (CTasksRarelyTools::isMandatoryUserFieldExists() ? 'Y' : 'N'),
'TASK_ADD_URL' => $taskAddUrl,
],
'STYLES' => ['/bitrix/js/tasks/css/tasks.css'],
'SCRIPTS' => ['CJSTask', 'taskQuickPopups', 'tasks_planner_handler'],
];
return ($arResult);
}