Class CmsDetailOnlyContainerUtil


  • public final class CmsDetailOnlyContainerUtil
    extends java.lang.Object
    Static utility class for functions related to detail-only containers.

    • Method Detail

      • getDetailContainerLocale

        public static java.lang.String getDetailContainerLocale​(CmsObject cms,
                                                                java.lang.String contentLocale,
                                                                CmsResource resource)
        Returns the detail container resource locale appropriate for the given detail page.

        Parameters:
        cms - the cms context
        contentLocale - the content locale
        resource - the detail page resource
        Returns:
        the locale String
      • getDetailContentPath

        public static java.lang.String getDetailContentPath​(java.lang.String detailContainersPage)
        Returns the path to the associated detail content.

        Parameters:
        detailContainersPage - the detail containers page path
        Returns:
        the path to the associated detail content
      • getDetailOnlyPage

        public static com.google.common.base.Optional<CmsResourcegetDetailOnlyPage​(CmsObject cms,
                                                                                     CmsResource detailContent,
                                                                                     java.lang.String contentLocale)
        Gets the detail only page for a detail content.

        Parameters:
        cms - the CMS context
        detailContent - the detail content
        contentLocale - the content locale
        Returns:
        the detail only page, or Optional.absent() if there is no detail only page
      • getDetailOnlyPage

        public static CmsContainerPageBean getDetailOnlyPage​(CmsObject cms,
                                                             javax.servlet.ServletRequest req,
                                                             java.lang.String pageRootPath)
        Returns the detail only container page bean or null if none available.

        Parameters:
        cms - the cms context
        req - the current request
        pageRootPath - the root path of the page
        Returns:
        the container page bean
      • getDetailOnlyPage

        public static CmsContainerPageBean getDetailOnlyPage​(CmsObject cms,
                                                             javax.servlet.ServletRequest req,
                                                             java.lang.String pageRootPath,
                                                             boolean lookupContextFirst)
        Returns the detail only container page bean or null if none available.

        Parameters:
        cms - the cms context
        req - the current request
        pageRootPath - the root path of the page
        lookupContextFirst - flag, indicating if the bean should be looked up in the standard context first.
        Returns:
        the container page bean
      • getDetailOnlyPageName

        public static java.lang.String getDetailOnlyPageName​(CmsObject cms,
                                                             CmsResource pageResource,
                                                             java.lang.String detailPath,
                                                             java.lang.String locale)
        Returns the site/root path to the detail only container page, for site/root path of the detail content.

        Parameters:
        cms - the current cms context
        pageResource - the detail page resource
        detailPath - the site or root path to the detail content (accordingly site or root path's will be returned)
        locale - the locale for which we want the detail only page
        Returns:
        the site or root path to the detail only container page (dependent on providing site or root path for the detailPath).
      • getDetailOnlyResource

        public static com.google.common.base.Optional<CmsResourcegetDetailOnlyResource​(CmsObject cms,
                                                                                         java.lang.String contentLocale,
                                                                                         CmsResource detailContentRes,
                                                                                         CmsResource pageRes)
        Gets the detail only resource for a given detail content and locale.

        Parameters:
        cms - the current cms context
        contentLocale - the locale for which we want the detail only resource
        detailContentRes - the detail content resource
        pageRes - the page resource
        Returns:
        an Optional wrapping a detail only resource
      • getDetailOnlyResources

        public static java.util.List<CmsResourcegetDetailOnlyResources​(CmsObject cms,
                                                                         CmsResource resource)
        Returns a list of detail only container pages associated with the given resource.

        Parameters:
        cms - the cms context
        resource - the resource
        Returns:
        the list of detail only container pages
      • isDetailContainersPage

        public static boolean isDetailContainersPage​(CmsObject cms,
                                                     java.lang.String detailContainersPage)
        Checks whether the given resource path is of a detail containers page.

        Parameters:
        cms - the cms context
        detailContainersPage - the resource site path
        Returns:
        true if the given resource path is of a detail containers page
      • readOrCreateDetailOnlyPage

        public static CmsResource readOrCreateDetailOnlyPage​(CmsObject cms,
                                                             CmsUUID detailId,
                                                             java.lang.String detailOnlyRootPath)
                                                      throws CmsException
        Creates an empty detail-only page for a content, or just reads the resource if the detail-only page already exists.

        Parameters:
        cms - the current CMS context
        detailId - the structure id of the detail content
        detailOnlyRootPath - the path of the detail only page
        Returns:
        the detail-only page
        Throws:
        CmsException - if something goes wrong
      • saveDetailOnlyPage

        public static CmsXmlContainerPage saveDetailOnlyPage​(CmsObject cms,
                                                             CmsResource content,
                                                             java.lang.String locale,
                                                             CmsContainerPageBean page)
                                                      throws CmsException
        Saves a detail-only page for a content.

        If the detail-only page already exists, it is overwritten.

        Parameters:
        cms - the current CMS context
        content - the content for which to save the detail-only page
        locale - the locale
        page - the container page data to save in the detail-only page
        Returns:
        the container page that was saved
        Throws:
        CmsException - if something goes wrong
      • useSingleLocaleDetailContainers

        public static boolean useSingleLocaleDetailContainers​(java.lang.String siteRoot)
        Checks whether single locale detail containers should be used for the given site root.

        Parameters:
        siteRoot - the site root to check
        Returns:
        true if single locale detail containers should be used for the given site root