• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblock.php
  • Класс: CWebDavIblock
  • Вызов: CWebDavIblock::getSectionDataForLinkAnalyze
private function getSectionDataForLinkAnalyze($sectionId, array $miscData = array(), $forwardFromSymlinkSectionToReal = true)
{
	if(!empty($miscData['IBLOCK_ID']))
	{
		$iblockId = $miscData['IBLOCK_ID'];
		CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $iblockId);
	}
	else
	{
		$iblockId = CWebDavSymlinkHelper::getIblockIdForSectionId($sectionId);
	}

	if($forwardFromSymlinkSectionToReal)
	{
		if(!empty($this->arParams['dir_array']['ID']) && $this->arParams['dir_array']['ID'] == $sectionId)
		{
			//this sectionId is symlink. Forward data to symlink data
			if(!empty($this->arParams['dir_array'][self::UF_LINK_IBLOCK_ID]))
			{
				$sectionId = $this->arParams['dir_array'][self::UF_LINK_SECTION_ID];
				$iblockId = $this->arParams['dir_array'][self::UF_LINK_IBLOCK_ID];

				CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $iblockId);
			}
			else
			{
				$iblockId = $this->arParams['dir_array']['IBLOCK_ID'];
				CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $iblockId);
			}
		}
		elseif(!empty($miscData['dir_array']['ID']) && $miscData['dir_array']['ID'] == $sectionId)
		{
			//this sectionId is symlink. Forward data to symlink data
			if(!empty($miscData['dir_array'][self::UF_LINK_IBLOCK_ID]))
			{
				$sectionId = $miscData['dir_array'][self::UF_LINK_SECTION_ID];
				$iblockId = $miscData['dir_array'][self::UF_LINK_IBLOCK_ID];

				CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $iblockId);
			}
			else
			{
				$iblockId = $miscData['dir_array']['IBLOCK_ID'];
				CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $iblockId);
			}
		}
		elseif(!empty($miscData['ID']) && $miscData['ID'] == $sectionId)
		{
			//this sectionId is symlink. Forward data to symlink data
			if(!empty($miscData[self::UF_LINK_IBLOCK_ID]))
			{
				$sectionId = $miscData[self::UF_LINK_SECTION_ID];
				$iblockId = $miscData[self::UF_LINK_IBLOCK_ID];

				CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $iblockId);
			}
			else
			{
				$iblockId = $miscData['IBLOCK_ID'];
				CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $iblockId);
			}
		}
	}

	return array(
		'ID' => $sectionId,
		'IBLOCK_ID' => $iblockId,
	);
}