Advanced

Advanced topics

Layout Manager Config 1.4

This DTD defines and maps the components of the Layout Manager to URLs through the following file:

/WEB-INF/template/default/Layout/config.xml

An Administrator role is required to see this file through Project Files under the Dev menu in the Developer perspective. 

For additional information about the associated files, see Layout Manager folders and files.

Entities

Generic definition for boolean attribute values

<!ENTITY % BOOLEAN          "( true | false )"   >

A comma separated list of scopes ( group | server | project)

<!ENTITY % SCOPE            "CDATA"              >

A URI Pattern as defined in the URI Template specifications

<!ENTITY % URI_PATTERN      "CDATA"              >

A string which contain dynamic tokens and is resolved dynamically.

  1. {...} (curly brackets) indicate that the value is dynamically constructed
    • @ prefixes the name config property
    • $ prefixes the name an HTTP parameter
    • # prefixes the name an URL Pattern parameter or a variable
  2. any other value is considered static and transmitted 'as is'.
<!ENTITY % TOKENIX           "CDATA"             >

Containers

<layout-config>

The top level element for a layout configuration.

<content-security-policy> The container for content security policy directives (add in v1.4).

<navigation> The container for sections

<blocks> The container for blocks (and block sets)

<dialogs> The container for dialogs

<pages> The container for pages

@version The version of this layout configuration; must be "1.4".

<!ELEMENT layout-config     ( navigation?, blocks?, dialogs?, pages? ) >
<!ATTLIST layout-config   version              CDATA    #FIXED "1.4" >

 <navigation>

 Represents the general navigation within a page.

<menu> The list of menus (which appear as tabs)

<!ELEMENT navigation                                    ( menu* ) >

 <blocks>

Groups the blocks.

<block> The list of blocks defined in the layout

<block-set> The list of block sets that can be used

<!ELEMENT blocks                               ( block*, blockset* ) >

<dialogs>

Groups the dialogs.

<dialog> The list of dialogs

<!ELEMENT dialogs                                        ( dialog* ) >

<pages>

Groups the pages.

<page> The list of pages

<!ELEMENT pages                                            ( page* ) >

<content-security-policy>

Groups the directives.

<directive> The list of directives

<!ELEMENT content-security-policy                      ( directive* ) >

Layout Components

<menu>

Defines a menu in the navigation, which may appear as a tab or other form. The first link is the default.

<link> A list of links.

@name A unique menu name for reference.

@title The title of the section, displayed on the page.

@scope Specifies the scope for which the navigation item can be displayed.

@permission Specifies the permission required for this menu to display.

@role A role for this menu to qualify it (for use in the output).

<!ELEMENT menu                                             ( link* ) >
<!ATTLIST menu    title        CDATA                       #REQUIRED
                  name         NMTOKEN                      #IMPLIED
                  scope        %SCOPE;                      #IMPLIED 
                  permission   NMTOKEN                      #IMPLIED
                  role         NMTOKEN                      #IMPLIED >

<link>

Defines a Tab subsection.

A subsection is a selection UI component which is displayed when its parent section is selected in the navigation Tab Panel.

@idref The page ID to display if the tab is clicked. Optional for now as not all pages (popups) have IDs in new Layout view.

@name A unique link name for reference.

@title The title of the subsection, displayed on the page.

@default If multiple subsections this is the default to display if the section is clicked.

@optional Only display if this page matches the current URL.

@scope Specifies the scope for which the link can be displayed.

@also A list of Page ID refs that would make this link active.

@role A role for this link to further qualify it (for use in the output).

<!ELEMENT link                                                EMPTY >
<!ATTLIST link       idref        IDREF                    #REQUIRED
                     title        CDATA                    #REQUIRED
                     name         NMTOKEN                   #IMPLIED                     href         CDATA                     #IMPLIED
                     default      %BOOLEAN;                  "false"
                     optional     %BOOLEAN;                  "false"
                     scope        %SCOPE;                   #IMPLIED 
                     permission   NMTOKEN                   #IMPLIED
                     also         IDREFS                    #IMPLIED
                     role         NMTOKEN                   #IMPLIED >

<block>

Defines a block. A block is a simple UI component which can be included inside other pages, or produced as a standalone component for inclusion inside a page.

The servlets are invoked in the order in which they are specified.

<url> How this block can be accessed.

<servlet> A servlet to invoke to produce content.

<generator> A content generator to invoke to produce content.

<script> A script to import with the block.

@id A specific identifier for this block.

@style-id Style ID (used for XSLT and CSS).

@permission Only display if the specified permission is "true" (e.g. edit-group).

@shared The name of the shared script/css used (e.g. block-account). Added in v1.4.

@method Restricts this component to an HTTP method get or post.  Added in v1.4.

@title The title for the block.

@scope Specifies the scope for which the dialog can be displayed.

<!ELEMENT block   ( url+, (servlet | generator)*, script*) >

<!ATTLIST block id       ID                                #REQUIRED
          style-id       IDREF                              #IMPLIED
          permission     NMTOKEN                            #IMPLIED
          shared         NMTOKEN                            #IMPLIED
          method         NMTOKENS                           "get post"
          title          CDATA                              #IMPLIED
          scope          %SCOPE;                            #IMPLIED >

<blockset>

Defines a set of blocks for inclusion in a page.

<block-ref> A referenced block (note: referenced block must not require parameters).

@id A specific identifier for this block.

<!ELEMENT blockset                                    ( block-ref* ) >
<!ATTLIST blockset id       ID                             #REQUIRED >

<dialog>

A simple interface component for re-usable, standalone pages that do not require any blocks or navigation, for example workflow

The servlets are invoked in the order in which they are specified.

<url> How this dialog can be accessed.

<servlet> A servlet to invoke to produce content.

<generator> A content generator to invoke to produce content.

<script> A script to import with the dialog.

@id A specific identifier for this dialog.

@style-id Style ID (used for XSLT and CSS).

@permission Only display if the specified permission is "true" (e.g. edit-group).

@shared The name of the shared script/css used (e.g. dialog-account). Added in v1.4.

@method Restricts this component to an HTTP method get or post.  Added in v1.4.

@title The title for the dialog.

@scope Specifies the scope for which the dialog can be displayed.

<!ELEMENT dialog   ( url+, (servlet | generator)*, script*) >

<!ATTLIST dialog id       ID                                #REQUIRED
          style-id       IDREF                              #IMPLIED
          permission     NMTOKEN                            #IMPLIED
          shared         NMTOKEN                            #IMPLIED
          method         NMTOKENS                           "get post"
          title          CDATA                              #IMPLIED
          scope          %SCOPE;                            #IMPLIED >

<page>

This element aggregates multiple content sources and interface components such as <blockset> into a cohesive object accessible by a URI. The servlets are invoked in the order in which they are specified.

<url> How this element is accessed. The value must be a valid URI Pattern.

<var> A variable for use in the page definition.

<servlet> The servlets to invoke for the required content.

<generator> The generators to invoke for the required content.

<script> Any scripts to be imported with the page content.

<block-ref> Reference to any individual blocks to include on the page.

<blockset-ref> Reference to any combined blocksets included on the page.

@id A specific identifier for this page.

@style-id The ID of a page (affects for XSLT and CSS).

@permission Only display if the specified permission is "true" (e.g. edit-group).

@shared The name of the shared script/css used (e.g. page-account). Added in v1.4.

@method Restricts this component to an HTTP method get or post.  Added in v1.4.

@title The title of the HTML page.

@scope Specifies the scope for which the page can be displayed.

<!ELEMENT page (url+, var*, servlet*, generator*, script*, 
                              blockset-ref?, block-ref*) >
<!ATTLIST page id           ID                             #REQUIRED
               style-id     IDREF                           #IMPLIED
               permission   NMTOKEN                         #IMPLIED
               shared       NMTOKEN                         #IMPLIED
               method       NMTOKENS                        "get post"
               title        CDATA                           #IMPLIED
               scope        %SCOPE;                         #IMPLIED >

Basic Elements

<block-ref>

A reference to an existing block or block set.

<parameter> A URL parameter to send to the referenced block.

@idref The ID of the referenced block.

<!ELEMENT block-ref                                     (parameter*) >
<!ATTLIST block-ref idref   IDREF                          #REQUIRED >

<blockset-ref>

A reference to an existing block or block set.

@idref The ID of the referenced block set.

<!ELEMENT blockset-ref                                         EMPTY >
<!ATTLIST blockset-ref idref    IDREF                      #REQUIRED >

<url>

The URL to access the UI component.
The scope can narrow down.

@pattern A URI pattern to match for this component.

@scope Indicates the scope of this URL.

<!ELEMENT url                                                  EMPTY >
<!ATTLIST url pattern   %URI_PATTERN;                      #REQUIRED
              scope     %SCOPE;                             #IMPLIED >

<var>

Defines a variable for use in the component (page, block) - Advanced feature.

@name The name of the variable.

@type The type (constructor) for instantiating the variable.

@value The value to use to instantiate a variable.

<!ELEMENT var                                                  EMPTY >
<!ATTLIST var name        NMTOKEN                          #REQUIRED
              type        NMTOKEN                           #IMPLIED
              value       %TOKENIX;                         #IMPLIED >

<servlet>

Specifies a Java servlet to invoke.

<parameter> Parameters to transmit the Java servlet when invoked; they are ordered.

@class The Java servlet class.

@tunnel Specifies whether all parameters on the URL should be tunnelled through.

<!ELEMENT servlet                                     ( parameter* ) >
<!ATTLIST servlet class       NMTOKEN                     #REQUIRED
                  tunnel      %BOOLEAN;                      "false" >

<generator>

Specifies a content generator to invoke.

<parameter> Parameters to transmit the Java servlet when invoked; they are ordered.

@class The Java generator class.

<!ELEMENT generator                                   ( parameter* ) >
<!ATTLIST generator class NMTOKEN                          #REQUIRED >

<parameter>

A parameter to pass.

The meaning of the parameter depends on the context element.

@name The name of the parameter that the servlet receives.

@value How the value is constructed.

@default A fallback value in case the value is empty.

<!ELEMENT parameter                                            EMPTY >
<!ATTLIST parameter name       NMTOKEN                     #REQUIRED
                    value      %TOKENIX;                    #IMPLIED
                    default    %TOKENIX;                    #IMPLIED >

<script>

A script required for the UI component. All scripts are assumed to be JavaScript.

@src The source of the script from the PageSeeder public web area.

<!ELEMENT script                                               EMPTY >
<!ATTLIST script src       CDATA                           #REQUIRED >

<directive>

Defines a content security policy (add in v1.4).

@name The name of the directive.

@value The value of the directive.

<!ELEMENT directive                                            EMPTY >
<!ATTLIST directive name       CDATA                       #REQUIRED
                    value      CDATA                       #REQUIRED >

Created on , last edited on