- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/volume/base.php
- Класс: BitrixDiskVolumeBase
- Вызов: Base::getCorrespondingFileList
public function getCorrespondingFileList(array $additionalFilter = []): MainDBResult
{
$filterToFileList = [];
$storageId = $this->getFilterValue('STORAGE_ID', '=');
if (!empty($storageId))
{
$filterToFileList['=STORAGE_ID'] = $storageId;
}
$folderId = $this->getFilterValue('FOLDER_ID', '=');
if (!empty($folderId))
{
$filterToFileList['=PATH_CHILD.PARENT_ID'] = $folderId;
}
$filterToFileList['=TYPE'] = DiskInternalsObjectTable::TYPE_FILE;
if ($this instanceof VolumeStorageTrashCan)
{
$filterToFileList['>=IS_REAL_OBJECT'] = 0;
}
else
{
$filterToFileList['=IS_REAL_OBJECT'] = 1;
}
if (!isset($additionalFilter['!DELETED_TYPE']))
{
$filterToFileList['=DELETED_TYPE'] = DiskInternalsObjectTable::DELETED_TYPE_NONE;
}
$filterToFileList = array_merge($filterToFileList, $additionalFilter);
$fileList = DiskFile::getList([
'select' => ['ID'],
'filter' => $filterToFileList,
'runtime' => [
'IS_REAL_OBJECT' => new MainEntityExpressionField(
'IS_REAL_OBJECT',
'CASE WHEN disk_internals_file.ID = disk_internals_file.REAL_OBJECT_ID THEN 1 ELSE 0 END'
),
],
'order' => [
'ID' => 'ASC',
],
'limit' => $this->getLimit(),
]);
return $fileList;
}