- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/database/structure/closuretree.php
- Класс: Bitrix\Tasks\Internals\DataBase\Structure\is
- Вызов: is::getSubTree
static function getSubTree($id, array $parameters = array(), array $settings = array()) { /** @var DataManager $dc */ $dc = static::getDataController(); $pCName = static::getParentNodeColumnName(); $cName = static::getNodeColumnName(); $id = intval($id); $parameters['runtime'][] = new Entity\ReferenceField( 'TDD', $dc::getEntity(), array( '=ref.'.$cName => 'this.'.$cName, '=ref.DIRECT' => array('?', '1'), '!=ref.'.$cName => 'ref.'.$pCName, ), array( //'join_type' => 'inner' ) ); $parameters['filter']['='.$pCName] = $id; $parameters['select'][] = $cName; $parameters['select']['ACTUAL_PARENT_ID'] = 'TDD.'.$pCName; $res = $dc::getList($parameters); $data = array(); $returnArray = ($settings['RETURN_ARRAY'] ?? null); if ($returnArray && ($settings['GROUP_PARENT'] ?? null)) { while($item = $res->fetch()) { $parentId = $item['ACTUAL_PARENT_ID']; unset($item['ACTUAL_PARENT_ID']); $data[intval($parentId)][$item[$cName]] = $item; } return $data; } while($item = $res->fetch()) { $item['__PARENT_ID'] = $item['ACTUAL_PARENT_ID']; $item['__ID'] = $item[$cName]; unset($item['ACTUAL_PARENT_ID']); unset($item[$cName]); $data[$item['__ID']] = $item; } if ($returnArray) { return $data; } return new ClosureTree\Fragment($data); }