Creating Wizard Definition Pages

The first step in building a custom wizard is to write a VTML file to define the interface and output parameters. This section describes the VTML tags used in this part of the process and presents an example definition file.

For a complete description of the WIZML tag set, see The WIZML Language in the VTML Reference.

For syntax and usage information of VTML tags used to provide the user interface in wizard development, see Wizards in the VTML Reference.

Dynamic expressions in tags

Any tag attribute may combine static, constant text with embedded dynamic expressions that reference parameters or input controls. To embed an expression within a text string, the following syntax is utilized:

$${ expression }

So, for example, to set the REQUIRED attribute of a parameter based on whether another value was set, you would use the following syntax:

<PARAM name="RowsPerPage" value="10" 
  REQUIRED="$${ ParameterExists('Customize') }">

Or, to customize the OUTPUTFILE attribute of the TEMPLATE tag using a name attribute entered by the user, you would use the following syntax:

OUTPUTFILE="$${Name}Admin.cfm">

The expression syntax supported within the wizard configuration file is the same as the one supported in wizard output templates (see the reference section for more details).

Bound controls

One of the most powerful capabilities of wizard pages are bound controls. Bound controls allow you to place controls onto the wizard page and have their values automatically bound to wizard parameters. To do this, simply add an INPUT sub-tag to the PAGE tag for each control you wish to bind, making sure that the name attribute of the INPUT tag matches the Name property of the control. All controls specified in the layout can be bound.

Wizard definition page example

This sample wizard creates an HTML template.

<WIZARD name="DefaultTemplate" caption="Default HTML Template">
<!--- wizard parameters --->
<PARAM name="sDocType" value="HTML 4.0" REQUIRED="true">
<PARAM name="sTitle" value="">
<PARAM name="bMetaDescr" value="false">
<PARAM name="sMetaDescr" value="">
<PARAM name="bMetaKeywords" value="false">
<PARAM name="sMetaKeywords" value="">

<!--- WIZARD PAGE --->

<!--- attributes page --->
<PAGE name="DocAttribs" type="DYNAMIC"
  caption="HTML Document Attributes"
  IMAGE="..\\images\\main.bmp">

  <PAGELAYOUT>
    <control name="lblDocType" type="label"
      down="10" right="10"
      width="90"
      caption="Document Type:"
    />

    <control name="ddDocType" type="DropDown"
      EDITABLE="no"
      anchor="lblDocType" corner="NE" width="maximum" down="-5">
          <item caption="HTML 2.0" value="HTML 2.0"/>
          <item caption="HTML 3.2" value="HTML 3.2"/>
          <item caption="HTML 4.0" value="HTML 4.0"/>
    </control>

    <control name="lblTitle" type="label"
      anchor="lblDocType" corner="SW" down="20"
      width="90"
      caption="Title:"
    />


    <control name="tbTitle" type="TextBox"
      anchor="lblTitle" corner="NE" width="maximum" down="-5"
    />

  <container name="pnlMetaDescription" type="Panel"
      caption="Meta Description"
      anchor="lblTitle" corner="SW" down="20"
      width="maximum" MAXWIDTHPADDING="10" height="80"
        LFHEIGHT="90">

      <control name="chkMetaDescr" type="CheckBox"
        caption="Add meta description:"
        down="20" right="15"
        width="maximum"/>

      <control name="tbMetaDescr" type="TextBox"
        anchor="chkMetaDescr" corner="SW" down="8"
        width="maximum"/>

    </container>

  </PAGELAYOUT>

  <INPUT name="ddDocType" PARAM="sDocType">
  <INPUT name="tbTitle" PARAM="sTitle" REQUIRED="yes" VALIDATIONMSG=
    "Please enter a document title" or some equivalent message>
  <INPUT name="chkMetaDescr" PARAM="bMetaDescr">
  <INPUT name="tbMetaDescr" PARAM="sMetaDescr">
</PAGE>

<!--- attributes page --->
<PAGE name="MetaKeywords" type="DYNAMIC"
  caption="Meta Keywords"
  IMAGE="..\\images\\main.bmp">

  <PAGELAYOUT>

    <control name="chkMetaKeywords" type="CheckBox"
      caption="Add meta keywords:"
      down="15" right="10"
      width="maximum"/>

    <control name="taMetaKeywords" type="TextArea"
      anchor="chkMetaKeywords" corner="SW" down="10"
      height="maximum" width="maximum"/>

  </PAGELAYOUT>

  <INPUT name="chkMetaKeywords" PARAM="bMetaKeywords">
  <INPUT name="taMetaKeywords" PARAM="sMetaKeywords">

</PAGE>


<!--- OUTPUT TEMPLATE --->

<TEMPLATE
  name="Custom.wml"
  OUTPUTFILE="MyFile.cfm"
  DESCRIPTION="New HTML file">

</WIZARD>

Comments