Interface I_CmsXmlContentHandler
- All Known Implementing Classes:
CmsCategoryXmlContentHandler
,CmsDefaultXmlContentHandler
,CmsHtmlRedirectHandler
,CmsListConfigContentHandler
,CmsXmlContainerPageHandler
,CmsXmlDynamicFunctionHandler
,CmsXmlGroupContainerHandler
,CmsXmlInheritGroupContainerHandler
- Since:
- 6.0.0
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic enum
The available display types for element widgets.static class
Settings for a JSON renderer.static enum
The available mapping types.static enum
Represents how values should be handled with regard to synchronization across locales in the editor. -
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Mapping name for the 'date expired' mapping.static final String
Mapping name for the 'date released' mapping.List of all allowed attribute mapping names, for fast lookup.static final String
Prefix for attribute mappings.static final String
Prefix for permission mappings.static final String
Prefix for property mappings.static final String
Prefix for property mappings.static final String
Prefix for property list mappings.static final String
Prefix for property list mappings.static final String
Prefix for property list mappings.static final String
Prefix for property mappings.static final String
Prefix for URL name mappings. -
Method Summary
Modifier and TypeMethodDescriptionboolean
applyReverseAvailabilityMapping
(CmsObject cms, CmsXmlContent content, CmsMappingResolutionContext.AttributeType attr, List<Locale> locales, long value) Writes an availability date back to the content, if a mapping is defined for it.boolean
Checks if an availability attribute should be written back to the content if the availability is changed through the availability dialog.Gets the list of allowed template context names.Gets the list of change handler configurations.getComplexWidget
(CmsObject cms, String path) Gets the unconfigured complex widget defined for the given path.getConfiguration
(String remainingPath) Gets the widget configuration for the given sub-path.Returns the configuration String value for the widget used to edit the given XML content schema type.getConfiguredDisplayType
(String path, I_CmsXmlContentHandler.DisplayType defaultVal) Gets the configured display type for a given path.Returns the resource-independent CSS resources to include into the html-page head.getCSSHeadIncludes
(CmsObject cms, CmsResource resource) Returns all the CSS resources to include into the html-page head.getDefault
(CmsObject cms, CmsResource resource, I_CmsXmlSchemaType type, String path, Locale locale) Returns the default String value for the given XML content schema type object in the given XML content.getDefault
(CmsObject cms, I_CmsXmlContentValue value, Locale locale) Returns the default String value for the given XML content schema type object in the given XML content.Gets the default complex widget to be used for this type.Gets the default complex widget class name configured for this type.Gets the default complex widget configuration string configured for this type.Returns if the widget for this type should be displayed in compact view.Returns the edit handler if configured.getEditorChangeHandlers
(boolean selfOnly) Returns the editor change handlers.getFormatterConfiguration
(CmsObject cms, CmsResource res) Returns the container page element formatter configuration for a given resource.Gets the geo-coordinate mapping configuration.Gets the action to perform if the given name refers to a link field which refers to a VFS file that no longer exists.Returns the resource-independent javascript resources to include into the html-page head.getJSHeadIncludes
(CmsObject cms, CmsResource resource) Returns all the javascript resources to include into the html-page head.Gets the JSON renderer settings.Gets the mappings defined in the schema.getMappings
(String elementName) Returns the all mappings defined for the given element xpath.Gets the message key fallback handler.getMessages
(Locale locale) Returns theCmsMessages
that are used to resolve localized keys for the given locale in this content handler.Returns the folder name that contains eventual XML content model files to use for this resource type.getNestedFormatters
(CmsObject cms, CmsResource res, Locale locale, javax.servlet.ServletRequest req) Returns the nested formatters for the given resource.getParameter
(String param) Gets the parameter with the given name..getPreview
(CmsObject cms, CmsXmlContent content, String resourcename) Returns the preview URI for the given XML content value object to be displayed in the editor.getRelationType
(String path) Returns the relation type for the given path.getRelationType
(String xpath, CmsRelationType defaultType) Returns the relation type for the given path.Deprecated.Returns the search content type, ie., the way how to integrate the value into full text search.Returns all configured Search fields for this XML content.Returns all configured Search fields for this XML content that should be attached to container pages the content is placed on.Returns the search content settings defined in the annotation node of this XML content.getSettings
(CmsObject cms, CmsResource resource) Returns the element settings defined for the container page formatters.getSynchronizations
(boolean recursive) Returns the configuration for elements that require a synchronization across all locales.getTabs()
Returns the tabs to be displayed in the editor.getTitleMapping
(CmsObject cms, CmsXmlContent document, Locale locale) Returns the "Title" mapping set for the given XML content document in the given Locale.Gets the version transformation VFS path.Gets the widget for the given path and CMS context.getWidget
(I_CmsXmlSchemaType value) Deprecated.boolean
Returns true if the contents for this content handler have schema-based formatters which can be disabled or enabled.boolean
Returns whether there are nested formatters configured for this content type.boolean
Returns if there are locale synchronized elements configured.boolean
Returns if there are visibility handlers configured for this content type.void
initialize
(org.dom4j.Element appInfoElement, CmsXmlContentDefinition contentDefinition) Initializes this content handler for the given XML content definition by analyzing the "appinfo" node.void
invalidateBrokenLinks
(CmsObject cms, CmsXmlContent document) Performs a check of the given XML document.boolean
Checks whether the Acacia editor is disabled for this type.boolean
Returnstrue
if the XML content should be indexed when it is dropped in a container page, and returnsfalse
if this XML content should be indexed as 'stand-alone' document.default boolean
isSearchable
(I_CmsXmlContentValue value) Deprecated.usegetSearchContentType(I_CmsXmlContentValue)
instead.boolean
isVisible
(CmsObject cms, I_CmsXmlSchemaType schemaType, String valuePath, CmsResource resource, Locale contentLocale) Returns if the given content field should be visible to the current user.prepareForUse
(CmsObject cms, CmsXmlContent content) Prepares the given XML content to be used after it was read from the OpenCms VFS.prepareForWrite
(CmsObject cms, CmsXmlContent content, CmsFile file) Prepares the given XML content to be written to the OpenCms VFS.void
resolveMapping
(CmsObject cms, CmsXmlContent content, I_CmsXmlContentValue value) Resolves the value mappings of the given XML content value, according to the rules of this XML content handler.resolveValidation
(CmsObject cms, I_CmsXmlContentValue value, CmsXmlContentErrorHandler errorHandler) Performs a validation of the given XML content value, and saves all errors or warnings found in the provided XML content error handler.
-
Field Details
-
ATTRIBUTE_DATEEXPIRED
Mapping name for the 'date expired' mapping.- See Also:
-
ATTRIBUTE_DATERELEASED
Mapping name for the 'date released' mapping.- See Also:
-
ATTRIBUTES
List of all allowed attribute mapping names, for fast lookup. -
MAPTO_ATTRIBUTE
Prefix for attribute mappings.- See Also:
-
MAPTO_PERMISSION
Prefix for permission mappings.- See Also:
-
MAPTO_PROPERTY
Prefix for property mappings.- See Also:
-
MAPTO_PROPERTY_INDIVIDUAL
Prefix for property mappings.- See Also:
-
MAPTO_PROPERTY_LIST
Prefix for property list mappings.- See Also:
-
MAPTO_PROPERTY_LIST_INDIVIDUAL
Prefix for property list mappings.- See Also:
-
MAPTO_PROPERTY_LIST_SHARED
Prefix for property list mappings.- See Also:
-
MAPTO_PROPERTY_SHARED
Prefix for property mappings.- See Also:
-
MAPTO_URLNAME
Prefix for URL name mappings.- See Also:
-
-
Method Details
-
applyReverseAvailabilityMapping
boolean applyReverseAvailabilityMapping(CmsObject cms, CmsXmlContent content, CmsMappingResolutionContext.AttributeType attr, List<Locale> locales, long value) throws CmsException Writes an availability date back to the content, if a mapping is defined for it.- Parameters:
cms
- the CMS contextcontent
- the content to write toattr
- the attribute to writelocales
- the locales of the resourcevalue
- the value to write- Throws:
CmsException
- if something goes wrong
-
canUseReverseAvailabilityMapping
Checks if an availability attribute should be written back to the content if the availability is changed through the availability dialog.- Parameters:
attr
- the attribute to check- Returns:
- true if the attribute should be written to the content
-
getAllowedTemplates
Gets the list of allowed template context names.- Returns:
- the list of allowed template context names
-
getChangeHandlerConfigs
Gets the list of change handler configurations.- Returns:
- the list of change handler configurations
-
getComplexWidget
Gets the unconfigured complex widget defined for the given path.- Parameters:
cms
- the CMS contextpath
- the value path- Returns:
- the complex widget
-
getConfiguration
Returns the configuration String value for the widget used to edit the given XML content schema type.If no configuration value is available, this method must return
null
.- Parameters:
type
- the value to get the widget configuration for- Returns:
- the configuration String value for the widget used to edit the given XML content schema type
-
getConfiguration
Gets the widget configuration for the given sub-path.- Parameters:
remainingPath
- a sub-path- Returns:
- the widget configuration for the given sub-path
-
getConfiguredDisplayType
I_CmsXmlContentHandler.DisplayType getConfiguredDisplayType(String path, I_CmsXmlContentHandler.DisplayType defaultVal) Gets the configured display type for a given path.- Parameters:
path
- the pathdefaultVal
- the value to return if no configured display type is found- Returns:
- the configured display type (or the default value)
-
getCSSHeadIncludes
Returns the resource-independent CSS resources to include into the html-page head.- Returns:
- the CSS resources to include into the html-page head
-
getCSSHeadIncludes
Returns all the CSS resources to include into the html-page head.- Parameters:
cms
- the current CMS contextresource
- the resource from which to get the head includes- Returns:
- the CSS resources to include into the html-page head
- Throws:
CmsException
- if something goes wrong
-
getDefault
String getDefault(CmsObject cms, CmsResource resource, I_CmsXmlSchemaType type, String path, Locale locale) Returns the default String value for the given XML content schema type object in the given XML content.If a schema type does not have a default value, this method must return
null
.- Parameters:
cms
- the current users OpenCms contextresource
- the content resourcetype
- the type to get the default forpath
- the element pathlocale
- the currently selected locale for the value- Returns:
- the default String value for the given XML content value object
- See Also:
-
getDefault
Returns the default String value for the given XML content schema type object in the given XML content.If a schema type does not have a default value, this method must return
null
.- Parameters:
cms
- the current users OpenCms contextvalue
- the value to get the default forlocale
- the currently selected locale for the value- Returns:
- the default String value for the given XML content value object
- See Also:
-
getDefaultComplexWidget
Gets the default complex widget to be used for this type.- Returns:
- the default complex widget for this type
-
getDefaultComplexWidgetClass
Gets the default complex widget class name configured for this type.- Returns:
- the default complex widget class name
-
getDefaultComplexWidgetConfiguration
Gets the default complex widget configuration string configured for this type.- Returns:
- the default complex widget configuration string
-
getDisplayType
Returns if the widget for this type should be displayed in compact view.- Parameters:
type
- the value to check the view mode for- Returns:
- the widgets display type
-
getEditHandler
Returns the edit handler if configured.- Returns:
- the edit handler
-
getEditorChangeHandlers
Returns the editor change handlers.- Parameters:
selfOnly
- if true, only return editor change handlers configured directly for this content handler- Returns:
- the editor change handlers
-
getFormatterConfiguration
Returns the container page element formatter configuration for a given resource.- Parameters:
cms
- the current users OpenCms context, used for selecting the right projectres
- the resource for which the formatter configuration should be retrieved- Returns:
- the container page element formatter configuration for this handler
-
getGeoMappingConfiguration
Gets the geo-coordinate mapping configuration.- Returns:
- the geo-coordinate mapping configuration
-
getInvalidRelationAction
Gets the action to perform if the given name refers to a link field which refers to a VFS file that no longer exists.- Parameters:
name
- the field name- Returns:
- the action
-
getJSHeadIncludes
Returns the resource-independent javascript resources to include into the html-page head.- Returns:
- the javascript resources to include into the html-page head
-
getJSHeadIncludes
Returns all the javascript resources to include into the html-page head.- Parameters:
cms
- the current CMS contextresource
- the resource for which the head includes should be retrieved- Returns:
- the javascript resources to include into the html-page head
- Throws:
CmsException
- if something goes wrong
-
getJsonRendererSettings
Gets the JSON renderer settings.- Returns:
- the JSON renderer settings
-
getMappings
Map<String,List<String>> getMappings()Gets the mappings defined in the schema.- Returns:
- the mappings
-
getMappings
Returns the all mappings defined for the given element xpath.- Parameters:
elementName
- the element xpath to look up the mapping for- Returns:
- the mapping defined for the given element xpath
-
getMessageKeyHandler
Gets the message key fallback handler.This is used to automatically provide fallbacks for missing message keys in the editor.
- Returns:
- the message key fallback handler
-
getMessages
Returns theCmsMessages
that are used to resolve localized keys for the given locale in this content handler.If no localized messages are configured for this content handler, this method returns
null
.- Parameters:
locale
- the locale to get the messages for- Returns:
- the
CmsMessages
that are used to resolve localized keys for the given locale in this content handler
-
getModelFolder
Returns the folder name that contains eventual XML content model files to use for this resource type.- Returns:
- the folder name containing eventual XML content master files
-
getNestedFormatters
List<String> getNestedFormatters(CmsObject cms, CmsResource res, Locale locale, javax.servlet.ServletRequest req) Returns the nested formatters for the given resource.- Parameters:
cms
- the cms contextres
- the resourcelocale
- the content localereq
- the request if available- Returns:
- the nested formatter ids
-
getParameter
Gets the parameter with the given name..- Parameters:
param
- the parameter name- Returns:
- the parameter value
-
getPreview
Returns the preview URI for the given XML content value object to be displayed in the editor.If
null
is returned, no preview is possible for contents using this handler.- Parameters:
cms
- the current OpenCms user contextcontent
- the XML content to display the preview URI forresourcename
- the name in the VFS of the resource that is currently edited- Returns:
- the preview URI for the given XML content value object to be displayed in the editor
-
getRelationType
Deprecated.usegetRelationType(String)
withI_CmsXmlContentValue.getPath()
insteadReturns the relation type for the given value.- Parameters:
value
- the value to get the relation type for- Returns:
- the relation type for the given value
-
getRelationType
Returns the relation type for the given path.- Parameters:
path
- the path to get the relation type for- Returns:
- the relation type for the given path
-
getRelationType
Returns the relation type for the given path.- Parameters:
xpath
- the path to get the relation type fordefaultType
- the default type if none is set- Returns:
- the relation type for the given path
-
getSearchContentType
Returns the search content type, ie., the way how to integrate the value into full text search.For the full text search, the value of all elements in one locale of the XML content are combined to one big text, which is referred to as the "content" in the context of the full text search. With this option, it is possible to hide certain elements from this "content" that does not make sense to include in the full text search.
Moreover, if the value contains a link to another resource, the content of that other resource can be added.
- Parameters:
value
- the XML content value to check- Returns:
- the search content type, indicating how the element should be added to the content for the full text search
-
getSearchFields
Returns all configured Search fields for this XML content.- Returns:
- the Search fields for this XMl content
-
getSearchFieldsForPage
Returns all configured Search fields for this XML content that should be attached to container pages the content is placed on.- Returns:
- the Search fields for this XMl content
-
getSearchSettings
Returns the search content settings defined in the annotation node of this XML content.A search setting defined within the xsd:annotaion node of an XML schema definition can look like:
<searchsetting element="Image/Align" searchContent="false"/>
The returned map contains the 'element' attribute value as keys and the 'searchContent' attribute value as values.
- Returns:
- the search field settings for this XML content schema
-
getSettings
Returns the element settings defined for the container page formatters.- Parameters:
cms
- the current CMS contextresource
- the resource for which to get the setting definitions- Returns:
- the element settings defined for the container page formatters
-
getSynchronizations
Returns the configuration for elements that require a synchronization across all locales.- Parameters:
recursive
- if true, recursively combines all synchronization information from nested schemas, otherwise only returns the synchronizations for this schema- Returns:
- the synchronization information
-
getTabs
Returns the tabs to be displayed in the editor.- Returns:
- the tabs to be displayed in the editor
-
getTitleMapping
Returns the "Title" mapping set for the given XML content document in the given Locale.- Parameters:
cms
- the current OpenCms user contextdocument
- the XML content to get the title mapping for (this must be of a type that uses this handler)locale
- the locale to get the title mapping for- Returns:
- the "Title" mapping set for the given XML content document in the given Locale
-
getVersionTransformation
Gets the version transformation VFS path.If schema versions are used, the the XSLT transformation read from this VFS path is used to transform contents of older versions into the current version.
- Returns:
- the VFS path to read an XSLT file for version transformation from
-
getWidget
Gets the widget for the given path and CMS context.- Parameters:
cms
- the current CMS contextpath
- the XML value path- Returns:
- the widget for the path
-
getWidget
Deprecated.Returns the editor widget that should be used for the given XML content value.The handler implementations should use the "appinfo" node of the XML content definition schema to define the mappings of elements to widgets.
- Parameters:
value
- the XML content value to get the widget for- Returns:
- the editor widget that should be used for the given XML content value
- Throws:
CmsXmlException
- if something goes wrong
-
hasModifiableFormatters
boolean hasModifiableFormatters()Returns true if the contents for this content handler have schema-based formatters which can be disabled or enabled.- Returns:
- true if the contents for this content handler have schema-based formatters which can be disabled or enabled
-
hasNestedFormatters
boolean hasNestedFormatters()Returns whether there are nested formatters configured for this content type.- Returns:
true
if there are nested formatters configured for this content type
-
hasSynchronizedElements
boolean hasSynchronizedElements()Returns if there are locale synchronized elements configured.- Returns:
true
if there are locale synchronized elements configured
-
hasVisibilityHandlers
boolean hasVisibilityHandlers()Returns if there are visibility handlers configured for this content type.- Returns:
true
if there are visibility handlers configured for this content type
-
initialize
void initialize(org.dom4j.Element appInfoElement, CmsXmlContentDefinition contentDefinition) throws CmsXmlException Initializes this content handler for the given XML content definition by analyzing the "appinfo" node.- Parameters:
appInfoElement
- the "appinfo" element root node to analyzecontentDefinition
- the XML content definition that XML content handler belongs to- Throws:
CmsXmlException
- if something goes wrong
-
invalidateBrokenLinks
Performs a check of the given XML document.The main difference to the
resolveValidation(CmsObject, I_CmsXmlContentValue, CmsXmlContentErrorHandler)
method is that this method may silently remove some values, for instance, for broken links.- Parameters:
cms
- the current OpenCms user contextdocument
- the document to resolve the check rules for
-
isAcaciaEditorDisabled
boolean isAcaciaEditorDisabled()Checks whether the Acacia editor is disabled for this type.- Returns:
- true if the Acacia editor is disabled
-
isContainerPageOnly
boolean isContainerPageOnly()Returnstrue
if the XML content should be indexed when it is dropped in a container page, and returnsfalse
if this XML content should be indexed as 'stand-alone' document.This flag is intended by excluding XML contents from the search index that are not used as detail pages, but to index those extraction result when they are part of a container page.
In order to set this falg add an attribute
containerpageOnly="true"
to the'<searchsettings>-node'
of the XSD of the resource type you want to be indexed only when it is part of a container page.- Returns:
- the container page only flag
-
isSearchable
Deprecated.usegetSearchContentType(I_CmsXmlContentValue)
instead. Will be removed if plain lucene search is removed.Returnstrue
in case the given value should be searchable with the integrated full text search.For the full text search, the value of all elements in one locale of the XML content are combined to one big text, which is referred to as the "content" in the context of the full text search. With this option, it is possible to hide certain elements from this "content" that does not make sense to include in the full text search.
- Parameters:
value
- the XML content value to check- Returns:
true
in case the given value should be searchable
-
isVisible
boolean isVisible(CmsObject cms, I_CmsXmlSchemaType schemaType, String valuePath, CmsResource resource, Locale contentLocale) Returns if the given content field should be visible to the current user.- Parameters:
cms
- the cms contextschemaType
- the content value typevaluePath
- the value pathresource
- the edited resourcecontentLocale
- the content locale- Returns:
true
if the given content field should be visible to the current user
-
prepareForUse
Prepares the given XML content to be used after it was read from the OpenCms VFS.This method is always called after any content is unmarshalled. It can be used to perform customized actions on the given XML content.
- Parameters:
cms
- the current OpenCms user contextcontent
- the XML content to be used as read from the VFS- Returns:
- the prepared content to be used
-
prepareForWrite
Prepares the given XML content to be written to the OpenCms VFS.This method is always called before any content gets written. It can be used to perform XML validation, pretty - printing or customized actions on the given XML content.
- Parameters:
cms
- the current OpenCms user contextcontent
- the XML content to be writtenfile
- the resource the XML content in it's current state was unmarshalled from- Returns:
- the file to write to the OpenCms VFS, this will be an updated version of the parameter file
- Throws:
CmsException
- in case something goes wrong
-
resolveMapping
void resolveMapping(CmsObject cms, CmsXmlContent content, I_CmsXmlContentValue value) throws CmsException Resolves the value mappings of the given XML content value, according to the rules of this XML content handler.- Parameters:
cms
- the current OpenCms user contextcontent
- the XML content to resolve the mappings forvalue
- the value to resolve the mappings for- Throws:
CmsException
- if something goes wrong
-
resolveValidation
CmsXmlContentErrorHandler resolveValidation(CmsObject cms, I_CmsXmlContentValue value, CmsXmlContentErrorHandler errorHandler) Performs a validation of the given XML content value, and saves all errors or warnings found in the provided XML content error handler.The errorHandler parameter is optional, if
null
is given a new error handler instance must be created.- Parameters:
cms
- the current OpenCms user contextvalue
- the value to resolve the validation rules forerrorHandler
- (optional) an error handler instance that contains previous error or warnings- Returns:
- an error handler that contains all errors and warnings currently found
-
getRelationType(String)
withI_CmsXmlContentValue.getPath()
instead