Skip to Content

TCF

TCFs (template control files) are the forms that users see when creating new content.

PrologLink to this section

The prolog is defined at the start of the TCF and include and XML declarations.

XML Declaration

Declares the version and default character encoding of XML used in the document.

<?xml version="1.0" encoding="UTF-8"?>

After the XML declaration, a root node of <tcf> is used to wrap the remainder of the TCF document.

<tcf>
	<template-list>
		<template prompt-prefix="New File" extension="inc" publish="no" exclude-sitemap="yes" exclude-search="yes">newfile.tmpl</template>
	</template-list>
</tcf>

IncludeLink to this section

A TCF can call in a local include file to be part of the form, useful for common, repurposable sections that multiple TCFs might use. The include file must have a .inc extension, be in the same folder as the TCFs referencing it, and the content must be a valid TCF command set.

<include>filename.inc</include>
The includes element has no attributes.

VariablesLink to this section

Each variable creates a form field for users to answer. The parent node, <variable-list>, contains all <variable> tags.

<variable-list>
<variable name="pagetitle" prompt="Title" alt="New document title">Untitled</variable>
<variable name="template_path" display="no">/resources/xsl</variable>
</variable-list>

Common Attributes

  • type (required): specifies the kind of variable. Options are "asset," "checkbox," "date," "datetime," "filechooser," "radio," "select," "tag," "text," "textarea," and "time."
  • section: set a heading for a group of fields.
  • name (required): unique identifier for the variable.
  • prompt (required): the label for the field that appears in the form.
  • alt: the helper text for the field that appears in the form.
  • display (yes/no): whether or not the form field appears to users. If not, the initial value defined for the variable is used.

Elements

Form Field Attributes Example Code

Asset Chooser

The user selects an asset.

 

<variable> attributes:

  • type
  • section
  • name
  • prompt
  • alt
  • tags: specifies a list of tags (comma-separated values) that the asset must have to be displayed in the asset chooser.
    • To filter by site:
      • site:sitename
    • To filter by type:
      • type:Web Content
      • type:Plain Text
      • type:Source Code
      • type:Image Gallery
      • type:Managed Form
<variable name="asset-example" 
		  type="asset" 
		  group="Everyone" 
		  prompt="Stats" 
		  alt="Pick a statistic asset to use." 
		  tags="type:text"></variable>

Checkbox

The user selects one or more options from a checkbox list.

<variable> attributes:
  • type
  • section
  • name
  • prompt
  • alt
  • output (optional): determines whether the variable outputs XML-friendly (xml) or comma-separated (csv) values. Should be "xml" for use with TMPLs.

 

<option> attributes:

  • value: defines the value for the user to select.
  • selected (true/false): defines whether the value is selected by default.
<variable name="checkbox-example" 
		  type="checkbox" 
		  group="Everyone" 
		  prompt="Favorite flavor." 
		  alt="Pick one." 
		  output="xml">
	<option value="vanilla" selected="false">Vanilla</option>
	<option value="strawberry" selected="false">Strawberry</option>
	<option value="chocolate" selected="true">Chocolate</option>
</variable>

Date Picker

The user selects a date.

<variable> attributes:
  • type
  • section
  • name
  • prompt
  • alt
  • format: choose the format of the date.
<variable name="datepicker-example" 
		  type="date" 
		  group="Everyone" 
		  prompt="Publish Date" 
		  alt="Choose a day for the page to publish." 
		  format="iso"></variable>

Date/Time Picker

The user selects a date and time.

<variable> attributes:

  • type
  • section
  • name
  • prompt
  • alt
  • format: choose the format of the date and time.
<variable name="datetimepicker-example" 
		  type="datetime" 
		  group="Everyone" 
		  prompt="Publish Date" 
		  alt="Choose a day for the page to publish." 
		  format="iso"></variable>

Filechooser

The user selects a file from within the OU Campus site.

<variable> attributes:

  • type
  • section
  • name
  • prompt
  • alt
  • path (optional): sets the path to the default folder for the file chooser.
  • lockout (optional): prevents the user from navigating above the folder set in path.
  • filter (optional): restricts the user from choosing file types outside of the specified file extension.
  • dependency (optional): determines whether a dependency tag is inserted when a file is chosen. Value can be set to "yes," "no," or " s-tag."
  • source (optional): sets the default server for the file chooser. Options are "staging" or "production."
<variable name="filechooser-example" 
		  type="filechooser" 
		  group="Everyone" 
		  prompt="Profile Photo" 
		  alt="Use your official faculty photo." 
		  dependency="yes" 
		  path="/images/faculty/" 
		  lockout="yes" 
		  source="staging"  
		  filter=".png"></variable>

Radio

The user selects one option from a radio buttons list.

<variable> attributes:

  • type
  • section
  • name
  • prompt
  • alt
  • output (optional): determines whether the variable outputs XML-friendly (xml) or comma-separated (csv) values. Should be "xml" for use with TMPLs.

 

<option> attributes:

  • value: defines the value for the user to select.
  • selected (true/false): defines whether the value is selected by default.
<variable name="radio-example" 
		  type="radio" 
		  group="Everyone" 
		  prompt="Favorite Flavor" 
		  alt="Pick one."
		  output="xml">
	<option value="vanilla" selected="false">Vanilla</option>
	<option value="strawberry" selected="false">Strawberry</option>
	<option value="chocolate" selected="true">Chocolate</option>
</variable>

Select

The user selects one option from a dropdown list.

<variable> attributes:

  • type
  • section
  • name
  • prompt
  • alt
  • output (optional): determines whether the variable outputs XML-friendly (xml) or comma-separated (csv) values. Should be "xml" for use with TMPLs.

 

<option> attributes:

  • value: defines the value for the user to select.
  • selected (true/false): defines whether the value is selected by default.
<variable name="select-example" 
		  type="select" 
		  group="Everyone" 
		  prompt="Favorite Flavor" 
		  alt="Pick one." 
		  output="xml">
	<option value="vanilla" selected="false">Vanilla</option>
	<option value="strawberry" selected="false">Strawberry</option>
	<option value="chocolate" selected="true">Chocolate</option>
</variable>

Tag

The user enters one or more tags to be applied to the page.

<variable> attributes:

  • type
  • section
  • name
  • prompt
  • alt
  • tags (optional): defines pre-filled tags that will be shown, but can removed by user during the page creation process.
  • filtered-tags (optional): specifies a list of tags and/or collections (comma-separated values) that users are allowed or disallowed to choose from.
  • filtered-tags-type (optional): specifies whether the filtered tags listed are the only tags available to choose from, or whether they are disallowed.
<variable name="tag-example" 
		  type="tag" 
		  group="Everyone" 
		  prompt="Tag" 
		  alt="Choose three tags."
		  tags="tag1,tag2,tag3"
		  filtered-tags="english,french,spanish,mandarin"
		  filtered-tags-type="allow"></variable>

Text

The user enters text into a field.

<variable> attributes:

  • type
  • section
  • name
  • prompt
  • alt
  • rows (optional): determines the height of the text box.
  • editor (optional): determine if the text box is mini-WYSIWYG.
  • maxlength (optional): sets the maximum number of characters that can be entered.
<variable name="text-example" 
		  type="text" 
		  group="Everyone" 
		  prompt="Title" 
		  alt="Enter your full title."
		  rows="3"
		  editor="yes"
		  maxlength="150"></variable>

Time Picker

The user selects a time.

<variable> attributes:

  • type
  • section
  • name
  • prompt
  • alt
  • format (optional): choose the format of the time.
<variable name="time-example" 
		  type="time" 
		  group="Everyone" 
		  prompt="Start Time" 
		  alt="Pick when the event starts." 
		  format="iso"></variable>

For elements with option attributes, the value of the option chosen by the user is passed to the appropriate variable in the TMPL. These elements can maintain the form field type, rather than converting it to text, if <option> tagging is preserved in the PCF. Do this by specifying the output method as output="xml" in the TCF variable definition. The corresponding node in the TMPL must then include in its echo var statement the attribute to turn off output encoding. This outputs all the option nodes, instead of just the value.

TemplateLink to this section

The <template-list> node contains child <template> nodes, which define which TMPL files are used to make new content.

<template-list> 
	<template 
		destination="{new-folder}" 
		force-destination="yes" 
		publish="no" 
		filename="_nav" 
		extension="inc" 
		display-filename="no" 
		display-group="no" 
		display-overwrite="no" 
		exclude-sitemap="yes" 
		exclude-search="yes">navigation.tmpl</template>
	<template 
		destination="{new-folder}" 
		force-destination="yes" 
		publish="no" 
		filename="_props" 
		extension="pcf" 
		display-filename="no"
		display-group="no" 
		display-overwrite="no" 
		exclude-sitemap="yes" 
		exclude-search="yes">properties.tmpl</template>
</template-list>

Any attributes can be populated with user-entered data from the TCF by using {variable_name} as the value.

Attribute Example Function Values

approver="jmiller"

Assigns a content approver to the created file.

The name of the user in OU Campus, or "none"

autonav="leftnav"

 

Used in conjunction with the navigation tag in the navigation-list.

Value of which navigation settings to use from the navigation-list

destination="{directory/}{dirname}"

Sets a location for new files created somewhere other than the current folder.

The root relative staging path to where the file will be placed on creation.

display-filename="yes"

Determines whether the user making the new file can set the filename. This is commonly turned off for files with standardized naming conventions, such as navigation files.

yes/no

display-group="yes"

Displays all groups the user creating the content belongs to, so that the user can assign access to a group

yes/no

display-overwrite="yes"

Determines whether the user can overwrite existing files.

yes/no

exclude-search="yes"

Determines whether the created file is indexed for global search.

yes/no

exclude-sitemap="yes"

Determines whether the created file is included in the sitemap.

yes/no

extension="pcf"

Sets the file extension of the resulting file. Used in conjunction with filename.

The file extension

filename="{filename_variable}"

Sets the default name of the created file. Used in conjunction with extension.

Text string

filename-alt="Please enter a filename."

Sets the default text for the filename form field.

Text string

force-destination="no"

Used in conjunction with destination. If yes, creates folders specified by destination if they don't already exist.

yes/no

group="Content Admins"

Sets an access group for the file.

The name of a group (case-sensitive)

name="Template Name"

Uniquely identifies template. If prompt-prefix is omitted, the value of this parameter will be used. The name of a the template

overwrite="no"

If yes, overwrites any existing file with the same name.

yes/no

preferred-redirect="yes"

Routes the user directly to the specified file for editing once the content is created.

yes/no

prompt-prefix="New Interior page"

Adds the prefix to helper text in the TCF, to specify which file is being modified with the following settings.

Text string

publish="yes"

Determines if the file created is automatically publishes the file on creation.

yes/no

publishers="Directors"

Indicates the group that bypasses the approver.

The name of a group (case-sensitive)

rss-author="{rss_author_variable}"

Names the author of an RSS item associated with the file creation.

Text string

rss-description="{rss_description_variable}"

Describes an RSS item associated with the file creation.

Text string

rss-extra="*inherit*"

Populates the RSS item node with additional XML.

String XML nodes

rss-feed="/news.xml"

Determines the RSS feed to which the newly created file belongs.

Root-relative path of the RSS feed. Can use *inherit* to inherit to the current access settings RSS Feed

rss-link="[auto]"

Defines the RSS link to be provided by a TCF variable.

The name attribute of the specific TCF variable.

rss-media="{mtitle1}^^{murl1}^^{mdesc1}^^{mthumbnail1}^^{mkeywords1}|| {mtitle2}^^{murl2}^^{mdesc2}^^{mthumbnail2}^^{mkeywords2}|| {mtitle3}^^{murl3}^^{mdesc3}^^{mthumbnail3}^^{mkeywords3}"

Populates the RSS item node with additional XML.

A delimited string defining the number of media RSS items and the value of each item parameter. The ^^ separates each parameter, and the || separates each item.

rss-pubdate="[auto]"

Populates the RSS item's publish date with content from a TCF variable.

The date or [auto]

rss-tags="events,theater,dance"

Adds tags to the RSS item.

List of tags, comma-separated

rss-title="{rss_title_variable}"

Populates the RSS item's title node with content provided by a TCF variable.

Text string

tags="{tags},literature,english,fantasy"

Adds tags to the new page. Use the variable name of the Tags form field in the TCF to pull in the user-entered tags.

List of tags, comma-separated

targets="dev,windows"

Used in conjunction with publish to specify publish target(s) for the file autopublish. If not used, the production server is the default publish target.

Comma-separated publish target names, if you want to publish the regular publish you must include that site name as well

toolbar="No Media"

Determines the custom toolbar used for the created file.

The toolbar name, or "Default"

DirectoryLink to this section

The <directory-list> node contains the <parent> child node, which then contains the <directory> child node. It creates a new folder.

New sections are created via TCFs that create both a new folder and new files by using both <template-list> and <directory-list>.

<directory-list>
   <parent path="{directory/}{sectionname}">
      <directory name="images">images</directory>
   </parent>
</directory-list>

Any attributes can be populated with user-entered data from the TCF by using {variable_name} as the value.

Parent

Attribute Example Function Values
name="variable_name" unique identifier for the parent tag Text string
force-lowercase="no"

Determines if the value is lower case on creation

yes/no
path="/path-name" The location where the new folder will be created. . means the current folder . or /path-name

Directory

Attribute Example Function Values
approver="jmiller" Assigns a content approver to the created folder. The name of the user in OU Campus, or "none"
display-group="yes" Displays all groups the user creating the content belongs to, so that the user can assign access to a group yes/no
exclude-search="no" Determines whether the contents of the created folder are indexed for global search. yes/no
exclude-sitemap="no" Determines whether the created file is included in the sitemap. yes/no
filtered-tags="humanities, literature, english" Sets filtered tags for the new folder. Comma-separated tags
filtered-tags-type="allow" Determines whether the filtered-tags values are allowed or disallowed. Allow/Disallow
fixed-tags="theater, arts" Sets fixed tags for the new folder. Comma-separated tags
force-lowercase="yes" Sets the folder name to be lowercase, regardless of how it is entered. yes/no
name="images" Sets the name of the new folder. Text string
publish="yes" Publishes the folder automatically on creation. yes/no
publishers="Directors" Sets the bypass approval group for the folder. The group name or "none."
prompt-prefix="New Section" Adds the prefix to helper text in the TCF, to specify which file is being modified with the following settings. Text string
rss-feed="*inherit*"" Determines the RSS feed to which the newly created file belongs. Root-relative path of the RSS feed. Can use *inherit* to inherit to the current access settings RSS Feed
template-group="Faculty Directory" Sets a template group for the new folder. The template group name, or "None"
toolbar="Basic" Determines the custom toolbar> used for the created file. The toolbar name, or "Default"

This node can also take a value that uses a variable and/or string to specify a path location, e.g. {directory/}{dirname}/images.

The <navigation-list> node contains the <navigation> child node. It creates a new item in the associated navigation file.

<navigation name="leftnav" path="_nav.inc" publish="no">
	<li><a href="{ox_autonav:shorturl}">{title}</a></li>
</navigation>
Attribute Example Function Values
name="leftnav" Navigation identifier used in conjunction with the template's autonav attribute. Text string
path="_nav.inc" Path to the navigation file where the new navigation item should be rendered. File name
publish="yes" Publishes the navigation file automatically on addition of the item. yes/no