function _isInMeta($id, $metaId, $type = 'FILE') { if ($type == 'FILE') { $elementData = $this->GetObject(array('element_id' => intval($id))); if ($elementData['not_found']) { return false; } $sectionId = $elementData['parent_id']; } else { $sectionData = $this->GetObject(array('section_id' => intval($id))); $sectionId = $sectionData['item_id']; } list($contextType, $contextEntityId) = $this->getContextData(); $sectionData = $this->getSectionDataForLinkAnalyze($sectionId, array(), false); if (CWebDavSymlinkHelper::isLink($contextType, $contextEntityId, $sectionData)) { $parentSectionData = CWebDavSymlinkHelper::getLinkData($contextType, $contextEntityId, $sectionData); if ($parentSectionData) { $linkWebdav = new self($parentSectionData[self::UF_LINK_IBLOCK_ID], $this->base_url . $this->_path, array('ROOT_SECTION_ID' => $parentSectionData[self::UF_LINK_ROOT_SECTION_ID], 'symlinkMode' => true, 'symlinkSectionData' => $parentSectionData, 'symlinkRealRootSectionData' => $this->arRootSection)); return $linkWebdav->_isInMeta($id, $metaId, $type); } } $sectionMetaId = $this->GetMetaID($metaId, false); foreach (CWebDavSymlinkHelper::getNavChain($this->IBLOCK_ID, $sectionId) as $res) { if ($sectionMetaId == $res['ID']) { return true; } } unset($res); return false; }