• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/util/scheduler.php
  • Класс: BitrixTasksUtilScheduler
  • Вызов: Scheduler::makeRelationTree
private function makeRelationTree($fromTaskId, array $relations, array $taskData)
{
	if(is_array($relations[$fromTaskId]) && !empty($relations[$fromTaskId]))
	{
		foreach($relations[$fromTaskId] as $taskId => $relation)
		{
			if(!isset($this->taskPool[$taskId]))
			{
				$taskItem = CTaskItem::constructWithPreloadedData($this->userId, $taskData[$taskId]);
				$taskItem->setCalendar($this->calendar);
			}
			else
			{
				$taskItem = $this->taskPool[$taskId];
			}

			// no deal with tasks with no created date, skip the subtree
			if((string) $taskItem['CREATED_DATE'] == '')
			{
				continue;
			}

			if(!$taskItem->isActionAllowed(CTaskItem::ACTION_CHANGE_DEADLINE)) // no access, skip the whole subtree
			{
				continue;
			}
			else
			{
				$this->taskPool[$taskId] = $taskItem;
				$this->relations[$fromTaskId][$taskId] = $relation;

				$this->makeRelationTree($taskId, $relations, $taskData);
			}
		}
	}
}