+

Search Tips   |   Advanced Search

Module schema definition

Use these elements to define theme modules.


Defining a module

We can also define a schema for modules independent of their XML or JSON format. For the JSON format, there is a JSON schema definition available at WebDAV...

    Theme\themes\Portal8.5\contributions\schema

In the following examples, use the following syntax.

    1 only one is required
    0..1 one or zero
    0..* any number is allowed
    1..* at least one is required

    Element: module

    The module that provides contributions.

    Attributes:

      ID (1) The system-wide identifier for this module. The ID value is a String that must be unique in the system. version (0..1) The version of the module provided with this contribution. The version value uses the format major.minor.revision.

    Parent

    • extension

    Child-elements

    • 0..* capability
    • 0..* prereq
    • 0..* title
    • 0..* description
    • 0..* contribution
    • 0..1 moduleActivation
    • 0..1 runtimeActivation

    Element: capability

    The declaration of a capability that this module delivers.

    Attributes:

      ID (1) The unique name to be used for this capability.
      value (1) the version of the capability provided by this module. The capability value uses a dotted decimal string.

    Parent

    • module

    Element: prereq

    A module required by another module that defines the requirement.

    Attributes:

      ID (1) The ID of required module.
      minversion (0..1) The minimum version of the prereq module required by the module that defines the requirement. The minversion value uses a dotted decimal string.
      type (0..1) Setting the type="optional" stops error logging when there is a missing prereq.

    Parent

    • module

    Element: title

    A title for the defining module.

    Attributes:

    • value (1): A title for the module.
    • lang (1): The language string for the title, for example, en_US, de_de, or es_es.

    Parent

    • module

    Element: description

    A description of the defining module.

    Attributes:

    • value (1): A string describing the module.
    • lang (1): The language string for the description, for example, en_us, de_de, or es_es.

    Parent

    • module

    Element: contribution

    Defines a theme contribution of the module.

    Attributes:

    Parent

    • module

    Child-elements

    Element: subcontribution

    Part of the overall contribution. For example, in the head contribution, subcontributions can add CSS, JavaScript, or head-specific markup.

    Attributes

      uri (0..1 or 1..* if there is no URI child) The URI to the subcontribution resource. The URI can also be provided as a child element of the subcontribution node. Use an attribute, or a child, but not both to specify the URI. More than one URI can be supplied, but only one is selected and returned.
      ref-id (0..1) The ID of the dynamic spot to override. Use it only for dyn-cs subcontributions.
      type (1) Declares what type of contribution is provided. The valid values for type are

      markup HTML markup for head, config, or dyn-cs contributions.
      css Cascading style sheet files for head contributions only.
      js JavaScript libraries, functions, and objects for head and config contributions. These contributions are loaded after contributions with a config_* value.
      config_static JavaScript configuration for head and config contributions that are not request-dependent variable definitions. These contributions are collected in a separate file.
      config_dynamic JavaScript configuration for head and config contributions that are request-dependent variable definitions. These contributions are injected into the markup.
      json JSON definitions for menu contributions only.
      deviceClass (0..1) Controls when the defined subcontribution is aggregated on the page based on active device classes. It can be a single device class or logical equation.

    • values:

      markup HTML markup
      css Cascading style sheet statements.
      js JavaScript libraries, functions, and objects. These contributions are loaded after contributions with a config_* value.
      config_static JavaScript configuration contributions that are not request-dependent variable definitions. These contributions are collected in a separate file.
      config_dynamic JavaScript configuration contributions that are request-dependent variable definitions. These contributions are injected into the markup.

    Parent

    • contribution

    Child-elements

    • 0..1 uri

    Element: uri

    A URI pointing to a theme module resource. {war:context-root} can be used here. See Writing modules.

    Attributes:

    • value (1): The URI of the resource to be used.

    • lang (0..1): The language to which the defined URI applies, for example, en_US.

    • type (0..1): The type to which this URI applies. For the subcontribution type of CSS the URI type can be rtl, triggered when the Portal is rendering in a right to left language. Or debug, triggered when the Portal is in debug mode. For JavaScript, the URI type can be debug.

    • deviceClass (0..1): The type of device to which the URI applies, such as smartphone, tablet, or a device class equation.

    Parent

    Different schemes can be used within the value attribute.

    Use this scheme with caution because it can severely affect performance. The remote file is included on the server and not on the browser. When this scheme is used, remote requests are sent from the virtual machine of the portal during portal page rendering to the remote system in a synchronous manner. Therefore, the response time of the remote system affects portal page rendering time and the number of available threads available for other requests. Use HTTP only for static sources that can be cached in a proxy or HTTP server in front of portal.

    The Ajax proxy is used to perform the remote call so the configuration must be updated for the remote request to occur.

    • http: Use HTTP to reference files that are accessible using HTTP.

    • res: Use the res scheme to access an arbitrary resource, such as a JSP, a servlet, or a static file, in a web module installed on the server.

    • dav: Use the dav scheme to access resources in the portal file store. We can also use replacement tokens for the URI value, for example:
        res:{rep=WP
         CommonComponentConfigService;key=cc.theme.context}/themes/html/PageBuilder2/modules/css/markup/head_m.jsp
        

      The code...

        {rep=WP CommonComponentConfigService;key=cc.theme.context}
        

      is replaced with the value of the custom property cc.theme.context in the resource environment provider WP CommonComponentConfigService.

    Element: moduleActivation

    Declaration of a class that controls whether the module is active. Use either the extensionID or class attribute to indicate the activation implementation; both are supported.

    Attributes:

      extensionID (0..1 or 0 if class is used) The class name that implements the ModuleActiveChecker interface.
      class (0..1) The class name that implements the ModuleActiveChecker interface.

    Parent

    • module

    Child-elements

    • 0..* parameters

    Element: parameter

    Declaration of a resource environment entry that specifies whether the module is active or not whose values are true or false. The default value is true.

    Attributes:

    • name (1): The name of the parameter.

    • value (1): The value of the parameter.

    Parent

    • moduleActivation

    Element: runtimeActivation

    A switch triggered during run time to enable or disable a module and its capabilities, depending on a condition of the current page state.

    Attributes:

    • none

    Parent

    • module

    Child-elements:

    • condition (1..*)

    Example:

    Element: condition

    A condition for which the runtimeActivation must be activated.

    Attributes:

    • deviceClass (1): The type of device to which the URI applies, such as smartphone, tablet, or a device class equation.

    Parent

    • runtimeActivation


Parent Writing modules

Related concepts:

Simple menu framework - JSON format