- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/folder.php
- Класс: BitrixDiskFolder
- Вызов: Folder::getDescendants
public function getDescendants(SecurityContext $securityContext, array $parameters = array(), $orderDepthLevel = SORT_ASC)
{
if(!isset($parameters['filter']))
{
$parameters['filter'] = array();
}
if(!isset($parameters['select']))
{
$parameters['select'] = array('*');
}
if(!empty($parameters['filter']['MIXED_SHOW_DELETED']))
{
unset($parameters['filter']['DELETED_TYPE'], $parameters['filter']['MIXED_SHOW_DELETED']);
}
elseif (
!array_key_exists('DELETED_TYPE', $parameters['filter']) &&
!array_key_exists('!DELETED_TYPE', $parameters['filter']) &&
!array_key_exists('!=DELETED_TYPE', $parameters['filter']) &&
!array_key_exists('!==DELETED_TYPE', $parameters['filter'])
)
{
$parameters['filter']['DELETED_TYPE'] = ObjectTable::DELETED_TYPE_NONE;
}
$parameters['select']['DEPTH_LEVEL'] = 'PATH_CHILD.DEPTH_LEVEL';
$parameters = Driver::getInstance()->getRightsManager()->addRightsCheck($securityContext, $parameters, array('ID', 'CREATED_BY'));
$data = FolderTable::getDescendants($this->id, static::prepareGetListParameters($parameters))->fetchAll();
if($orderDepthLevel !== null)
{
Collection::sortByColumn($data, array('DEPTH_LEVEL' => $orderDepthLevel));
}
$modelData = array();
foreach($data as $item)
{
$modelData[] = BaseObject::buildFromArray($item);
}
unset($item);
return $modelData;
}