CMS

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

Navigation

Users and login

Languages

Database data

Files

Blog, entities and contacts

BI and dataproviders

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.

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")