Community Server implements widget support as an extension to Dynamic Configuration support in themes. For each set (or column) of widgets in a theme, a new <property /> node must be added to the theme's theme.config file.
The following <property /> node identifies a column of widgets:
<property
id="myWidgetColumn"
text="Widgets"
dataType="Custom"
controlType="CommunityServer.Controls.ContentFragmentsCustomControl, CommunityServer.Controls"
/>
In the example above, the id ("myWidgetColumn") is the unique name for this column of widgets. This name is used later to render this column of widgets in the theme.
The text identifies the widget column, the dataType specifies that widgets will be stored as custom data (as XML), and the controlType identifies the built-in Dynamic Configuration control that renders the widget editor:
This <property /> node can be added within any existing <propertyGroup /> or <propertySubGroup /> node in the theme's theme.config file.
You must add a <property /> node identifying the dataType and controlType for each unique list/column of widgets that you want included in the theme.
Once you add the <property /> nodes to the theme.config file, you can add a widget.
After adding the widget, you must render it in your theme.