Package org.opencms.loader
Class CmsTemplateContextManager
- java.lang.Object
-
- org.opencms.loader.CmsTemplateContextManager
-
public class CmsTemplateContextManager extends java.lang.Object
Manager class for template context providers.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ATTR_RPC_CONTEXT_OVERRIDE
Request attribute used to set the template context during RPC calls.static java.lang.String
ATTR_TEMPLATE_BEAN
A bean containing information about the selected template.static java.lang.String
ATTR_TEMPLATE_CONTEXT
The request attribute in which the template context is stored.static java.lang.String
ATTR_TEMPLATE_NAME
Attribute name which contains the template name for non-dynamically selected templates.static java.lang.String
ATTR_TEMPLATE_RESOURCE
Attribute name for the template resource.static java.lang.String
DYNAMIC_TEMPLATE_PREFIX
The prefix used in the template property to activate dynamic template selection.
-
Constructor Summary
Constructors Constructor Description CmsTemplateContextManager(CmsObject cms)
Creates a new instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected CmsXmlContentProperty
createTemplateContextsPropertyDefinition(I_CmsTemplateContextProvider contextProvider, java.util.Locale locale)
Creates the setting definition for the templateContexts setting.CmsTemplateContextInfo
getContextInfoBean(CmsObject cms, javax.servlet.http.HttpServletRequest request)
Creates a bean with information about the current template context, for use in the client-side code.CmsTemplateContext
getTemplateContext(java.lang.String providerName, CmsObject cms, javax.servlet.http.HttpServletRequest request, CmsResource resource)
Gets the template context to use.I_CmsTemplateContextProvider
getTemplateContextProvider(java.lang.String providerName)
Retrieves an instance of a template context provider given its name (optionally prefixed by the 'dynamic:' prefix).I_CmsTemplateContextProvider
getTemplateContextProvider(CmsObject cms, java.lang.String path)
Gets the template context provider for a given path.static boolean
hasPropertyPrefix(java.lang.String propertyValue)
Checks if the property value starts with the prefix which marks a dynamic template provider.static boolean
isProvider(java.lang.String templatePath)
Checks if a template property value refers to a template context provider.java.lang.String
readPropertyFromTemplate(CmsObject cms, CmsResource res, java.lang.String propertyName, java.lang.String fallbackValue)
Utility method which either reads a property from the template used for a specific resource, or from the template context provider used for the resource if available.static java.lang.String
removePropertyPrefix(java.lang.String propertyValue)
Removes the prefix which marks a property value as a dynamic template provider.protected java.util.Map<java.lang.String,CmsDefaultSet<java.lang.String>>
safeGetAllowedContextMap()
Helper method for getting the forbidden contexts from the resource manager without a try-catch block.boolean
shouldShowType(java.lang.String contextKey, java.lang.String typeName)
Helper method to check whether a given type should not be shown in a context.
-
-
-
Field Detail
-
ATTR_TEMPLATE_BEAN
public static final java.lang.String ATTR_TEMPLATE_BEAN
A bean containing information about the selected template.- See Also:
- Constant Field Values
-
ATTR_TEMPLATE_CONTEXT
public static final java.lang.String ATTR_TEMPLATE_CONTEXT
The request attribute in which the template context is stored.- See Also:
- Constant Field Values
-
ATTR_TEMPLATE_NAME
public static final java.lang.String ATTR_TEMPLATE_NAME
Attribute name which contains the template name for non-dynamically selected templates.- See Also:
- Constant Field Values
-
ATTR_TEMPLATE_RESOURCE
public static final java.lang.String ATTR_TEMPLATE_RESOURCE
Attribute name for the template resource.- See Also:
- Constant Field Values
-
DYNAMIC_TEMPLATE_PREFIX
public static final java.lang.String DYNAMIC_TEMPLATE_PREFIX
The prefix used in the template property to activate dynamic template selection.- See Also:
- Constant Field Values
-
ATTR_RPC_CONTEXT_OVERRIDE
public static final java.lang.String ATTR_RPC_CONTEXT_OVERRIDE
Request attribute used to set the template context during RPC calls.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CmsTemplateContextManager
public CmsTemplateContextManager(CmsObject cms)
Creates a new instance.- Parameters:
cms
- the CMS context to use
-
-
Method Detail
-
hasPropertyPrefix
public static boolean hasPropertyPrefix(java.lang.String propertyValue)
Checks if the property value starts with the prefix which marks a dynamic template provider.- Parameters:
propertyValue
- the property value to check- Returns:
- true if the value has the format of a dynamic template provider
-
isProvider
public static boolean isProvider(java.lang.String templatePath)
Checks if a template property value refers to a template context provider.- Parameters:
templatePath
- the template property value- Returns:
- true if this value refers to a template context provider
-
removePropertyPrefix
public static java.lang.String removePropertyPrefix(java.lang.String propertyValue)
Removes the prefix which marks a property value as a dynamic template provider.- Parameters:
propertyValue
- the value from which to remove the prefix- Returns:
- the string with the prefix removed
-
getContextInfoBean
public CmsTemplateContextInfo getContextInfoBean(CmsObject cms, javax.servlet.http.HttpServletRequest request)
Creates a bean with information about the current template context, for use in the client-side code.- Parameters:
cms
- the current CMS contextrequest
- the current request- Returns:
- the bean with the template context information
-
getTemplateContext
public CmsTemplateContext getTemplateContext(java.lang.String providerName, CmsObject cms, javax.servlet.http.HttpServletRequest request, CmsResource resource)
Gets the template context to use.- Parameters:
providerName
- the name of the template context providercms
- the current CMS contextrequest
- the current requestresource
- the current resource- Returns:
- the current template context
-
getTemplateContextProvider
public I_CmsTemplateContextProvider getTemplateContextProvider(CmsObject cms, java.lang.String path) throws CmsException
Gets the template context provider for a given path.- Parameters:
cms
- the current CMS contextpath
- the path for which the template context provider should be determined- Returns:
- the template context provider for the given path
- Throws:
CmsException
- if something goes wrong
-
getTemplateContextProvider
public I_CmsTemplateContextProvider getTemplateContextProvider(java.lang.String providerName)
Retrieves an instance of a template context provider given its name (optionally prefixed by the 'dynamic:' prefix).- Parameters:
providerName
- the name of the provider- Returns:
- an instance of the provider class
-
readPropertyFromTemplate
public java.lang.String readPropertyFromTemplate(CmsObject cms, CmsResource res, java.lang.String propertyName, java.lang.String fallbackValue)
Utility method which either reads a property from the template used for a specific resource, or from the template context provider used for the resource if available.- Parameters:
cms
- the CMS context to useres
- the resource from whose template or template context provider the property should be readpropertyName
- the property namefallbackValue
- the fallback value- Returns:
- the property value
-
shouldShowType
public boolean shouldShowType(java.lang.String contextKey, java.lang.String typeName)
Helper method to check whether a given type should not be shown in a context.- Parameters:
contextKey
- the key of the template contexttypeName
- the type name- Returns:
- true if the context does not prohibit showing the type
-
createTemplateContextsPropertyDefinition
protected CmsXmlContentProperty createTemplateContextsPropertyDefinition(I_CmsTemplateContextProvider contextProvider, java.util.Locale locale)
Creates the setting definition for the templateContexts setting.- Parameters:
contextProvider
- the context providerlocale
- the current locale- Returns:
- the setting definition
-
safeGetAllowedContextMap
protected java.util.Map<java.lang.String,CmsDefaultSet<java.lang.String>> safeGetAllowedContextMap()
Helper method for getting the forbidden contexts from the resource manager without a try-catch block.- Returns:
- the forbidden context map
-
-