Simple Groupware sgsML Reference Guide
This guide describes all aspects of sgsML. Starting from tags and attributes to custom trigger functions, modifiers, formatters and validators.
sgsML is the abbreviation for Simple Groupware Solutions Markup Language, and represents a programming language that enables quick customization and creation of powerful web applications.
A small introduction to sgsML can be found here. The FAQs for sgsML are collected here.
This page contains all basic attributes and tags. All extended attributes are described here.
Note: sgsML always needs to be valid XML
Beginning with release 0.720, fields can be created and changed directly in the GUI. Simply log in as the super administrator and navigate to "/Workspace/System/Customize/Fields".
sgsML elements
1) Views: containing New, Edit, Edit as new
2) View buttons: containing Cut-Copy-Paste, Delete, Purge
3) Tabs, 4) Single buttons, 5) Quick add, 6) Assets, 7) Groups, 8) Fields, 9) Module
Tag structure
- <table>
- <view>
- <tab>
- <viewbutton> (optional)
- <singlebutton> (optional)
- <field>
- <data> (optional)
- <filter> (optional)
- <validate> (optional)
- <link>, <linktext> (optional)
- <notin>, <onlyin> (optional)
- <description> (optional)
Other topics
- Automatic system fields
- PHP method signatures
- Templates
- Module naming
- Extensions
- Examples
- Release changes
Table is the first tag in the structure and contains general information about the module. All other tags are nested under the "table" tag.
Example:
<table modulename="{t}Tasks{/t}" default_view="display" orderby="ending" order="asc" limit="20" enable_new="true" enable_edit="true" enable_delete="true" enable_empty="true">
Basic attributes:
- modulename: Name of the module, displayed in the GUI.
required: yes
translatable: yes
example: modulename="{t}Contacts{/t}" or modulename="Contacts"
used in: contacts.xml (and more) - default_view: Name of the default view shown when opening the folder. If undefined, first view will be used.
example: default_view="display"
used in: contacts.xml (and more) - orderby: Name of the field that sets the default sorting of the assets. If undefined, assets are unsorted by default.
example: orderby="lastname"
used in: contacts.xml (and more) - order: Defines the order (ascending or descending) used in the default sorting of the assets. If undefined, ascending will be used.
possible values: asc, desc
example: order="asc"
used in: contacts.xml (and more) - limit: Defines the maximum number of assets to display on a page. If undefined, 20 will be used.
example: limit="30"
used in: contacts.xml (and more) - groupby: Defines a field name which is used to group the assets. If undefined, assets are not grouped.
example: groupby="category"
used in: search.xml - group: Defines the order (ascending or descending) used to sort the groups of assets. If undefined, group names will be sorted ascending.
possible values: asc, desc
example: group="asc"
used in: --- - enable_new: Adds "new" and "edit_as_new" views and a "paste" button to the module. If undefined, creating new assets will not be possible.
example: enable_new="true"
used in: contacts.xml (and more) - enable_new_only: Adds a "new" view and a "paste" button to the module. If undefined, creating new assets will not be possible.
example: enable_new_only="true"
used in: nodb_backups.xml, nodb_fs.xml (and more) - enable_edit: Adds an "edit" view to the module. If undefined, editing assets will not be possible.
example: enable_edit="true"
used in: contacts.xml (and more) - enable_delete: Adds buttons "delete" (with trash) and "cut" to the module. If undefined, it is not possible to delete or cut/paste assets.
example: enable_delete="true"
used in: contacts.xml (and more) - enable_purge: Adds buttons "delete" (without trash) and "cut" to the module. If undefined, it is not possible to delete or cut/paste assets.
example: enable_purge="true"
used in: events.xml, session.xml (and more) - enable_empty: Adds "empty folder" (with trash) button to the module. If undefined, it is not possible to delete all assets in a folder at once.
example: enable_empty="true"
used in: contacts.xml (and more) - enable_purgeall: Adds "empty folder" (without trash) button to the module. If undefined, it is not possible to delete all assets in a folder at once.
example: enable_purgeall="true"
used in: events.xml, session.xml (and more) - where: Adds an additional where condition to all select queries. If undefined, only default where statements are added (e.g. "folder in (@folders@)", "id in (@item@)")
---
example: where="created < DATE_SUB(NOW(), INTERVAL 1 HOUR)" (MySQL)
example #2: where="(private='0' or createdby=@username@)"
used in: private_items.diff.xml (and more) - disable_quick_add: Disables the "quick add" button at the end of the views. If undefined, new assets can be created with a single line of comma-separated values, representing the required fields and values.
useful for: too many required fields, values need to match complex select lookups
example: disable_quick_add="true"
used in: contactactivities.xml, expenses.xml (and more) - quick_add: Comma separated list of field names to require in the quick add function. If undefined, all fields with the "required" attrbute set to "true" will be used.
example: quick_add="pagename,title,data"
used in: cms.xml, contacts.xml (and more)
View is the second tag in the structure and contains information about views in the module. Views in sgsML are similar to views in databases (groups of fields with a special where condition).
Example:
<view name="display" displayname="{t}Open{/t}" groupby="category" where="closed=0" />
Basic attributes:
- name: Defines an alpha-numeric identifier of a view.
required: yes
example: name="display"
used in: contacts.xml (and more) - displayname: Name of the view, displayed in the GUI. If undefined, the "name" attribute will be used instead.
translatable: yes
example: displayname="{t}Display{/t}"
used in: contacts.xml (and more) - orderby: Name of the field that sets the default sorting in the current view of assets. If undefined, assets are sorted by the "orderby" attribute in the "table" tag (or unsorted if not present).
example: orderby="ending"
used in: helpdesk.xml - order: Defines the order (ascending or descending) used in the default sorting in the current view of assets. If undefined, assets are sorted by the "order" attribute in the "table" tag (or ascending if not present).
possible values: asc, desc
example: order="desc"
used in: helpdesk.xml - limit: Defines the maximum number of assets to display on a page in the current view. If undefined, the "limit" attribute in the "table" tag will be used (or 20 if not present).
example: limit="20"
used in: cms.xml (and more) - groupby: Defines a field name which is used to group the assets in the current view. If undefined, assets are grouped by the "groupby" attribute in the "table" tag (or ungrouped if not present).
example: groupby="category"
used in: bookmarks.xml, contacts.xml (and more) - group: Defines the order (ascending or descending) used to sort the groups of assets in the current view. If undefined, group names will be sorted by the "group" attribute in the "table" tag (or ascending if not present).
possible values: asc, desc
example: group="asc"
used in: --- - where: Adds an additional where condition to all select queries to the current view. Where conditions are merged with the "where" attribute in the "table" tag. If undefined, only default where statements are added (e.g. "folder in (@folders@)", "id in (@item@)")
---
example: where="activated=1"
example #2: where="closed=0"
used in: tasks.xml, helpdesk.xml, events.xml (and more) - showinsingleview: Shows a link to the current view for each asset. Recommended for "Details" or "Edit". If undefined, views will be only visible in the views bar.
example: showinsingleview="true"
used in: bookmarks.xml, notes.xml (and more) - show_preview: Shows previews of images and other files. If undefined, only filenames, sizes and modification dates are shown in the view.
example: show_preview="true"
used in: contacts.xml, tasks.xml (and more) - image_width, image_height: Shows image thumbnails or other previews with a maximum width or height in pixels. If undefined or "show_preview" is not set for the current view, thumbnails will not be resized.
example: image_width="250" image_height="200"
used in: gallery.xml, notes.xml (and more) - template_mode: Customizes the details template (templates/asset_details.tpl). The value "noheader" shows the template without field names on the left side. The value "small" shows only fields with non-empty values. And "flat" shows fields with non-empty values, and names in a separate row. If undefined, field names are on the left, values on the right.
valid values: small, flat, noheader
example: template_mode="flat"
used in: notes.xml, faq.xml (and more) - tfield_1, tfield_2: Defines two fields shown in the headline of an asset in the details template (templates/asset_details.tpl) or a calendar view (day.tpl, month.tpl, gantt.tpl). The fields are identified by the "name" attribute". If undefined, only the first field of the view with required="true" will be shown in the headline.
example: tfield_1="firstname" tfield_2="lastname"
used in: contacts.xml, tasks.xml (and more) - showonly: Shows only a selection of fields in the current view. If undefined, all fields of a module are visible in a view. The "fields" attribute contains field names, separated by "|".
example: showonly="subject|headers"
used in: emails.xml, users.xml - enable_asset_rights: Enables individual permissions for every asset. The value "full" creates a new tab for read and write permissions (users and groups) with the default set to "anonymous". The value "owner_read" creates a new tab for read and write permissions with the default set to the current username. And the value "owner_write" creates a new tab for write permissions with the default set to the current username. If undefined, only folder permissions are used to read and write assets.
valid values: full, owner_read, owner_write
example: enable_asset_rights="full"
used in: files.xml, forum.xml, timesheets.xml (and more) - changeseen: Enables seen and unseen states for each asset. Default state is unseen (marked with bold characters). The asset gets marked as seen when the first user opens it in a view which has the "changeseen" attribute set.
example: changeseen="true"
used in: emails.xml, nodb_imap.xml (and more)
Tab is the third tag in the structure and contains groups of fields in the module. Tabs in sgsML are similar to tabs in browsers (windows/views contain tabs). Fields are assigned to tabs with the "simple_tab" attribute. Fields without a "simple_tab" attribute are assigned to the first tab. Tabs can be hidden with the "hide_tabs" or "disable_tabs" attributes.
Example:
<tab name="general" displayname="{t}General{/t}" />
Attributes:
- name: Defines an alpha-numeric identifier of a tab.
required: yes
example: name="general"
used in: contacts.xml, tasks.xml (and more) - displayname: Name of the tab, displayed in the GUI. If undefined, the "name" attribute will be used instead.
example: displayname="{t}General{/t}"
used in: contacts.xml, tasks.xml (and more)
<viewbutton>, <singlebutton> tag (optional)
Viewbutton and singlebuttons are optional tags in the structure and define additional buttons in a module. View-buttons will be added to the view bar and can be applied to more than one asset. Single-buttons will be added to each asset and only affect one asset.
The "name" attribute serves as a unique identifier.
The "displayname" attribute is the name of the button displayed in the GUI.
The "views" attribute contains view names to apply the filter to, separated by "|".
The "onclick" attribute describes the Javascript function to execute when the button is clicked.
The "icon" attribute can be used to set an icon for the link (located under "ext/icons/").
The "right" attribute sets the permissions required to show the button ("read", "write", "admin").
The "condition" attribute sets the condition(s) required to show a single-button. Operators can be "eq" (equal),"neq" (not equal),"lt" (less than ),"gt" (greater than),"like","nlike" (not like),"starts" (starts with) and "oneof" (one of).
Syntax: field|op|value[||field2|op2|value].
Example: condition="status|oneof|ok,fail||closed|neq|0
Example #2: condition="completed|eq|1||status|oneof|closed,canceled"
useful for: custom actions
used in: calendar.xml, tasks.xml (and more)
Examples:
<viewbutton name="custom1" displayname="{t}Custom action{/t}" onclick="ajax('myclass::ajax_myfunc', [tfolder, tview, asset_get_selected_items(true)], locate_folder);" right="write" />
<singlebutton views="display|calendar" name="close" displayname="{t}Close{/t}" onclick="asset_update({closed:'1'},'@id@');" condition="closed|neq|1" right="write" icon="accept.gif" />
<singlebutton views="display" name="take_over" displayname="{t}Take over{/t}" onclick="asset_update({responsibles:sys.username},'@id@');" right="write" icon="user_add.gif" />
Field is the fourth tag in the structure and contains information about fields in the module. Fields in sgsML are similar to fields in a database table (including data types, length and constraints).
Example:
<field name="email" displayname="{t}E-mail{/t}" simple_type="text">
<validate function="email"/>
<link value="@ext/norefer.php?url=@email@" icon="link_mail.gif"/>
</field>
Basic attributes:
- name: Defines an alpha-numeric identifier of a field.
required: yes
example: name="lastname"
used in: contacts.xml (and more) - displayname: Name of the field, displayed in the GUI. If undefined, the "name" attribute will be used instead.
example: displayname="{t}Last name{/t}"
used in: contacts.xml (and more) - simple_type: Type of the field, used to present a field in views and forms.
example: simple_type="text"
used in: contacts.xml, tasks.xml (and more)
possible types:- text: normal text input (one line)
- textarea: text input (multiple lines)
- checkbox: input only yes or no
- files: upload files
- date: select a date
- time: time input
- datetime: input date and time
- select: select box (needs <data> tag)
- dateselect: select several dates
- rating: choose a rating with stars (added in 0.662)
- int: numeric input
- float: float numbers
- pmwikiarea: text input, PmWiki markup
- wikiarea: text input, text_wiki markup
- htmlarea: HTML input
- spreadsheet: spreadsheet component
- graphviz: text input (Graphviz markup)
- codearea: source code widget
- id: unique identifier
- password: password input
- required: Requires a non-empty input value when creating or editing an asset. If undefined, the input value can be empty.
example: required="true"
used in: contacts.xml (and more) - is_unique: Requires the field to have a unique value. If undefined, the input value of the current field can exist more than once in assets belonging to the same module.
example: is_unique="true"
used in: contacts.xml (and more) - sum, avg: Sums up all values or builds the average of the current field at the bottom of the page. If undefined, there will be no additional line at the bottom displaying sums or averages.
example: sum="true", average="true"
used in: expenses.xml, projects.xml (and more) - simple_default: Defines a default input value used when creating a new asset. If undefined, the input value will be empty by default.
example: simple_default="1"
used in: tasks.xml, calendar.xml (and more) - simple_tab: Defines a name of a tab where the field is placed in. If undefined, the field will be placed in the "general" tab.
example: simple_tab="address"
used in: contacts.xml, tasks.xml (and more) - simple_size:
For simple type "select" and "dateselect", it defines the height of the select box (number of lines). If the value is greater than 1, multiple elements can be selected. If undefined, the default height is 3 lines.
For simple type "rating", it defines the maximum number of stars in the rating field. If undefined, the maximum is 5.
For simple type "files", it defines the maximum number of files that can be uploaded to the field in one asset. If undefined, an unlimited number of files can be uploaded.
example: simple_size="1"
used in: contacts.xml, tasks.xml (and more) - simple_file_size: Sets the maximum file size in bytes for a "files" field. Values can be given in units "M" (megabytes) and "K" (kilobytes). If undefined, files can be uploaded to a maximum configured in "php.ini". Relevant parameters in "php.ini" are "post_max_size" and "upload_max_filesize".
example: simple_type="files" simple_file_size="5M"
used in: contacts.xml, tasks.xml (and more) - separator: Defines a separator used to display fields containing multiple values (simple type files, select, dateselect and multitext). If undefined, the separator will be set to ", ". Beginning with version 0.645, the default is "\n".
example: separator="\n"
used in: contacts.xml, tasks.xml (and more) - nowrap: Disables automatic text wrapping. If undefined, long texts will be automatically wrapped to the next line.
useful for: date/time fields
example: nowrap="true"
used in: tasks.xml, calendar.xml (and more) - allow_custom: Applies to simple type "select". Allows the user to enter custom values not offered by the select box.
example: allow_custom="true"
used in: contacts.xml, tasks.xml (and more) - width: Sets the width of a field in the view. If undefined, all fields will be distributed on the table automatically by the browser. The minimum width is set to 40 pixels per field. Values can be set in "px", "em", "%".
example: width="50%"
used in: bookmarks.xml, events.xml (and more) - height: Sets the height of a field in the view. If undefined, the height will be defined by the content of the field. Values can be set in "px", "em", "%".
example: height="300px"
used in: notes.xml, gallery.xml (and more)
<field> tag: Basic sub-tags (optional)
- <link>, <linktext>: Adds a link to the current field. The link can be placed before the current value (<link> tag) or directly in the current value (<linktext> tag). Variables like @folder@, @id@ or @field_name@ automatically get replaced with their current values. The link can be added to all views or some views specified in the "views" attribute, separated by "|".
When the "value" attribute starts with a "#", the link is opened in the horizontal preview pane. When the "value" attribute starts with a "%", the link is opened in the vertical preview pane on the right side. When the "value" attribute starts with a "@", the link is opened in a new browser window. The "icon" attribute can be used to set an icon for the link (located under "ext/icons/"). URL parameters are described here.
---
example: <link value="@ext/norefer.php?url=@url@"/>
example #2: <linktext views="display" value="#index.php?folder=@folder@&view=details&iframe=1&item=@id@"/>
example #3: <link value="skype:@skype@?userinfo" icon="phone.gif"/>
used in: contacts.xml, tasks.xml
- <filter>: Calls a PHP method to modify the output of a field in a view. There can be multiple <filter> tags inside a <field> tag. Method parameters can be added, separated by "|". Default class is "modify", can be changed with prefix "classname::". Filters can be applied to all views or some views specified in the "views" attribute, separated by "|". The "type" attribute (optional) can be set to "_fgstyle" to set a foreground CSS attribute or "_bgstyle" to set a background CSS attribute.
---
translatable: yes
useful for: modifying output of a field
example: <filter views="all" function="shortdatetimeformat"/>
example #2: <filter views="all" function="percent"/>
example #3: <filter views="display" function="shortmessage|100"/>
example #4: <filter views="all" function="dateformat||{t}m/d/Y{/t}"/>
example #5: <filter views="display|details" function="myclass::validate_url"/>
used in: contacts.xml, tasks.xml (and more)
linkselect: Appends the value of a field with a couple of links pointing to other records in the database. Links are separated with a <separator> string. Two fields are selected from a table: The first field is used as the ID of the record to be linked. The second field serves as the text for the link. Variables like @field_name@ automatically get replaced with their current values in the where field. The maximum number of links is 100 by default and can be changed with the <limit> parameter.
---
syntax: <filter views="<views>" function="linkselect|<separator>|<table>|<key-column>,<value-column>|<where>|<order-by>|<limit>"/>
example: <filter views="all" function="linkselect|, |simple_intranet|id,pagename|folder=@folder@ and mainpage='0'|pagename"/>
showselect: Similar to linkselect, but it only presents values without links.
---
syntax: <filter views="<views>" function="showselect|<separator>|<table>|<key-column>,<value-column>|<where>|<order-by>|<limit>"/>
example: <filter views="all" function="showselect|\n|simple_tasks|'',concat('Average: ';round(avg(progress)*100);'%')|project=@projectname@|"/>
- <data>: Defines the list of options used in simple type "select". There can be multiple <data> tags inside a <field> tag. Can be a list of values, separated by "|" (attribute "values").
Can also be a list of key-value pairs, separated by "_##_" and "|" (see example #2). The "reverse" attribute can be used to translate keys in normal views to values.
Can be a PHP method which returns the list. Method parameters can be added, separated by "|". Default class is "select", can be changed with prefix "classname::".
The "title" attribute is optional and can be used to describe multiple <data> blocks in the form.
---
translatable: yes
used in: contacts.xml, tasks.xml (and more)
examples:
<data title="Companies" values="low|normal|urgent"/>
<data reverse="true" values="0_##_{t}low{/t}|1_##_{t}normal{/t}|2_##_{t}urgent{/t}"/>
<data function="dbselect|simple_companies|id,companyname||companyname asc|10"/>
<data function="dbselect|<table>|<key-column>,<value-column>|<where>|<order-by>|<limit>|<no_permisions>"/>
<data function="dbselect|(select a.* from table1 a, table2 b where a.id=b.id)|<key-column>,<value-column>||<order-by>|<limit>"/>
<data function="dbselect|simple_sys_users|username,concat(lastname;'; ';firstname)||lastname asc|10"/>
<data function="myclass::mymethod|params..."/>
Note: For the "dbselect" function, all permissions are checked automatically. Datasets from external tables not related to Simple Groupware will only show up if the 6th parameter is set to "no_permissions". Permissions are checked against the table "simple_sys_table".
Note: To use the "concat" function (SQL) in <value-column>, replace "," with ";", e.g. concat(lastname;' ';firstname)
Note: When there a more entries than <limit>, the result is empty and the user is forced to use the search function. The <limit> parameter is used as a maximum amount of entries to fetch.
- <validate>: Calls a PHP method to validate the current field before saving it to the database. There can be multiple <validate> tags inside a <field> tag. Method parameters can be added, separated by "|". Default class is "validate", can be changed with prefix "classname::".
---
translatable: yes
useful for: validating user input
example: <validate function="numeric"/>
example #2: <validate function="email"/>
example #3: <validate function="url"/>
example #4: <validate function="regexp|/^[0-9]+$/|ID must be numeric"/>
example #5: <validate function="myclass::validate_url" />
used in: contact.xml, tasks.xml (and more)
- <notin>, <onlyin>: Not-in removes the current field from some views. Only-in shows the current field only in some views. If undefined, all fields of a module are visible in a view. The "views" attribute contains view names, separated by "|".
---
useful for: remove fields from views
example: <notin views="display"/>, <onlyin views="details|calendar"/>
used in: contacts.xml, tasks.xml (and more)
- <description>: Adds a description to a field in "new", "edit" and "edit as new" views. The attribute "title" is the text of the link. The attribute "hint" is the tooltip shown for the link. The attribute "value" is the Javascript code which gets executed when the link is clicked. The attributes "title" and "hint" are optional.
example: <description title="Help" hint="Click here for help." value="alert('minimum = 15 secs');"/>
used in: contact.xml, tasks.xml (and more)
Note: Custom classes can be put under "custom/core/classes/" (will be tried first) or "ext/core/classes/" (reserved for extensions). E.g. "class mymethods {}" in "custom/core/classes/mymethods.php".
Note: Showing a field in a view is evaluated by the following order: notinall (attribute in <field>), notin (tag in <field>), onlyin (tag in <field>), showonly (attribute in <view>)
Note: In Simple Groupware, translatable strings are marked with "{t}", "{/t}". For example "{t}Open{/t}" will be translated to "Offen" in German.
Automatic system fields (hidden by default)
- id: Numeric unique identifier for an asset (primary key). Consists of asset ID and server ID (2 decimals), e.g. 201 for asset ID 2 and server 01.
- folder: ID of the folder that contains the asset (reference to simple_sys_tree).
- created: Unix timestamp pointing to the time when the asset was created.
- lastmodified: Unix timestamp pointing to the time when the asset was last modified.
- createdby: Username of the user who created the asset.
- lastmodifiedby: Username of the user who did the last modification.
- dsize: Numeric value indicating the size (bytes) of the files attached to the asset.
- history: Text field to track information about who changed what data and which fields of an asset.
- Filter method
Example: <filter views="display" function="myclass::my_filter_method|100|abc"/>
Signature: static function my_filter_method( $value, $params, $row )
Parameters:
$value: Value to filter (string)
$params: input parameters, array(100, 'abc')
$row: current asset, array(field_name => array('data'=>array(...), 'filter'=>array(...)), ...)
[data = unfiltered values, filter = filtered values]
Return: string (filtered value)
- Validate method
Example: <validate function="myclass::my_validate_method|100|abc"/>
Signature: static function my_validate_method( $value, $params, $field )
Parameters:
$value: Value to validate (string)
$params: input parameters, array(100, 'abc')
$field: current sgsML field, array("NAME"=>"...", "DISPLAYNAME"=>"...", ...)
Return: string empty (valid value) or error message (invalid value)
- Data method
Example: <data function="myclass::my_data_method|100|abc"/>
Signature: static function my_data_method( $params )
Parameters:
$params: input parameters, array(100, 'abc')
Return: array( Key => Value, Key2 => Value2 )
[User sees values in the form, keys will be stored in the database]
The following templates are included:
- admin: Used to display the admin overview page under "/Workspace/System".
location: templates/asset_admin.tpl
additional attributes: none
used in: nodb_admin.tpl - display: Used to display assets with one line per asset.
location: templates/asset_admin.tpl
additional attributes: none
used in: contacts.xml, tasks.xml (and more) - details: Used to display assets with one line for every field.
location: templates/asset_admin.tpl
additional attributes: tfield_1, tfield_2, template_mode ("view" tag)
used in: contacts.xml, tasks.xml (and more) - edit: Form used to edit and create assets with one block for every asset.
location: templates/asset_edit.tpl
additional attributes: none
used in: sgsml.php (attributes: enable_new, enable_edit, enable_edit_as_new) - free: Used to display assets in rows and columns with one block for every asset and several blocks per row. Number of blocks per row defined in "cols" attribute.
location: templates/asset_free.tpl
additional attributes: cols, row_height ("view" tag) - portal: Used to display URLs in iframes with one block for every asset and several blocks per row. Number of blocks per row defined in "cols" attribute.
location: templates/asset_portal.tpl
notes: does not support tabs
additional attributes: cols ("view" tag)
CMS templates: Used in the CMS (cms.php) to display pages. Templates can be selected for every asset in the CMS module.
- pmwiki.tpl: Default template used to display a page.
location: cms/pmwiki.tpl - pmwiki_rtl.tpl: Default template with right-to-left layout.
location: cms/pmwiki_rtl.tpl - rss.tpl: Special template used to display a RSS feed of the latest pages updated. Includes only pages with the flag "Include in RSS feed" set.
location: cms/rss.tpl
URL: cms.php?rss - sitemap.tpl: Special template used to display a XML stream of the latest pages updated. Includes all pages.
location: cms/sitemap.tpl
URL: cms.php?sitemap
All modules are located at "modules/schema*". The folder "schema" contains modules for all users. The folder "schema_sys" contains all administrative modules. All modules are named with "<module_name>.xml". Filenames can contain a "nodb_" prefix to indicate that the database schema will not be processed, meaning NO automatic creation of tables and fields.
sgsML can be also used in extensions. For getting started, it is recommended to take a look at the example extension which can be downloaded here.
Here are some example modules:
Without translation:
- v0.732: added tfield_1, tfield_2 for calendar views
- v0.722: added vertical preview pane for the "<link" and "<linktext"
- v0.707: added "no_permissions" parameter for the "dbselect" function
- v0.701: added "condition" attribute to "singlebutton" tag
- v0.662: added "reverse" attribute to "data" tag
- v0.662: added simple type "rating"
- v0.646: renamed "nosql_" prefix for filenames to "nodb_"
- v0.645: renamed "multiple" attribute to "separator"
("multiple" will continue to work) - v0.645: changed default value for "multiple" attribute to "\n"
