コード例 #1
0
ファイル: iblock.php プロジェクト: mrdeadmouse/u136006
 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);
 }
コード例 #2
0
ファイル: webdavstorage.php プロジェクト: DarneoStudio/bitrix
 public function getDirectory($id, array $extra, $skipCheckId = false)
 {
     if (!$skipCheckId && $this->generateId(array('ID' => $extra['id'], 'FILE' => false)) != $id) {
         return false;
     }
     //todo usage propfind with section_id options
     $storageId = $this->getStorageId();
     CTimeZone::Disable();
     $dir = CIBlockSection::GetList(array(), array('IBLOCK_ID' => (int) CWebDavSymlinkHelper::getIblockIdForSectionId($extra['id']), 'ID' => (int) $extra['id']), false, array('ID', 'IBLOCK_ID', 'IBLOCK_SECTION_ID', 'CREATED_BY', 'MODIFIED_BY', 'PATH', 'NAME', 'TIMESTAMP_X', 'XML_ID', 'IBLOCK_CODE', CWebDavIblock::UF_LINK_SECTION_ID));
     CTimeZone::Enable();
     $dir = $dir->fetch();
     if (!$dir || !is_array($dir)) {
         return array();
     }
     $dir['PATH'] = implode('/', $this->getPathArrayForSection($extra['id']));
     return $this->formatSectionToResponse($dir);
 }
コード例 #3
0
ファイル: folderinvite.php プロジェクト: DarneoStudio/bitrix
 private static function deleteSymlinkSections(array $folderInvite)
 {
     if (!\Bitrix\Main\Loader::includeModule('iblock')) {
         return;
     }
     self::removeNotifyToUser($folderInvite);
     \CWebDavDiskDispatcher::addElementForDeletingMark(array('ID' => $folderInvite['LINK_SECTION_ID'], 'IBLOCK_ID' => \CWebDavSymlinkHelper::getIblockIdForSectionId($folderInvite['LINK_SECTION_ID'])));
     \CWebDavDiskDispatcher::markDeleteBatch(false);
     \CIBlockSection::delete($folderInvite['LINK_SECTION_ID'], false);
     self::removeRightsOnSharedSections($folderInvite);
     return;
 }