• Модуль: 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;
}