- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/uf/controller.php
- Класс: BitrixDiskUfController
- Вызов: Controller::listItems
protected function listItems(Storage $storage, $path = '/')
{
$currentFolderId = Driver::getInstance()->getUrlManager()->resolveFolderIdFromPath($storage, $path);
/** @var Folder $folder */
$folder = Folder::loadById($currentFolderId);
if(!$folder)
{
$this->errorCollection->add(array(new Error('Could not find folder by path')));
$this->sendJsonErrorResponse();
}
$securityContext = $storage->getCurrentUserSecurityContext();
$urlManager = Driver::getInstance()->getUrlManager();
$urlForLoadItems = $urlManager->getUrlUfController('loadItems');
$response = array();
$path = rtrim($path, '/') . '/';
foreach($folder->getChildren($securityContext, array('with' => array('UPDATE_USER'))) as $item)
{
/** @var File|Folder $item */
$isFolder = $item instanceof Folder;
$id = $item->getId();
$res = array(
'id' => $item->getId(),
'type' => $isFolder ? 'folder' : 'file',
'link' => $urlForLoadItems,
'name' => $item->getName(),
'path' => $path . $item->getName(),
'size' => $isFolder ? '' : CFile::formatSize($item->getSize()),
'sizeInt' => $isFolder ? '' : $item->getSize(),
'modifyBy' => $item->getUpdateUser()->getFormattedName(),
'modifyDate' => $item->getUpdateTime()->format('d.m.Y'),
'modifyDateInt' => $item->getUpdateTime()->getTimestamp(),
);
if (!$isFolder)
{
$extension = $item->getExtension();
$id = FileUserType::NEW_FILE_PREFIX.$item->getId();
$res = array_merge(
$res,
array(
'id' => $id,
'ext' => $extension,
'storage' => $folder->getName()
)
);
if (TypeFile::isImage($item))
{
$res['previewUrl'] = $urlManager->getUrlForShowFile($item);
}
$fileType = $item->getView()->getEditorTypeFile();
if(!empty($fileType))
{
$res['fileType'] = $fileType;
}
}
$response[$id] = $res;
}
unset($item);
return $response;
}