- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/webdavstorage.php
- Класс: CWebDavStorageCore
- Вызов: CWebDavStorageCore::formatFileToResponse
protected function formatFileToResponse(array $file, $markAsSymlink = null)
{
if(empty($file))
{
return array();
}
$storageId = $this->getStorageId();
$rootSection = isset($storageId['IBLOCK_SECTION_ID'])? $storageId['IBLOCK_SECTION_ID'] : null;
$result = array(
'id' => $this->generateId($file),
'isDirectory' => false,
'isDeleted' => false,
'storageId' => $this->getStringStorageId(),
'path' => isset($file['PATH']) ? '/' . trim($file['PATH'], '/') : null,
'name' => $file['NAME'],
'revision' => (string)$file['PROPERTY_FILE_VALUE'],
'version' => (string)$this->generateTimestamp($file['TIMESTAMP_X']),
'extra' => array(
'id' => (string)$file['ID'],
'iblockId' => (string)$file['IBLOCK_ID'],
'sectionId' => (string)$file['IBLOCK_SECTION_ID'],
'rootSectionId' => (string)$rootSection,
'name' => $file['NAME'],
),
'size' => isset($file['FILE']['FILE_SIZE'])? (string)$file['FILE']['FILE_SIZE'] : '0',
'permission' => $this->getRightFile($file),
'createdBy' => (string)$file['CREATED_BY'],
'modifiedBy' => (string)$file['MODIFIED_BY'],
);
if($rootSection != $file['IBLOCK_SECTION_ID'])
{
$result['parentId'] = $this->generateId(array('FILE' => false, 'ID' => $file['IBLOCK_SECTION_ID']));
}
if($markAsSymlink === null)
{
global $USER;
if(CWebDavSymlinkHelper::isLink(CWebDavSymlinkHelper::ENTITY_TYPE_USER, $USER->getId(), array(
'ID' => $file['IBLOCK_SECTION_ID'],
'IBLOCK_ID' => $file['IBLOCK_ID'],
)))
{
$markAsSymlink = true;
$result['path'] =
'/' .
trim(implode('/', $this->getPathArrayForSection($file['IBLOCK_SECTION_ID'])), '/') .
'/' .
$file['NAME']
;
}
}
if($markAsSymlink)
{
$result['extra']['inSymlink'] = '1';
}
return $result;
}