Overview Of How To Make A Wizard

  1. Create a wizard file (ex. wizard.tcl) that contains the "template::wizard create" code.
    ex.
           template::wizard create -action "wizard" -name my_wizard -params {
              my_param1 my_param2
           } -steps {
    	  1 -label "Step 1" -url "step1"
    	  2 -label "Step 2" -url "step2"	
              3 -label "Step 3" -url "step3"
           }
        
  2. Add the "template::wizard get_current_step" on wizard.tcl. Make sure that you call any "template::wizard set_param" if needed before calling get_current_step. get_current_step will redirect to the wizard -action properly setting all -params value and its other needed http state vars

    Note: the wizard will rewrite the url always. Only self submitting forms are preserved. Once the form is finished processing the wizard will take over and rewrite the url.

  3. Create the wizard template file (ex. wizard.adp). This file will include the file based current step of the wizard
    ex.
           <include src="@wizard:current_url@">
        
  4. Create the individual steps, these are just normal tcl and/or adp files. So make a step1.tcl, step1.adp, step2.tcl, step2.adp, step3.tcl and step3.adp. Normally this files are self submitting forms
  5. Add "template:wizard forward" on each step (eg. step1.tcl, step2.tcl, step3.tcl) , usually the code where the step is processed and successful.
  6. On each step add the wizard buttons on the .tcl files. Ex. step1.tcl will include
        template::wizard submit myform -buttons {back next}
        
    On the last step you may want to use the following on step3.tcl
        template::wizard submit myform -buttons {back next}
        
    The following values are acceptable for the buttons: back, next and finish. Back buttons are not rendered if the step is the first step, like wise next buttons are not displayed if its the last step. Finish can appear on any step and will finish the current wizard even if not all steps are done.

Tips And How To Use The Wizard