- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/symlinkhelper.php
- Класс: CWebDavSymlinkHelper
- Вызов: CWebDavSymlinkHelper::getLinkData
static function getLinkData($entityType, $entityId, $sectionData)
{
$chain = self::getNavChain($sectionData['IBLOCK_ID'], $sectionData['ID']);
$sectionIds = array();
foreach ($chain as $item)
{
$sectionIds[] = $item['ID'];
}
unset($item);
//hack. Now we have symlink only in user library. And then entityType ~equals to user
if($entityType == self::ENTITY_TYPE_USER)
{
$userLib = CWebDavIblock::LibOptions('user_files', false, SITE_ID);
if ($userLib && isset($userLib['id']) && ($iblockId = intval($userLib['id'])))
{
$rootSection = self::getRootSectionData($entityType, $entityId);
if(empty($rootSection))
{
$rootSection = CWebDavIblock::getRootSectionDataForUser($entityId);
if(empty($rootSection))
{
return array();
}
$margins = CIBlockSection::GetList(array(), array(
'ID' => $rootSection['SECTION_ID'],
'IBLOCK_ID' => $rootSection['IBLOCK_ID'],
'CHECK_PERMISSIONS' => 'N',
), false, array('LEFT_MARGIN', 'RIGHT_MARGIN', 'IBLOCK_ID'));
if(!$margins)
{
return array();
}
$rootSection = $margins->fetch();
self::addRootSectionData($entityType, $entityId, $rootSection);
}
$symlinkSection = CIBlockSection::getList(
array(),
array(
'IBLOCK_ID' => $iblockId,
CWebDavIblock::UF_LINK_SECTION_ID => $sectionIds,
'CHECK_PERMISSIONS' => 'N',
'>LEFT_BORDER' => $rootSection['LEFT_MARGIN'],
' $rootSection['RIGHT_MARGIN'],
),
false,
CWebDavIblock::getUFNamesForSectionLink()
);
if(!$symlinkSection || !($symlinkSection = $symlinkSection->fetch()))
{
return array();
}
return $symlinkSection;
}
}
elseif($entityType == self::ENTITY_TYPE_GROUP)
{
return array();
}
elseif($entityType == self::ENTITY_TYPE_SECTION) //or any another context
{
return array();
}
elseif($entityType == self::ENTITY_TYPE_SHARED)
{
return array();
}
}