Interface I_CmsXmlContentHandler

All Known Implementing Classes:
CmsCategoryXmlContentHandler, CmsDefaultXmlContentHandler, CmsHtmlRedirectHandler, CmsListConfigContentHandler, CmsXmlContainerPageHandler, CmsXmlDynamicFunctionHandler, CmsXmlGroupContainerHandler, CmsXmlInheritGroupContainerHandler

public interface I_CmsXmlContentHandler
Handles special XML content livetime events, and also provides XML content editor rendering hints.

Since:
6.0.0
  • Field Details

  • Method Details

    • applyReverseAvailabilityMapping

      Writes an availability date back to the content, if a mapping is defined for it.
      Parameters:
      cms - the CMS context
      content - the content to write to
      attr - the attribute to write
      locales - the locales of the resource
      value - 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 context
      path - 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

      String getConfiguration(String remainingPath)
      Gets the widget configuration for the given sub-path.

      Parameters:
      remainingPath - a sub-path
      Returns:
      the widget configuration for the given sub-path
    • getConfiguredDisplayType

      Gets the configured display type for a given path.

      Parameters:
      path - the path
      defaultVal - 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 context
      resource - 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 context
      resource - the content resource
      type - the type to get the default for
      path - the element path
      locale - 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 context
      value - the value to get the default for
      locale - 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 project
      res - 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 context
      resource - 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

      Gets the mappings defined in the schema.
      Returns:
      the mappings
    • getMappings

      List<String> getMappings(String elementName)
      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 the CmsMessages 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 context
      res - the resource
      locale - the content locale
      req - 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

      String getPreview(CmsObject cms, CmsXmlContent content, String resourcename)
      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 context
      content - the XML content to display the preview URI for
      resourcename - 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

      Returns 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 for
      defaultType - 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 context
      resource - 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 context
      document - 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 context
      path - 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

      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

      Returns whether there are nested formatters configured for this content type.

      Returns:
      true if there are nested formatters configured for this content type
    • hasSynchronizedElements

      Returns if there are locale synchronized elements configured.

      Returns:
      true if there are locale synchronized elements configured
    • 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 analyze
      contentDefinition - 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 context
      document - the document to resolve the check rules for
    • isAcaciaEditorDisabled

      Checks whether the Acacia editor is disabled for this type.

      Returns:
      true if the Acacia editor is disabled
    • isContainerPageOnly

      Returns true if the XML content should be indexed when it is dropped in a container page, and returns false 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.
      use getSearchContentType(I_CmsXmlContentValue) instead. Will be removed if plain lucene search is removed.
      Returns true 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 context
      schemaType - the content value type
      valuePath - the value path
      resource - the edited resource
      contentLocale - 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 context
      content - 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 context
      content - the XML content to be written
      file - 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

      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 context
      content - the XML content to resolve the mappings for
      value - the value to resolve the mappings for
      Throws:
      CmsException - if something goes wrong
    • resolveValidation

      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 context
      value - the value to resolve the validation rules for
      errorHandler - (optional) an error handler instance that contains previous error or warnings
      Returns:
      an error handler that contains all errors and warnings currently found