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 | isActive |
---|---|---|---|
1 (User Group) | x | ||
2 (User) | x | ||
Address | x | ||
Page | x | x | x |
Folder (formerly Portal) | x | x | x |
File | x | x | |
Calendar | x | x | x |
Gallery | x | x | x |
Link | 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?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>