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