Package org.opencms.ade.containerpage
Class CmsDetailOnlyContainerUtil
java.lang.Object
org.opencms.ade.containerpage.CmsDetailOnlyContainerUtil
Static utility class for functions related to detail-only containers.
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
getDetailContainerLocale
(CmsObject cms, String contentLocale, CmsResource resource) Returns the detail container resource locale appropriate for the given detail page.static String
getDetailContentPath
(String detailContainersPage) Returns the path to the associated detail content.static CmsContainerPageBean
getDetailOnlyPage
(CmsObject cms, javax.servlet.ServletRequest req, String pageRootPath) Returns the detail only container page bean ornull
if none available.static CmsContainerPageBean
getDetailOnlyPage
(CmsObject cms, javax.servlet.ServletRequest req, 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, String contentLocale) Gets the detail only page for a detail content.static String
getDetailOnlyPageName
(CmsObject cms, CmsResource pageResource, String detailPath, 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, String contentLocale, CmsResource detailContentRes, CmsResource pageRes) Gets the detail only resource for a given detail content and locale.static 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, String detailContainersPage) Checks whether the given resource path is of a detail containers page.static CmsResource
readOrCreateDetailOnlyPage
(CmsObject cms, CmsUUID detailId, 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, String locale, CmsContainerPageBean page) Saves a detail-only page for a content.static boolean
useSingleLocaleDetailContainers
(String siteRoot) Checks whether single locale detail containers should be used for the given site root.
-
Field Details
-
DETAIL_CONTAINERS_FOLDER_NAME
The detail containers folder name.- See Also:
-
LOCALE_ALL
Use this locale string for locale independent detail only container resources.- See Also:
-
-
Method Details
-
getDetailContainerLocale
public static String getDetailContainerLocale(CmsObject cms, 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
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, 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, 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, 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 String getDetailOnlyPageName(CmsObject cms, CmsResource pageResource, String detailPath, 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, 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
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
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, 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, 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
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
-