The open bi CMS runs on the open bi server and is configured with the Configurator.
A CMS consists of three parts:
- A role, whose role content defines the page structure.
- A website master page, which contains the HTML of the general layout.
- A host header, which combines both and serves them for a specific HTTP host.
Create a role
The role content of a role defines the structure of the CMS. Each folder is a page which can have subpages and can be restricted to specific usergroups.
The role content has two top level folders with a special meaning:
- The first folder (usually named
index) is the entry page which is served at/. Its subfolders are the pages of the CMS and are rendered by the<navbar>item. - The second folder is rendered by the
<footerbar>item and is typically used for a footer navigation. Folders below it have no URL of their own.
The URL path of a page is derived from the folder name: it is converted to lower case, spaces and the characters ., ? and : become -, the umlauts ä, ö, ü and ß become ae, oe, ue and ss, and repeated - are collapsed into one. So a folder named Subpage 1 below the entry page is served at /subpage-1, and a folder named Subpage 1.1 below that one at /subpage-1/subpage-1-1.
Every page has its own HTML content, the usergroups which are allowed to see it and the following settings:
| Setting | Description |
|---|---|
| Page Title | Title of the page, available as %PAGE_TITLE%. |
| Description | Meta description of the page, available as %DESCRIPTION%. |
| Keywords | Meta keywords of the page, available as %KEYWORDS%. |
| Requires Login | The page is only served to a logged in user. |
| With Subpages | The page also handles all URL paths below its own path. The remaining path is available to the items as the sub page path, e.g. through data-sub-page-path-filter of <openbi:dblist>. |
Special custom table attributes for roles
All entities in the open bi server can be extended with custom table attributes. These custom table attributes on a role have a special meaning for the CMS:
| Name | Description |
|---|---|
| LOGIN_URL | The URL to redirect to if the user is not logged in and the page requires a login. The original URL is added as the redirect_uri query parameter. E.g.: /login |
| LOGIN_INDEX_URL | The URL to redirect to if the user is logged in and requests the LOGIN_URL page. A redirect_uri query parameter takes precedence. E.g.: /home |
| CHANGE_PASSWORD_URL | The URL to redirect to if the user is logged in but has to change the password. E.g.: /changepassword |
Create a website master page
The website master page contains the HTML of the general layout of the CMS. The content of the active page is included with the <content> item.
Create a host header
The host header combines the website master page and the role and makes them accessible for a specific HTTP host header. The host is specified without a port.
As soon as the host header exists, the CMS is served on the HTTP and HTTPS ports of the open bi server, e.g. on http://localhost:9091.
Special custom table attributes for host headers
These custom table attributes on a host header have a special meaning for the CMS:
| Name | Description |
|---|---|
| REQUIRE_XSRF | Prevents cross site request forgery by requiring a XSRF-TOKEN cookie (which the server provides automatically) and either a %ANTIFORGERY_HEADER% header or a %ANTIFORGERY_NAME% form field with the %ANTIFORGERY_TOKEN% value. Can also be enabled for all host headers with the REQUIRE_XSRF server setting. |
| IP_WHITELIST | List of IPs which are allowed, separated by space, , or ;. All other IPs receive a 403. E.g.: 127.0.0.1 8.8.8.8 |
| IP_BLACKLIST | List of IPs which are not allowed, separated by space, , or ;. Ignored for IPs of the IP_WHITELIST. E.g.: 127.0.0.1 8.8.8.8 |
HTML items
The CMS uses custom HTML elements which alter and enhance the HTML output and provide access to open bi features. The open bi server provides the items which are listed below, and plugins can add their own.
Items are used like regular HTML elements and are configured with attributes, which are prefixed with data-:
<openbi:translate data-languagetext-id="welcome" data-requires-auth="true"></openbi:translate>
Common attributes
These attributes can be set on every item:
| Attribute | Description |
|---|---|
id |
Id of the item, used to address it in a POST action. |
data-requires-auth |
When set to true the element and its content is only rendered for a logged in user. |
data-onlyforunauth |
When set to true the element and its content is only rendered when no user is logged in. |
data-onlyforpermission |
The element and its content is only rendered if the logged in user has one of the specified permissions, separated by ;. |
data-onlyforgroup |
The element and its content is only rendered if the logged in user is in one of the specified usergroups, separated by ;. A single usergroup can be prefixed with ! to render the element only for users which are not in that usergroup. |
data-onlyfororganisation |
The element and its content is only rendered if the logged in user is assigned to one of the specified organisations, separated by ;. |
data-onlyforip |
The element and its content is only rendered if the client IP is one of the specified IPs, separated by ;. |
data-body-class |
CSS classes, separated by space, which are added to %BODY_CLASS%. |
Templates
Attributes of the type template (usually named data-tpl-*) do not contain HTML themselves, they contain the name of an HTML item template. These templates are maintained per item and can be created for a specific language. Most items ship with a default template.
Inside a template the following placeholders are available in addition to the ones the item itself provides:
| Placeholder | Description |
|---|---|
%ITEM_ID% |
The id of the item. |
%CMS_ITEM% |
The id of the item, for use as the cms_item field of a POST action. |
%<ATTRIBUTE>% |
The value of an attribute of the item: the data- prefix is removed, - becomes _ and the name is upper case. So data-my-value="1" is available as %MY_VALUE%. |
The placeholders which a specific template attribute of an item supports are listed by the Configurator, and over REST with POST /openbi/api/htmlitems/{tagName}/replacementparameters. See the API documentation.
POST actions
Items can be called with POST requests to process form data or to return JSON. The request body must be encoded as application/x-www-form-urlencoded or multipart/form-data and is sent to the URL of the current page.
| Field | Description |
|---|---|
cms_item |
Either the id of an item on the current page, or the tag name of an item which is then created dynamically. When an item is created dynamically, all form fields and URL parameters are set onto it as attributes. |
action |
The action of the item which should be processed. When cms_item is an item on the page and no action is given, the id of the item is used as the action. Without cms_item the action is processed by all items of the page. |
Both fields can also be passed as URL parameters. The data- attributes of the item can be added as fields as well and are then set onto the item.
After the action was processed, a normal request is answered with a 303 See Other redirect to the same URL, so a reload of the page does not repeat the action. Exceptions of an action are not returned directly, they are added to the messages of the page and can be rendered with <openbi:messages>. For AJAX requests the response of the item is returned as it is, and an exception results in a 500 with the exception message.
Which actions an item supports is listed with the items below. Note that actions are not processed when the website master page is a Razor page (.razor).
Item reference
Page structure and content
<content>- Content of the current page<openbi:html>- Inner HTML of the element<openbi:htmltemplate>- An HTML item template<openbi:if>- Conditional rendering<openbi:messages>- Error and success messages<openbi:httpheader>- HTTP response header<openbi:redirect>- Redirect based on the current URL
Navigation
<navbar>- Navigation of the pages<footerbar>- Navigation for a footer<sitemap>- Sitemap of all pages<pagination>- Pagination<openbi:cmsapp>- The CMS app of the current URL<openbi:cmsapplist>- List of all CMS apps<openbi:cmsappnavbar>- Navigation of the current CMS app
Users and login
<login>- Login form and logged in user<openbi:logout>- Logged in user and logout<openbi:changepassword>- Change the password<openbi:forgotpassword>- Request a password reset mail<openbi:logininitial>- Set the first password<openbi:registration>- Register a new user<openbi:contactinformation>- Profile of the logged in user<openbi:usermaintenance>- Maintain the users of an organisation<openbi:changeorga>- Switch the organisation of the session<openbi:organisationprofile>- Profile of the organisation<openbi:oauth>- Connect an external OAuth provider<openbi:oauthprovider>- Act as an OAuth provider
Languages
<openbi:changelanguage>- Change the session language<openbi:translate>- Value of a language text
Database data
<openbi:dbitem>- First row of a table<openbi:dblist>- Rows of a table<openbi:dbcount>- Single aggregated value<openbi:dbhierarchy>- Hierarchy from a table<openbi:dbfilter>- Filter inputs for a table<openbi:search>- Search input<openbi:itemslist>- List of fixed values
Files
<openbi:dropbox>- File area on a role content<openbi:downloadlist>- Downloads of a blog<openbi:ftpupload>- Upload files to FTP
Blog, entities and contacts
<openbi:blog>- Blog with articles<openbi:shopproducts>- Entities with create, change and delete<openbi:contactdetails>- Contact details as vCard<openbi:contactbwexportitem>- Contact form
BI and dataproviders
<openbi:dataprovider>- Opens a dataprovider<openbi:table>- Dataprovider data as a table<openbi:chart>- Dataprovider data as a chart<openbi:graphomate>- Dataprovider data as a graphomate chart<openbi:map>- Dataprovider data on a map<openbi:kpitree>- Dataprovider data as a KPI tree<openbi:tile>- A single dataprovider value<openbi:filter>- Filter control for a dimension<openbi:dataproviderstate>- State of the dataprovider<openbi:dashboard>- A dashboard definition<openbi:sqleditor>- SQL editor<openbi:dataproviderviewdesigner>- View designer<openbi:statisticsentry>- Writes a usage statistics entry
Page structure and content
<content>
Renders the role content of the page which matches the current URL path. This item belongs into the website master page.
| Attribute | Description |
|---|---|
data-tpl-admin-content |
Template for page editing. Default: admin_content.tpl. |
data-tpl-page-not-found |
Template used if page is not found. |
data-tpl-unauthenticated |
Template used if page requires login. |
data-tpl-forbidden |
Template used if page requires other usergroup. |
Actions: editcontent, uploadmime
<openbi:html>
Replaces the element with its own inner HTML. Mostly used together with the common attributes to render a block of HTML only for specific users.
<openbi:htmltemplate>
Renders an HTML item template. %CONTENT% inside the template is replaced with the inner HTML of the element.
| Attribute | Description |
|---|---|
data-template |
Name of the HTML item template. |
<openbi:if>
Renders its content only if the comparison of the operands is true. Operands are compared in pairs (data-operand, data-operand2, ...) and the results are combined with the logical operators.
| Attribute | Description |
|---|---|
data-compare-operator |
Compare operator. Default: =. Values: =, !=, CP, NP, SW, EW. |
data-logical-operator |
Logical operator. Values: &&, \|\|. |
data-operand |
Operand. |
<openbi:messages>
Renders the messages which were created while the page or an action was processed, for example the error message of a failed login.
| Attribute | Description |
|---|---|
data-tpl-messages |
Template which contains messages. |
data-tpl-message |
Template for a message. |
data-filter |
Semicolon separated text of categories. "information", "warning", "fatalerror". |
<openbi:httpheader>
Adds an HTTP response header to the current response.
| Attribute | Description |
|---|---|
data-name |
HTTP Header Name. |
data-value |
HTTP Header Value. |
data-override |
Override existing HTTP Header. |
<openbi:redirect>
Redirects the browser to another host, port, path or query based on the current URL. Only the specified parts are changed, everything else is kept. No redirect is done when the resulting URL is the same as the current one.
| Attribute | Description |
|---|---|
data-redirect-host |
Redirecting to new host. |
data-redirect-port |
Redirecting to new port. |
data-redirect-path |
Redirecting to new path. |
data-redirect-query |
Redirecting to new query. |
data-redirect-statuscode |
Redirect status code. Default: 302. |
data-redirect-www |
Redirecting to www.hostname. |
data-redirect-https |
Redirecting to https. |
Navigation
<navbar>
Renders the navigation of the pages below the entry page of the role content.
| Attribute | Description |
|---|---|
data-active-class |
Text of %ACTIVE% placeholder when the url matches the item. |
data-tpl-navbar |
Template for the navigation bar. Default: navbar. |
data-tpl-container |
Template for the container. Default: navbarcontainer. |
data-tpl-item |
Template for a single item. Default: navbaritem. |
data-levels |
Number of levels to render. |
data-show-page-title-as-text |
Show page title as text. |
<footerbar>
Renders a navigation from the second top level folder of the role content, for example for a footer.
| Attribute | Description |
|---|---|
data-tpl-footer |
Template for the footer. |
<sitemap>
Renders a sitemap of all pages of the role content which are visible to the current user.
| Attribute | Description |
|---|---|
data-tpl-sitemap |
Sitemap item. |
<pagination>
Renders a pagination. It is used by the list items, but can also be used on its own.
| Attribute | Description |
|---|---|
data-page-parameter |
Name of the URL parameter which is used for the page number. |
data-page-count |
Page count. |
data-page |
Page. |
data-tpl-container |
Container. |
data-tpl-link |
Template of logout item. |
data-prev |
Prev symbol. |
data-next |
Next symbol. |
<openbi:cmsapp>
Renders the CMS app (plugin) whose id matches the first segment of the current URL path.
| Attribute | Description |
|---|---|
data-tpl-detail |
App Detail Template. |
data-tpl-notfound |
Not Found Template. |
<openbi:cmsapplist>
Renders a list of all installed CMS apps (plugins).
| Attribute | Description |
|---|---|
data-tpl-item |
App Item Template. |
<openbi:cmsappnavbar>
Renders the navigation of the current CMS app from the folder of the second top level role content folder whose name matches the app id.
Users and login
<login>
Renders a login form or the logged in user, depending on the session. It also provides the login and logout actions and optionally Windows single sign-on.
| Attribute | Description |
|---|---|
data-msg-failure |
Data-msg-failure. |
data-redirectonlogout |
Redirecting after logout. |
data-redirectonpwdchangerequired |
Redirecting after login when pw change is required. |
data-redirectonlogin |
Redirecting after login. |
data-tpl-login |
Login view before authentication. Default: unauth. |
data-tpl-auth |
Login view if authenticated. Default: auth. |
data-strict-orgacheck |
Strict Organisation check for Campaign Pages. |
data-use-sso |
Set to true if sso should be used. Requires Server Setting: USE_LDAP_PWD_CHECK = X. |
Actions: logout, openbilogin, saveuser
<openbi:logout>
Renders the logged in user and provides the logout action.
| Attribute | Description |
|---|---|
data-logout-redirect-url |
Redirecting after logout. |
data-tpl-logout |
Template of logout item. |
Actions: logout
<openbi:changepassword>
Renders a form to change the password of the logged in user.
| Attribute | Description |
|---|---|
data-tpl-changepwd |
Template. Default: changepassword. |
data-redirect-url |
Url. Default: /confirmedpassword. |
data-force-old-password-check |
True to force 'oldpassword' field check. |
data-msg-failure |
Failure message for password validation. |
data-password-min-length |
Min. chars for password. |
data-password-regex |
Regex for password validation. |
Actions: changepassword
<openbi:forgotpassword>
Renders a form which sends a password reset email to the entered address.
| Attribute | Description |
|---|---|
data-tpl-forgotpwd |
Forgot pwd. |
data-email-forgotpwd |
Email forgot pwd template. |
data-from |
Email from. |
data-replayto |
Email reply to. |
data-mode |
Forgotpassword mode: ACTIVATIONID or PASSWORD (default). |
<openbi:logininitial>
Renders a form to set the first password of a user who was invited with an activation link.
| Attribute | Description |
|---|---|
data-redirectonlogin |
Redirectonlogin. |
data-tpl-wrongactivationid |
Template. |
data-tpl-path |
Template. |
data-msg-failure |
Failure message for password validation. |
data-password-min-length |
Min. chars for password. |
data-password-regex |
Regex for password validation. |
<openbi:registration>
Renders a registration form which creates a new user, optionally validated with reCAPTCHA, and sends confirmation emails.
| Attribute | Description |
|---|---|
data-template |
Template. |
data-tpl-email-user |
Email to user. |
data-tpl-email-admin |
Email to admin. |
data-tpl-adminemailadress |
Admin email address. |
data-email-replyto |
Reply to. |
data-initialpwdflag |
Initial pwd flag. |
data-email-bcc |
Bcc. |
data-email-from |
From. |
data-recaptcha-secret |
Recaptcha v2 Secret. |
data-redirect-url |
Redirect-url. |
data-guid-orgatoassign |
OrgaId to assign user. |
data-user-usergroups |
Usergroups to assign user. |
Actions: register
<openbi:contactinformation>
Renders and maintains the profile of the logged in user: user data, password, organisation and profile deletion.
| Attribute | Description |
|---|---|
data-tpl-login |
Template used if user is not logged in. |
data-tpl-contactinformation |
Templated used if user is logged in. |
data-redirectondatechange |
Redirect after profile changing. |
Actions: changeorgaform, changepasswordform, changeuserdataform, deleteprofile
<openbi:usermaintenance>
Lets a user maintain the users of their own organisation and invite new ones by email.
| Attribute | Description |
|---|---|
data-tpl-userMaintenance |
Template for the userMaintenance. |
data-activationlink |
Link that will be included in the invitationemail. Default: _activationLink. |
data-email-sender |
Email from which the invitation email Is sent. |
data-email-subject |
Email Subject. Default: _inviteEmailSubject. |
data-tpl-email |
Email Text. |
Actions: getusers, inviteemail
<openbi:changeorga>
Temporarily changes the organisation of the session for users which are assigned to more than one organisation.
| Attribute | Description |
|---|---|
data-tpl |
Template container. |
data-tpl-organisation |
Template for each organisation. |
data-filter |
Filter. |
Actions: changeDefaultOrga
<openbi:organisationprofile>
Renders and maintains the data of the organisation of the logged in user.
| Attribute | Description |
|---|---|
data-tpl-orgaprofile |
Orgaprofile. |
data-msg-success |
Success message. |
Actions: changeorgaform
<openbi:oauth>
Connects an external OAuth provider to the current user and stores the returned refresh token.
| Attribute | Description |
|---|---|
data-template |
Template. |
data-provider |
Provider. Values: GOOGLE, FACEBOOK, MICROSOFT. |
data-redirect-url |
Oauth Redirect URL. |
data-msg-success |
Success Message. |
data-msg-error |
Error Message. |
Actions: validateoauth
<openbi:oauthprovider>
Lets the CMS act as an OAuth provider so an external application can log in users with a client id.
| Attribute | Description |
|---|---|
data-client-id |
Client ID. |
data-required-scopes |
Required Scopes (space-delimited). |
data-template |
Template. |
Actions: oauthproviderlogin
Languages
<openbi:changelanguage>
Provides an action which changes the language of the current session.
| Attribute | Description |
|---|---|
data-language |
The language to set this session to, if empty it is ignored. |
data-template |
The template. |
Actions: changelanguage
<openbi:translate>
Returns the value of a language text for the current language.
| Attribute | Description |
|---|---|
data-languagetext-id |
ID of the language text. |
data-template |
Optional template. |
Database data
<openbi:dbitem>
Reads the first row of a database table and replaces the placeholders of a template with its values. It supports static filters, filters from URL parameters and can set the page title from a column.
| Attribute | Description |
|---|---|
data-table |
Name of the database table or view. |
data-id-column |
Column name which is used for filtering on the data-id-parameter value. |
data-id-parameter |
URL parameter name for filtering by data-id-column. |
data-id-separator |
Character for splitting the id value. |
data-title-template |
Template string which is used for the page title. Can include placeholders. |
data-columns |
Column names separated by ; which are read from the database. |
data-filter |
Static database filter. |
data-order-by |
Database order by. |
data-url-filter-whitelist |
URL parameter names which are used as filters. |
data-url-filter-blacklist |
URL parameter names which are not used as filters. |
data-placeholder-prefix |
Placeholder prefix. |
data-read-multiple-tableattributes |
Also read multiple (1:N) table attributes and replace them as JSON arrays. |
data-tpl-detail |
Template for rendering the single row. |
data-tpl-empty |
Template for rendering which is used if there is no data. |
<openbi:dblist>
Reads rows of a database table and renders a template for each row. It supports static filters, filters from URL parameters, searching, sorting and pagination.
| Attribute | Description |
|---|---|
data-table |
Name of the database table or view. |
data-id-column |
Column name which is used for counting rows when pagination is enabled. |
data-columns |
Column names separated by ; which are read from the database. |
data-filter |
Static database filter. |
data-group-by |
Database group by. |
data-order-by |
Database order by. |
data-url-filter-whitelist |
URL parameter names which are used as filters. |
data-url-filter-blacklist |
URL parameter names which are not used as filters. |
data-search-parameter |
Name of the URL parameter which is used for searching. |
data-exactsearch-parameter |
Name of the URL parameter which is used for searching. |
data-search-columns |
Column names separated by ; which are used for searching. |
data-page-parameter |
Name of the URL parameter which is used for the page number. |
data-items-per-page-parameter |
Items per Name of the URL parameter which is used for the page number. |
data-items-per-page |
Items per page. (Leave empty to show all data). |
data-sort-parameter |
URL parameter name for the column name which should be sorted. |
data-sort-direction-parameter |
URL parameter name for the sorting direction value (ASC, DESC). |
data-disable-pagination |
Enable or disable pagination (top and bottom). |
data-disable-pagination-top |
Enable or disable top pagination. |
data-disable-pagination-bottom |
Enable or disable bottom pagination. |
data-placeholder-prefix |
Prefix which is used for all placeholders. |
data-sub-page-path-filter |
Column which is filtered with the sub page path. |
data-sub-page-path-separator |
Separator which splits the sub page path. |
data-read-multiple-tableattributes |
Also read multiple (1:N) table attributes and replace them as JSON arrays. Default: true. |
data-childproducts |
Also replace table attributes which reference other entities. Values: true. |
data-tpl-item |
Template for rendering a single row. |
data-tpl-empty |
Template for rendering which is used if there is no data. |
data-tpl-container |
Template for rendering a container which includes all items (%ITEMS%). |
<openbi:dbcount>
Renders a single aggregated value (for example a count or a sum) from a database table.
| Attribute | Description |
|---|---|
data-table |
Name of the database table or view. |
data-count-column |
Column name used by the aggregation. Default: *. |
data-filter |
Static database filter. |
data-group-by |
Database group by. |
data-url-filter-whitelist |
URL parameter names which are used as filters. |
data-url-filter-blacklist |
URL parameter names which are not used as filters. |
data-search-parameter |
Name of the URL parameter which is used for searching. |
data-exactsearch-parameter |
Name of the URL parameter which is used for searching. |
data-search-columns |
Column names separated by ; which are used for searching. |
data-aggregat |
Aggregate function. Default: COUNT. Values: COUNT, SUM, MAX, MIN, AVG. |
data-placeholder-prefix |
Placeholder prefix. |
data-tpl-count |
Template for rendering the aggregation value. |
data-tpl-empty |
Template for rendering which is used if there is no data. |
<openbi:dbhierarchy>
Renders a hierarchy from a database table which references itself through a parent column.
| Attribute | Description |
|---|---|
data-table |
Table. |
data-id-column |
Id column. |
data-parent-column |
Parent column. |
data-columns |
Requested columns. |
data-filter |
Filter. |
data-group-by |
Group by. |
data-order-by |
Order by. |
data-url-filter-whitelist |
URL parameter names which are used as filters. |
data-url-filter-blacklist |
URL parameter names which are not used as filters. |
data-placeholder-prefix |
Placeholder prefix. |
data-active-class |
Active css class. |
data-active-value |
Id value of active element. |
data-tpl-container |
Template for the container. |
data-tpl-item |
Template for a single item. |
data-sub-page-path-filter |
Column which is filtered with the sub page path. |
data-sub-page-path-separator |
Separator which splits the sub page path. |
data-tpl-empty |
Source of empty. |
data-skip-children-rendering |
Dont render child content, only navigation. |
<openbi:dbfilter>
Renders filter inputs for the columns of a database table which filter the other items on the page through URL parameters.
| Attribute | Description |
|---|---|
data-table |
Name of the database table or view. |
data-columns |
Column names separated by ; for which a filter should be rendered. |
data-titles |
Column title names separated by ; which can be used in the filter template. |
data-ignore-columns |
Column names which should be ignored for url filters. |
data-search |
Search. |
data-filter |
Static database filter. |
data-order-by |
Database order by. |
data-url-filter |
Filters from dynamic url. |
data-url-filter-separator |
Url filter separator. |
data-active-value |
Value which replaces the %ACTIVE% placeholder in the input template. |
data-tpl-container |
Template for rendering a container which includes all filters. |
data-tpl-filter |
Template for rendering the filter for one column. |
data-tpl-input |
Template for rendering the filter values. |
<openbi:search>
Renders a search input. All other URL parameters of the current page are kept as hidden fields.
| Attribute | Description |
|---|---|
data-name |
Name of search. |
data-tpl-search |
Template of search. |
<openbi:itemslist>
Renders a list of fixed values, for example the options of a select, and marks the value of the URL parameter as selected.
| Attribute | Description |
|---|---|
data-name |
Name. |
data-selected-value |
Selected item value. |
data-items |
Items. |
data-tpl-container |
Container. |
data-tpl-item |
Item. |
Files
<openbi:dropbox>
Renders a file area on the folders of a role content and provides actions to upload, replace, rename, move and delete files and to create folders.
| Attribute | Description |
|---|---|
data-id-role |
Role ID. |
data-id-folder |
Folder ID. |
data-tpl-dropbox |
Content Template. |
data-tpl-dropboxitem |
Item Template. |
data-tpl-dropboxtree |
Tree Item Template. |
data-ratelimit-days |
Rate Limit Days. |
data-ratelimit-count |
Rate Limit Count. |
Actions: createfolder, deletecontentelement, getrolecontent, moverolecontentelement, renamecontentelement, replacecontentelement, updaterolecontentposition, uploadcontentelement
<openbi:downloadlist>
Renders the downloads of a blog with pagination.
| Attribute | Description |
|---|---|
data-downloadlist |
Download list. |
data-downloaditem |
Download item. |
data-items-per-page |
Items per page (can be empty to display all). Default: 12. |
data-pagination |
Pagination. |
<openbi:ftpupload>
Uploads files to an FTP server.
| Attribute | Description |
|---|---|
data-attachmentdomain |
Attachmentdomain. |
data-ftphost |
Ftphost. |
data-ftpusername |
Ftpusername. |
data-ftppassword |
Ftppassword. |
data-tpl |
Template. |
data-folder |
Folder. |
data-keepfilename |
Keepfilename. |
Actions: upload, uploadimage
Blog, entities and contacts
<openbi:blog>
Renders a blog: the article list, a single article and the pagination.
| Attribute | Description |
|---|---|
data-blog |
Blog. |
data-articles-per-page |
Items per Page. Default: 5. |
data-filter |
Filter. |
data-order-by |
Order by. |
data-short-content-length |
Short content length. Default: 250. |
data-article-page-title |
Page title for article. |
data-tpl-blog |
Template for the blog. |
data-tpl-blog-article |
Template for the article. |
data-tpl-blog-listitem |
Template for the List item. |
data-tpl-blog-pagination |
Template for the pagination. |
data-tpl-blog-pagination-link |
Template for the pagination link. |
<openbi:shopproducts>
Renders entities (for example shop products) with their child entities and provides actions to create, change and delete them.
| Attribute | Description |
|---|---|
data-tpl |
Tpl. |
data-empty-tpl |
Tpl. |
data-shopproduct |
Baseentity ID without SHOP_PRODUCT_ prefix. |
data-order-by |
Order by. |
data-childproducts |
Gets Child Entities. |
data-filter |
Filter. |
data-url-filter-whitelist |
URL parameter names which are used as filters. |
data-url-filter-blacklist |
URL parameter names which are not used as filters. |
data-skipselect |
Skipselect. |
Actions: delete, editcreate, editcreatejson
<openbi:contactdetails>
Renders the contact details of the user of the user URL parameter and provides them as a vCard download.
| Attribute | Description |
|---|---|
data-tpl-contactdetails |
Displays contact details. Default: contactdetails.tpl. |
Actions: downloadcontact
<openbi:contactbwexportitem>
Renders a contact form which sends the entered data by email, optionally validated with reCAPTCHA.
| Attribute | Description |
|---|---|
data-tpl-contactsuccess |
Success template. Default: success. |
data-tpl-contactbwexportitem |
Contact form template. Default: export. |
data-msg-success |
Success Message. |
data-msg-failure |
Failure Message. |
data-mail-from |
Mail from. |
data-tpl-mail |
Email Template. |
data-tpl-admin-mail |
Admin Email Template. |
data-admin-mail |
Admin Email. |
data-redirect-url |
Redirect URL. |
data-recaptcha-secret |
Recaptcha v2 Secret. |
Actions: sendcontactform
BI and dataproviders
<openbi:dataprovider>
Opens a dataprovider from a connection template, a cube or a query and provides its data to all BI items inside the element.
| Attribute | Description |
|---|---|
data-tpl-dataprovider |
Template. Default: dataprovider. |
data-connection-template |
Connection template name. |
data-dataprovider-type |
Dataprovider type. |
data-cube-type |
Dataprovider cube type. |
data-catalog-name |
Dataprovider catalog name. |
data-cube-name |
Dataprovider cube name. |
data-source-template |
Dataprovider source template. |
data-source-cube |
Dataprovider source cube. |
data-source-query |
Dataprovider source query. |
data-description |
Dataprovider description. |
data-name |
Unique name for this dataprovider. |
data-affected-dataproviders |
Affected dataproviders. |
data-filter |
Default filters. e.g data-filter="COUNTRY=DE;COUNTRY=EN;CITY=FR". |
<openbi:table>
Renders the data of the surrounding dataprovider as a table.
| Attribute | Description |
|---|---|
data-tpl-table |
Table Template. Default: table. |
data-row-count |
Number of rows to display. |
data-column-count |
Number of columns to display. |
data-pagination |
Number of rows when paginating. |
<openbi:chart>
Renders the data of the surrounding dataprovider as a chart from a chart definition.
| Attribute | Description |
|---|---|
data-chartdefinition |
Chart Definition. |
data-tpl-chart |
Chart template. Default: chart. |
width |
Width. |
height |
Height. |
<openbi:graphomate>
Renders the data of the surrounding dataprovider as a graphomate chart from a chart definition.
| Attribute | Description |
|---|---|
data-chartdefinition |
ID of content element for chart definition. |
width |
Width of chart. Default: 500. |
height |
Height of chart. Default: 300. |
data-tpl-graphomate |
Graphomate Template. Default: graphomate. |
<openbi:map>
Renders the data of the surrounding dataprovider on a map.
| Attribute | Description |
|---|---|
data-tpl-map |
Map Template. Default: map. |
data-google-maps-api-key |
Google Maps API Key. |
<openbi:kpitree>
Renders the data of the surrounding dataprovider as a KPI tree.
| Attribute | Description |
|---|---|
data-tpl-kpitree |
KPI Tree Template. Default: kpitree. |
<openbi:tile>
Renders a single value of the surrounding dataprovider, for example as a tile.
| Attribute | Description |
|---|---|
data-iobjnm |
Row Tuple Names. |
data-chavl |
Row Tuple Values. |
data-keyfigure |
Keyfigures. |
data-row-index |
Data Row Index. |
data-column-index |
Data Column Index. |
data-template |
Tile Info Template. |
data-tpl-tile |
Tile Template. Default: tile. |
Actions: rendertile
<openbi:filter>
Renders a filter control for a dimension of the surrounding dataprovider.
| Attribute | Description |
|---|---|
data-dimension-iobjnm |
Name of filter dimension. |
data-control-type |
Type of input controls for filters. "COMBOBOX", "CHECKBOX". |
data-columns |
Number of columns for checkboxes or rows for combobox. |
data-filter-values |
Predefined filter values. |
data-tpl-filter |
Filter Template. Default: filter. |
<openbi:dataproviderstate>
Renders the current state of the surrounding dataprovider: its dimensions, filters, variables and keyfigures.
| Attribute | Description |
|---|---|
data-include-dimensions |
Include Dimensions. Default: true. |
data-include-filters |
Include Filters. Default: true. |
data-include-variables |
Include Variables. |
data-include-keyfigures |
Include Keyfigures. |
data-infoobjects |
List of technical names of Infoobjects. |
data-tpl-state |
Template. Default: state. |
<openbi:dashboard>
Renders a dashboard definition with all its charts.
| Attribute | Description |
|---|---|
data-dashboard |
Dashboard. |
data-tpl-chart |
Dashboard template. Default: dashboard. |
<openbi:sqleditor>
Renders an SQL editor for the surrounding dataprovider.
| Attribute | Description |
|---|---|
data-tpl-sqleditor |
Sqleditor template. Default: sqleditor. |
Actions: getsql
<openbi:dataproviderviewdesigner>
Renders the view designer which changes the views of a dataprovider.
| Attribute | Description |
|---|---|
data-tpl-viewdesigner |
Viewdesigner template. Default: viewdesigner. |
<openbi:statisticsentry>
Writes a usage statistics entry, for example when a report or a component was opened.
| Attribute | Description |
|---|---|
data-action |
Action of the Statistics entry. |
data-report |
Report of the Statistics entry. |
data-component |
Component of the Statistics entry. |
data-connection |
Connection of the Statistics entry. |
data-session |
Session of the Statistics entry. |
Actions: writestatisticentry
Global placeholders
The CMS replaces these placeholders in the website master page, in the role content and in all item templates:
| Placeholder | Description |
|---|---|
%CMS_URL% |
The URL of the current page. |
%CMS_PATH% |
The absolute URL path of the current page. |
%PAGE_TITLE% |
The title of the page. |
%DESCRIPTION% |
The meta description of the page. |
%KEYWORDS% |
The meta keywords of the page. |
%META_TAGS% |
The meta tags of the page. |
%META_PROPERTIES% |
The meta property tags of the page. |
%CSS_INCLUDES% |
The CSS includes of all items on the page. |
%SCRIPT_INCLUDES% |
The JavaScript includes of all items on the page. |
%BODY_CLASS% |
The data-body-class values of all items on the page. |
%ANTIFORGERY_TOKEN% |
The antiforgery token for form submissions. |
%ANTIFORGERY_NAME% |
The name of the antiforgery form field. |
%ANTIFORGERY_HEADER% |
The name of the antiforgery header. |
In addition, the fields and custom table attributes of the logged in user, of the organisation of the session and of the host header are available as placeholders. Each one exists twice: with its plain name and with a prefix, so a field which exists on several of them can be addressed explicitly. The name is always upper case.
| Placeholder | Description |
|---|---|
%<FIELD>% / %USER_<FIELD>% |
A field or custom table attribute of the logged in user, e.g. %USER_MAIL%. |
%<FIELD>% / %ORGA_<FIELD>% |
A field or custom table attribute of the organisation, e.g. %ORGA_NAME%. |
%<FIELD>% / %HOSTHEADER_<FIELD>% |
A field or custom table attribute of the host header, e.g. %HOSTHEADER_HOST%. |
Content Security Policy
When a Content-Security-Policy response header is set, e.g. with <openbi:httpheader>, the CMS generates a nonce per request, appends it to the header and adds it to the <script> and <style> tags of the page. Inline scripts and styles of the page therefore keep working without unsafe-inline.
Razor
The CMS uses its own Razor implementation which provides basic C# inside the HTML, for example if/else conditions and for, foreach, while and do loops.
Razor is only executed when the HTML contains one of @(, @{, @*, @if, @Cms, @Translate, @ViewBag, @Html or @Model. Note that Razor uses @ as its keyword character, so every other @ has to be escaped with a second one, e.g. @@.
Some common expressions:
| Expression | Description |
|---|---|
@Cms.Session |
The session of the current request. |
@Cms.Session.User?.Username |
The username of the logged in user, or null. |
@Cms.Page.Title |
The title of the current page. |
@Cms.PagePath / @Cms.SubPagePath |
The path of the current page and the remaining sub page path. |
@Cms.Role / @Cms.RoleContentElement |
The role of the CMS and the role content element of the current page. |
@Cms.Organisation / @Cms.Hostheader |
The organisation of the session and the host header of the request. |
@Cms.HttpContext |
The HTTP context, e.g. @Cms.HttpContext.Request.Query["id"]. |
@HtmlItem |
The item of the current template, in item templates only. |
@Translate("language text") |
The value of a language text for the current language. |
Translations
The language of the client is detected from the Accept-Language request header and can be changed with the <openbi:changelanguage> item.
The CMS supports languages in two ways:
Language specific role content and item templates. A role content or an HTML item template can be copied for a specific language. If no content exists for the language of the client, the default content is used.
Language texts. Language texts are small text snippets which exist per language. A language text has a name and one value per language, plus a value without a language which is used as the default text.
A language text is rendered with the <openbi:translate> item or with Razor:
@Translate("test")