Package org.opencms.ade.containerpage
Class CmsDetailOnlyContainerUtil
- java.lang.Object
-
- org.opencms.ade.containerpage.CmsDetailOnlyContainerUtil
-
public final class CmsDetailOnlyContainerUtil extends java.lang.Object
Static utility class for functions related to detail-only containers.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DETAIL_CONTAINERS_FOLDER_NAME
The detail containers folder name.static java.lang.String
LOCALE_ALL
Use this locale string for locale independent detail only container resources.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description 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.static java.lang.String
getDetailContentPath(java.lang.String detailContainersPage)
Returns the path to the associated detail content.static CmsContainerPageBean
getDetailOnlyPage(CmsObject cms, javax.servlet.ServletRequest req, java.lang.String pageRootPath)
Returns the detail only container page bean ornull
if none available.static CmsContainerPageBean
getDetailOnlyPage(CmsObject cms, javax.servlet.ServletRequest req, java.lang.String pageRootPath, boolean lookupContextFirst)
Returns the detail only container page bean ornull
if none available.static com.google.common.base.Optional<CmsResource>
getDetailOnlyPage(CmsObject cms, CmsResource detailContent, java.lang.String contentLocale)
Gets the detail only page for a detail content.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.static com.google.common.base.Optional<CmsResource>
getDetailOnlyResource(CmsObject cms, java.lang.String contentLocale, CmsResource detailContentRes, CmsResource pageRes)
Gets the detail only resource for a given detail content and locale.static java.util.List<CmsResource>
getDetailOnlyResources(CmsObject cms, CmsResource resource)
Returns a list of detail only container pages associated with the given resource.static boolean
isDetailContainersPage(CmsObject cms, java.lang.String detailContainersPage)
Checks whether the given resource path is of a detail containers page.static CmsResource
readOrCreateDetailOnlyPage(CmsObject cms, CmsUUID detailId, java.lang.String detailOnlyRootPath)
Creates an empty detail-only page for a content, or just reads the resource if the detail-only page already exists.static CmsXmlContainerPage
saveDetailOnlyPage(CmsObject cms, CmsResource content, java.lang.String locale, CmsContainerPageBean page)
Saves a detail-only page for a content.static boolean
useSingleLocaleDetailContainers(java.lang.String siteRoot)
Checks whether single locale detail containers should be used for the given site root.
-
-
-
Field Detail
-
DETAIL_CONTAINERS_FOLDER_NAME
public static final java.lang.String DETAIL_CONTAINERS_FOLDER_NAME
The detail containers folder name.- See Also:
- Constant Field Values
-
LOCALE_ALL
public static final java.lang.String LOCALE_ALL
Use this locale string for locale independent detail only container resources.- See Also:
- Constant Field Values
-
-
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 contextcontentLocale
- the content localeresource
- 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<CmsResource> getDetailOnlyPage(CmsObject cms, CmsResource detailContent, java.lang.String contentLocale)
Gets the detail only page for a detail content.- Parameters:
cms
- the CMS contextdetailContent
- the detail contentcontentLocale
- 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 ornull
if none available.- Parameters:
cms
- the cms contextreq
- the current requestpageRootPath
- 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 ornull
if none available.- Parameters:
cms
- the cms contextreq
- the current requestpageRootPath
- the root path of the pagelookupContextFirst
- 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 contextpageResource
- the detail page resourcedetailPath
- 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<CmsResource> getDetailOnlyResource(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 contextcontentLocale
- the locale for which we want the detail only resourcedetailContentRes
- the detail content resourcepageRes
- the page resource- Returns:
- an Optional wrapping a detail only resource
-
getDetailOnlyResources
public static java.util.List<CmsResource> getDetailOnlyResources(CmsObject cms, CmsResource resource)
Returns a list of detail only container pages associated with the given resource.- Parameters:
cms
- the cms contextresource
- 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 contextdetailContainersPage
- 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 contextdetailId
- the structure id of the detail contentdetailOnlyRootPath
- 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 contextcontent
- the content for which to save the detail-only pagelocale
- the localepage
- 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
-
-