Skip to content

Templates

Templates are using XML Syntax and scoped into 3 Namespaces:

  • XT (Standard XELOS Template Output and Control Structures)
  • XLIB (Accessor for LIB Functions, primarily formatting)
  • XUI (UI Components which are replaced during rendering)

It is advised as to use the provided DTD files for IDE autocompletion. The DTD is provided additionally for reference within this document.

Example Usage

Example XT Control Structure

<h1>Todo List</h1>
<xt:if marker="my_array">
    <ul>
        <xt:forach marker="my_array" value_marker="my_element">
            <li><xt:echo marker="my_element" /></li>
        </xt:foreach>
    </ul>
</xt:if>
<xt:else>
    <strong>Nothing todo</strong>
</xt:else>

Example XLIB Formatting

<h1>What time is it?</h1>
<xlib:format format="datetime" from_string="true" friendly="true" live_update="true">
     now
</xlib:format>

Example XUI

<xui:user_image />

Legacy / Attribute Syntax

When trying to place an attribute or markers within a javascript block, the XML template syntax is not very suitable and you are advised to use old legacy markers in such circumstances.

Example Legacy Syntax

<script>
alert('###message###');
</script>

XT DTD

<!ELEMENT xt:echo EMPTY>
<!ATTLIST xt:echo
    marker      CDATA #REQUIRED
    escape      (default|false|urlencode|htmlentities_ent_quotes) #IMPLIED
    block       CDATA #IMPLIED
    trim        (true|false) #IMPLIED
    index       (1|1.title|_count|_current|_next|_prev|_sum|_unique|_rand|_json|_csv) #IMPLIED
    config       CDATA #IMPLIED
    >

<!ELEMENT xt:if ANY>
<!ATTLIST xt:if
    marker      CDATA #REQUIRED
    value       CDATA #IMPLIED
    condition   (istrue|isfalse|isset|isnotset|greater|smaller|equal|unequal|in|count_equal|count_unequal|count_greater|count_smaller) #IMPLIED
    block       CDATA #IMPLIED
    config      (global.system_default_navset|user.i18n_language|view.module|view.instance|view.page|view.cmd|view.navid|view.is_public) #IMPLIED
    index       CDATA #IMPLIED
    valuemarker CDATA #IMPLIED
    config       CDATA #IMPLIED
    >

<!ELEMENT xt:elseif ANY>
<!ATTLIST xt:elseif
    marker      CDATA #REQUIRED
    value       CDATA #IMPLIED
    condition   (istrue|isfalse|isset|isnotset|greater|smaller|equal|unequal|in|count_equal|count_unequal|count_greater|count_smaller) #IMPLIED
    block       CDATA #IMPLIED
    config      (global.system_default_navset|user.i18n_language|view.module|view.instance|view.page|view.cmd|view.navid|view.is_public) #IMPLIED
    index       CDATA #IMPLIED
    valuemarker CDATA #IMPLIED
    >

<!ELEMENT xt:else ANY>
<!ATTLIST xt:else>

<!ELEMENT xt:foreach ANY>
<!ATTLIST xt:foreach
    marker        CDATA #REQUIRED
    key_marker    CDATA #IMPLIED
    value_marker  CDATA #IMPLIED
    block         CDATA #IMPLIED
    limit         (1|unlimited) #IMPLIED
    separator     (;) #IMPLIED
    >

<!ELEMENT xt:assign ANY>
<!ATTLIST xt:assign
    marker    CDATA #REQUIRED
    value     CDATA #IMPLIED
    mode      (append, prepend, replace) #IMPLIED
    value_marker CDATA #IMPLIED
    >

<!ELEMENT xt:include EMPTY>
<!ATTLIST xt:include
    section   CDATA #IMPLIED
    template  CDATA #IMPLIED
    escape  CDATA #IMPLIED
    >

<!ELEMENT xt:param ANY>
<!ATTLIST xt:param
    name        CDATA #REQUIRED
    value       CDATA #IMPLIED
    for         CDATA #IMPLIED
    >
<!ELEMENT xt:vars ANY>
<!ATTLIST xt:vars
    title       CDATA #REQUIRED
    type        (email|plain|pdf) #IMPLIED
    >
<!ELEMENT xt:block ANY>
<!ATTLIST xt:block
    name       CDATA #REQUIRED
    type       (short|text) #IMPLIED
    format     (html|plain) #IMPLIED
    >

XLIB DTD

<!ELEMENT xlib:format ANY>
<!ATTLIST xlib:format
    src     CDATA #IMPLIED
    format  (auto|parse_text|text_parse|by_callback|queue|date|datetime|time|money|money_underlying|percent|percentpa|number|filesize|string|boolean|insert|text|email|cast|userlink|sprintf) #IMPLIED
    prefix  CDATA #IMPLIED
    suffix  CDATA #IMPLIED
    custom_format CDATA #IMPLIED
    from_string (true|false) #IMPLIED
    friendly (true|false) #IMPLIED
    >

<!-- See xui:param -->
<!ELEMENT xlib:param ANY>
<!ATTLIST xlib:param
    name        CDATA #IMPLIED
    id          CDATA #IMPLIED
    value       CDATA #IMPLIED
    for         CDATA #IMPLIED
    type        CDATA #IMPLIED
    label       CDATA #IMPLIED
    >

XUI DTD

<!ELEMENT xui:css ANY>
<!ATTLIST xui:css
    src      CDATA #IMPLIED
    >

<!ELEMENT xui:javascript ANY>
<!ATTLIST xui:javascript
    src      CDATA #IMPLIED
    >

<!ELEMENT xui:link ANY>
<!ATTLIST xui:link
    href        CDATA #IMPLIED
    view        CDATA #IMPLIED
    page        CDATA #IMPLIED
    cmd         CDATA #IMPLIED
    icon_class  CDATA #IMPLIED
    target      CDATA #IMPLIED
    label  CDATA #IMPLIED
    class  CDATA #IMPLIED
    render_mode (full|url) #IMPLIED
    confirm_text CDATA #IMPLIED
    >

<!ELEMENT xui:param ANY>
<!ATTLIST xui:param
    name        CDATA #IMPLIED
    id          CDATA #IMPLIED
    value       CDATA #IMPLIED
    for         CDATA #IMPLIED
    type        CDATA #IMPLIED
    label       CDATA #IMPLIED
    >

<!ELEMENT xui:image ANY>
<!ATTLIST xui:image
    src               CDATA #IMPLIED
    width             CDATA #IMPLIED
    height            CDATA #IMPLIED
    alt               CDATA #IMPLIED
    title             CDATA #IMPLIED
    crop              CDATA #IMPLIED
    appearance_mode   (none|online_status|avatar|edge|polaroid) #IMPLIED
    disable_replacer  (1|0) #IMPLIED
    resize            (1|0) #IMPLIED
    >

<!ELEMENT xui:userlink ANY>
<!ATTLIST xui:userlink
    user_id CDATA #REQUIRED
    >

<!ELEMENT xui:breadcrumb ANY>

<!ELEMENT xui:user_image ANY>
<!ATTLIST xui:user_image
    user_id CDATA #REQUIRED
    >

<!ELEMENT xui:math ANY>
<!ATTLIST xui:math
    a CDATA #IMPLIED
    b CDATA #IMPLIED
    operation (mul|div|add|sub|+|*|-|%) #IMPLIED
    >

<!ELEMENT xui:callback ANY>
<!ATTLIST xui:callback
    module CDATA #IMPLIED
    instance_id CDATA #IMPLIED
    further_optional_params CDATA #IMPLIED
    >

<!ELEMENT xui:tabs ANY>
<!ATTLIST xui:tabs
    hide_heading (1|0) #IMPLIED
    collapsible (1|0) #IMPLIED
    start_collapsed (1|0) #IMPLIED
    selected (1|2|3|4|5|6|7|8|9) #IMPLIED
    >

<!ELEMENT xui:carousel ANY>
<!ATTLIST xui:carousel
    autoplay          CDATA #IMPLIED
    class             CDATA #IMPLIED
    show_bullets      (1|0) #IMPLIED
    >

<!ELEMENT xui:doclink ANY>
<!ATTLIST xui:doclink
    document_index_id CDATA #REQUIRED
    include_actions   CDATA #IMPLIED
    exclude_actions   CDATA #IMPLIED
    context_prepend   CDATA #IMPLIED
    context_append    CDATA #IMPLIED
    show              CDATA #IMPLIED
    displaystyle      (icon|icontext|singleaction|widget|menu) #IMPLIED
    >

<!ELEMENT xui:inline_editor ANY>
<!ATTLIST xui:inline_editor
    document_index_id CDATA #IMPLIED
    alternative_edit_url CDATA #IMPLIED
    readonly      (1|0) #IMPLIED
    >

<!ELEMENT xui:viewmode_switcher ANY>
<!ATTLIST xui:viewmode_switcher
    uid              CDATA #IMPLIED
    viewmodes        CDATA #IMPLIED "list,detail,gallery,calendar"
    target_container CDATA #IMPLIED
    default          (list|detail|gallery|calendar) #IMPLIED
    >

<!ELEMENT xui:html_generic ANY>
<!ATTLIST xui:html_generic
    tag              CDATA #REQUIRED
    >

<!ELEMENT xui:translation ANY>
<!ATTLIST xui:translation
    document_index_id         CDATA #IMPLIED
    cache_key                 CDATA #IMPLIED
    target_language           CDATA #IMPLIED
    add_to_search_index (1|0) CDATA #IMPLIED
    translation_only    (1|0) CDATA #IMPLIED
    minimal             (1|0) CDATA #IMPLIED
    minimal_switch      (1|0) CDATA #IMPLIED
    >