/** * Returns the navigation element of the currently requested uri.<p> * * @return the navigation element of the currently requested uri */ public CmsJspNavElement getCurrent() { if (m_current == null) { m_current = m_builder.getNavigationForResource(); } return m_current; }
/** * Returns a CmsJspNavElement for the resource of the current request URI.<p> * * @return CmsJspNavElement a CmsJspNavElement for the resource of the current request URI */ public CmsJspNavElement getNavigationForResource() { return getNavigationForResource(m_cms, m_requestUri); }
/** * Returns a navigation element for the named resource.<p> * * @param sitePath the resource name to get the navigation information for, * must be a full path name, e.g. "/docs/index.html" * @param reourceFilter the resource filter * * @return a navigation element for the given resource */ public CmsJspNavElement getNavigationForResource(String sitePath, CmsResourceFilter reourceFilter) { return getNavigationForResource(sitePath, reourceFilter, false); }
/** * Returns a navigation element for the named resource.<p> * * @param sitePath the resource name to get the navigation information for, * must be a full path name, e.g. "/docs/index.html" * * @return a navigation element for the given resource */ public CmsJspNavElement getNavigationForResource(String sitePath) { return getNavigationForResource(sitePath, CmsResourceFilter.DEFAULT, false); }
/** * Returns a navigation element for the resource of the current request URI.<p> * * @return a navigation element for the resource of the current request URI */ public CmsJspNavElement getNavigationForResource() { return getNavigationForResource(m_requestUri); }
/** * Returns a CmsJspNavElement for the named resource.<p> * * @param resource the resource name to get the nav information for, * must be a full path name, e.g. "/docs/index.html". * @return CmsJspNavElement a CmsJspNavElement for the given resource */ public CmsJspNavElement getNavigationForResource(String resource) { return getNavigationForResource(m_cms, resource); }
/** * Returns a navigation element for the named resource.<p> * * @param cms context provider for the current request * @param resource the resource name to get the navigation information for, * must be a full path name, e.g. "/docs/index.html" * * @return a navigation element for the given resource * * @deprecated use {@link #getNavigationForResource(String)} instead */ @Deprecated public static CmsJspNavElement getNavigationForResource(CmsObject cms, String resource) { return new CmsJspNavBuilder(cms).getNavigationForResource(resource); }
/** * Creates a new navigation tree.<p> * * @param cms the CMS context * @param rootPath the root path */ public CmsGalleryFilteredNavTreeBuilder(CmsObject cms, String rootPath) { CmsJspNavBuilder navBuilder = new CmsJspNavBuilder(cms); m_navBuilder = navBuilder; CmsJspNavElement rootNav = navBuilder.getNavigationForResource( rootPath, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED); m_root = new NavigationNode(rootNav); }
CmsJspNavElement e = getNavigationForResource(navFolder);
/** * Collect all navigation elements from the files in the given folder, * navigation elements are of class CmsJspNavElement.<p> * * @param cms context provider for the current request * @param folder the selected folder * @return a sorted (ascending to nav position) ArrayList of navigation elements */ public static List getNavigationForFolder(CmsObject cms, String folder) { folder = CmsResource.getFolderPath(folder); List result = new ArrayList(); List resources; try { resources = cms.getResourcesInFolder(folder, CmsResourceFilter.DEFAULT); } catch (Exception e) { return Collections.EMPTY_LIST; } for (int i = 0; i < resources.size(); i++) { CmsResource r = (CmsResource)resources.get(i); CmsJspNavElement element = getNavigationForResource(cms, cms.getSitePath(r)); if ((element != null) && element.isInNavigation()) { result.add(element); } } Collections.sort(result); return result; }
CmsJspNavElement element = getNavigationForResource(m_cms.getSitePath(r), resourceFilter, shallow); if ((element != null) && (includeInvisible || element.isInNavigation())) { result.add(element);
CmsJspNavElement e = getNavigationForResource(navFolder);
boolean includeHidden = visibility == Visibility.includeHidden; for (CmsResource r : resources) { CmsJspNavElement element = getNavigationForResource(m_cms.getSitePath(r), resourceFilter); if ((element != null) && (includeAll
CmsResource res = cms.readResource(modId, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED); String sitePath = cms.getSitePath(res); CmsJspNavElement navEntry = getNavBuilder().getNavigationForResource( sitePath, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED);
/** * Creates the sitemap entry bean for a resource.<p> * * @param cms the current CMS context * @param resource the resource for which the sitemap entry bean should be created * * @return the created sitemap entry bean * * @throws CmsException if something goes wrong */ CmsSitemapEntryBean internalCreateSitemapEntryBean(CmsObject cms, CmsResource resource) throws CmsException { cms = OpenCms.initCmsObject(cms); cms.getRequestContext().setSiteRoot(""); CmsJspNavBuilder navBuilder = new CmsJspNavBuilder(cms); CmsJspNavElement entry = navBuilder.getNavigationForResource(resource.getRootPath()); if (entry == null) { // may be null for expired resources return null; } return prepareSitemapEntry(cms, entry, false, true); }
/** * @see org.opencms.ade.sitemap.shared.rpc.I_CmsSitemapService#getChildren(java.lang.String, org.opencms.util.CmsUUID, int) */ public CmsClientSitemapEntry getChildren(String entryPointUri, CmsUUID entryId, int levels) throws CmsRpcException { CmsClientSitemapEntry entry = null; try { CmsObject cms = getCmsObject(); //ensure that root ends with a '/' if it's a folder CmsResource rootRes = cms.readResource(entryId, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED); String root = cms.getSitePath(rootRes); CmsJspNavElement navElement = getNavBuilder().getNavigationForResource( root, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED); boolean isRoot = root.equals(entryPointUri); entry = toClientEntry(navElement, isRoot); if ((levels > 0) && (isRoot || (rootRes.isFolder()))) { entry.setSubEntries(getChildren(root, levels, null), null); } } catch (Throwable e) { error(e); } return entry; }
/** * Reeds the site root entry.<p> * * @param rootPath the root path of the sitemap root * @param targetPath the target path to open * * @return the site root entry * * @throws CmsSecurityException in case of insufficient permissions * @throws CmsException if something goes wrong */ private CmsClientSitemapEntry getRootEntry(String rootPath, String targetPath) throws CmsSecurityException, CmsException { String sitePath = "/"; if ((rootPath != null)) { sitePath = getCmsObject().getRequestContext().removeSiteRoot(rootPath); } CmsJspNavElement navElement = getNavBuilder().getNavigationForResource( sitePath, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED); CmsClientSitemapEntry result = toClientEntry(navElement, true); if (result != null) { result.setPosition(0); result.setChildrenLoadedInitially(true); result.setSubEntries(getChildren(sitePath, 2, targetPath), null); } return result; }
/** * @see org.opencms.ade.sitemap.shared.rpc.I_CmsSitemapService#createSubSitemap(org.opencms.util.CmsUUID) */ public CmsSitemapChange createSubSitemap(CmsUUID entryId) throws CmsRpcException { CmsObject cms = getCmsObject(); try { ensureSession(); CmsResource subSitemapFolder = cms.readResource(entryId); ensureLock(subSitemapFolder); String sitePath = cms.getSitePath(subSitemapFolder); createSitemapContentFolder(cms, subSitemapFolder); subSitemapFolder.setType(getSubsitemapType()); cms.writeResource(subSitemapFolder); tryUnlock(subSitemapFolder); CmsSitemapClipboardData clipboard = getClipboardData(); CmsClientSitemapEntry entry = toClientEntry( getNavBuilder().getNavigationForResource(sitePath, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED), false); clipboard.addModified(entry); setClipboardData(clipboard); CmsSitemapChange result = new CmsSitemapChange(entry.getId(), entry.getSitePath(), ChangeType.modify); result.setUpdatedEntry(entry); return result; } catch (Exception e) { error(e); } return null; }
/** * Un-deletes a resource according to the change data.<p> * * @param change the change data * * @return the changed entry or <code>null</code> * * @throws CmsException if something goes wrong */ private CmsSitemapChange undelete(CmsSitemapChange change) throws CmsException { CmsObject cms = getCmsObject(); CmsResource deleted = cms.readResource(change.getEntryId(), CmsResourceFilter.ALL); if (deleted.getState().isDeleted()) { ensureLock(deleted); cms.undeleteResource(getCmsObject().getSitePath(deleted), true); tryUnlock(deleted); } String parentPath = CmsResource.getParentFolder(cms.getSitePath(deleted)); CmsJspNavElement navElement = getNavBuilder().getNavigationForResource( parentPath, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED); CmsClientSitemapEntry entry = toClientEntry(navElement, navElement.isInNavigation()); entry.setSubEntries(getChildren(parentPath, 2, null), null); change.setUpdatedEntry(entry); change.setParentId(cms.readParentFolder(deleted.getStructureId()).getStructureId()); return change; }
CmsSitemapClipboardData clipboard = getClipboardData(); CmsClientSitemapEntry entry = toClientEntry( getNavBuilder().getNavigationForResource( cms.getSitePath(subSitemapFolder), CmsResourceFilter.ONLY_VISIBLE_NO_DELETED),