Elements of config.xml.cfm
At the top level, a theme's config.xml.cfm document should contain the mandatory <theme> element. There are no attributes available for this element.
Subordinate to the <theme> element is a single <extensions> element, which may contain some or all of a theme's custom class extension definitions.
<theme> <extensions> </extensions> </theme>
<extension> is a sub-element of <extensions>
It has two required attributes; type
defines the content type and subType
says what its sub-type is. The only exception to this is the Site Type, which does not have a sub-type.
Additional, optional attributes are available depending on its Type. Each attribute accepts a boolean value (e.g., 0 for false, 1 for true). The default setting for each is 1 (or true).
Type | hasSummary | hasBody | hasAssocFile | hasConfigurator | isActive |
---|---|---|---|---|---|
1 (User Group) | x | ||||
2 (User) | x | ||||
Address | x | ||||
Page | x | x | x | x | |
Folder (formerly Portal) | x | x | x | x | x |
File | x | x | |||
Calendar | x | x | x | x | |
Gallery | x | x | x | x | |
Link | x | x | x | ||
Component | x | x | |||
Custom | x | ||||
Site | x | ||||
Base | x |
hasSummary
correlates to Show summary when editing?hasBody
correlates to Show body when editing?hasAssocFile
correlates to Show "Associated Image" field when editing?hasConfigurator
correlates to Show "List Display Options" when editing?isActive
correlates to Is this class extension active?
Restrict Child Types (availableSubTypes
)
The User Interface has an option to Allow users to add only specific subtypes? If the Type is a Page, Folder, Calendar, Gallery, File, or Link, then the availableSubTypes
attribute may be used.
Simply create a comma-separated list of content types to allow. For example:
availableSubTypes='File/Default,Page/YourCustomSubType'
Example <extension>
<extension type="Page" subType="Product" hasSummary="1" hasBody="1" isActive="1"> ... </extension>
<attributeset> is a sub-element of <extension>
An attribute set is similar to creating a fieldset in HTML.
It has one required attribute.
name
- This will display on the content edit screen as the title or label above the grouping of associated attributes, similar to a fieldset's legend.
There is one optional attribute.
container
- This is the "tab" container which the grouping of associated attributes will be displayed on. Valid options depend on the content Type.
Option | Description |
---|---|
Basic | Displays the attribute set on the Basic tab. |
Default | Displays the attribute set on the Extended Attributes tab. This is the default setting. |
Custom | Will not display the attribute set by default. This allows for a developer to create a custom user interface to collect the data. |
SEO | Displays the attribute set on the SEO tab. |
Mobile | Displays the attribute set on the Mobile tab. |
List Display Options | DIsplays the attribute set on the List Display Options tab. |
Layout & Objects | Displays the attribute set on the Layout & Objects tab. |
Categorization | Displays the attribute set on the Categorization tab. |
Tags | Displays the attribute set on the Tags tab. |
Related Content | Displays the attribute set on the Related Content tab. |
Advanced | Displays the attribute set on the Advanced tab. |
Publishing | Displays the attribute set on the Publishing tab. |
Usage Report | Displays the attribute set on the Usage Report tab. |
Valid Container/Tab Options
Content Type | Container/Tab Options |
---|---|
1 (User Groups), 2 (Users), & Site |
|
Pages, Folders, Links, Galleries, Files, and Calendars |
|
Address, Custom, and Base |
|
Component |
|
Example <attributeset>
<attributeset name="Mobile Options" container="Basic"> ... </attributeset>
<attribute> is a sub-element of <attributeset>
An attribute describes a data container (form field) and its validation rules.
The following table describes required and optional attributes of the <attribute> element:
Attribute | Description |
---|---|
name | The variable name. This will also become the form fields "name" attribute. |
label | The label that will be displayed on the form |
hint | A tooltip hint for the form field |
type | Valid options: TextBox (default), TextArea, HTMLEditor, SelectBox, MultiSelectBox, RadioGroup, File, Hidden |
required | Valid options: true, false (default) |
validation | Leave blank if not using validation. Otherwise, valid options are: Date, Numeric, Email, Regex, Color |
regex | If validation is set to Regex, then you can enter a JavaScript regular expression to execute when the form is submitted. |
message | The error message that displays when validation fails. |
defaultValue | Optional. The default value for the form field. |
optionList | A carat "^" delimited list of option values. Used when type is set to SelectBox, MultiSelectBox or RadioGroup. |
optionLabelList | A carat "^" delimited list of option labels. Used when type is set to SelectBox, MultiSelectBox or RadioGroup. |
Note: To enable a color picker for a form field, set type="TextBox" and validation="Color"
Example config.xml.cfm
<theme> <extensions> <extension type="Page" subType="Product"> <attributeset name="Product Info"> <attribute name="productDescription" label="Product Description" hint="Enter a description." type="HTMLEditor" defaultValue="" required="false" validation="" regex="" message="" optionList="" optionLabelList="" /> <!-- you can create more attributes here --> </attributeset> </extension> <extension type="Base" subType="Default"> <attributeset name="Sample Options"> <attribute name="havingFun" label="Having Fun?" hint="Of course you are!" type="RadioGroup" defaultValue="true" required="false" validation="" regex="" message="" optionList="true^false" optionLabelList="Yes^No" /> </attributeset> </extension> </extensions> </theme>