• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskitem.php
  • Класс: CTaskItem
  • Вызов: CTaskItem::checkIsSubtaskOf
public function checkIsSubtaskOf($taskId)
{
	$met = array();
	$exitLimit = 1000;

	// recursive queries, no tree structure here

	$task = $this->getId();
	$met[$task] = true;
	$i = 0;
	while(true)
	{
		if($i === 0)
		{
			$parent = $this['PARENT_ID'];
		}
		else
		{
			$parent = CTasks::getParentOfTask($task);
		}

		if(isset($met[$parent])) // chain is loopy
		{
			return false;
		}
		if($i > $exitLimit) // smth is too wrong
		{
			return false;
		}

		if($parent === false || !intval($parent)) // no parent anymore
		{
			return false;
		}

		if($parent == $taskId) // found
		{
			return true;
		}

		$met[$parent] = true;
		$task = $parent;
		$i++;
	}

	return false;
}