Class CmsDetailPageUtil

java.lang.Object
org.opencms.ade.detailpage.CmsDetailPageUtil

public final class CmsDetailPageUtil extends Object
This is a utility class which provides convenience methods for finding detail page names for resources which include the URL names of the resources themselves.

Since:
8.0.0
See Also:
  • Method Details

    • getAllDetailPagesWithUrlName

      Gets a list of detail page URIs for the given resource, with its URL name appended.

      Parameters:
      cms - the current CMS context
      res - the resource for which the detail pages should be retrieved
      Returns:
      the list of detail page URIs
      Throws:
      CmsException - if something goes wrong
    • getBestUrlName

      public static String getBestUrlName(CmsObject cms, CmsUUID id) throws CmsException
      Returns either the newest URL name for a structure id, or the structure id as a string if there is no URL name.

      Parameters:
      cms - the current CMS context
      id - the structure id of a resource
      Returns:
      the best URL name for the structure id
      Throws:
      CmsException - if something goes wrong
    • lookupPage

      public static CmsResource lookupPage(CmsObject cms, String uri) throws CmsException
      Looks up a page by URI (which may be a detail page URI, or a normal VFS uri).

      Parameters:
      cms - the current CMS context
      uri - the detail page or VFS uri
      Returns:
      the resource with the given uri
      Throws:
      CmsException - if something goes wrong
    • resolveDetail

      Resolves a URI to the detail page that renders it and to the detail content it shows.

      This is the resolution CmsDetailPageResourceHandler performs for a browser request, but without the servlet request and without any side effect: neither the request context nor any request attribute is changed, so the same lookup can be used outside the request cycle.

      Parameters:
      cms - the CMS context, initialized with the site root the URI belongs to
      uri - the site relative URI to resolve
      Returns:
      the detail resolution, or null if the URI is not a detail page URI
      Throws:
      CmsException - if something goes wrong
    • resolveDetail

      public static CmsDetailResolution resolveDetail(CmsObject cms, String uri, BiPredicate<CmsResource,CmsResource> detailPageValidator) throws CmsException
      Resolves a URI to the detail page that renders it and to the detail content it shows, using the given check for whether a detail page is valid for a detail content.

      The check is a parameter because CmsDetailPageResourceHandler.isValidDetailPage(CmsObject, CmsResource, CmsResource) is an extension point of that handler; use resolveDetail(CmsObject, String) to resolve with the standard check.

      Parameters:
      cms - the CMS context, initialized with the site root the URI belongs to
      uri - the site relative URI to resolve
      detailPageValidator - checks whether a detail page (first argument) is valid for a detail content (second argument)
      Returns:
      the detail resolution, or null if the URI is not a detail page URI
      Throws:
      CmsException - if something goes wrong