private function getSectionDataByAttachObject(array $attachObject) { if (empty($attachObject['type'])) { throw new \Bitrix\Main\ArgumentException('type', 'attachObject'); } if (!isset($attachObject['id'])) { throw new \Bitrix\Main\ArgumentException('id', 'attachObject'); } if ($attachObject['type'] == \CWebDavSymlinkHelper::ENTITY_TYPE_GROUP) { $data = \CWebDavIblock::getRootSectionDataForGroup((int) $attachObject['id']); $data['SOCNET_GROUP_ID'] = $attachObject['id']; return $data; } if ($attachObject['type'] == \CWebDavSymlinkHelper::ENTITY_TYPE_USER) { $sectionId = (int) $attachObject['id']; $sectionData = \CIBlockSection::getList(array(), array('ID' => $sectionId, 'CHECK_PERMISSIONS' => 'Y'), false, array('SOCNET_GROUP_ID', 'IBLOCK_ID', 'CREATED_BY', 'NAME')); if (!$sectionData || !($sectionData = $sectionData->fetch())) { return array(); } $allowableIblock = false; $iblockType = false; foreach (array('user_files', 'group_files', 'shared_files') as $type) { $wdIblockOptions = \CWebDavIblock::libOptions($type, false, SITE_ID); if (is_set($wdIblockOptions, 'id') && intval($wdIblockOptions['id']) > 0) { if ($sectionData['IBLOCK_ID'] == $wdIblockOptions['id']) { $allowableIblock = true; $iblockType = $type; } } } if (!$allowableIblock) { return array(); } \CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $sectionData['IBLOCK_ID']); return array('NAME' => $sectionData['NAME'], 'IBLOCK_ID' => $sectionData['IBLOCK_ID'], 'IBLOCK_TYPE' => $iblockType, 'SECTION_ID' => $sectionId, 'CREATED_BY' => $sectionData['CREATED_BY'], 'SOCNET_GROUP_ID' => isset($sectionData['SOCNET_GROUP_ID']) ? $sectionData['SOCNET_GROUP_ID'] : null); } throw new \Bitrix\Main\ArgumentException('Wrong type', 'attachObject'); }
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); }