You can add dynamic configuration options to your themes to support exposing end-user theme options on the Theme Configuration page in the Community Server Control Panel.
Site and blog themes support dynamic configuration options by defining the XML meta-data within the <DynamicConfiguration></DynamicConfiguration> node of the theme.config file (located in the root folder of the theme).
Here is a sample theme.config file defining a single custom property:
<?xml version="1.0" encoding="utf-8" ?>
<Theme title="Theme Title" previewText="Description of this theme.">
<DynamicConfiguration>
<propertyGroup name="Tab Name">
<property id="property1" text="Property 1" dataType="string" />
</propertyGroup>
</DynamicConfiguration>
</Theme>
The following nodes are supported within the theme.config file’s <DynamicConfiguration></DynamicConfiguration> node:
Property groups represent groups of configuration properties and are generally rendered as tabs on the Theme Configuration page. You can define property groups within the <DynamicConfiguration></DynamicConfiguration> node and support the following attributes.
Property sub groups represent a sub-grouping of configuration properties and are generally rendered as a heading above their associated configuration properties. Property sub-groups can be defined within <propertyGroup></propertyGroup> nodes and support the following attributes:
Property nodes identify a single configuration property which will be rendered using a dataType-appropriate form control (overridable using the controlType attribute). You can define properties within either <propertyGroup></propertyGroup> nodes or <propertySubGroup></propertySubGroup> nodes. They support the following attributes:
Property values identify selectable values for a configuration property and cause the associated property to render as a drop-down-list displaying the available property values. You can define property values within <property></property> nodes. They support the following attributes:
Property rules implement a predefined behavior whenever their associated property's value is changed. You can define property rules within <property></property> nodes. They support the following attributes:
The values of dynamic configuration properties can be retrieved within themes using the following Chameleon controls:
You can also load them through the following API properties:
Here is a list of the control types that ship with Community Server. You can use these to change the type of control that is displayed for your property.