| 
<?phprequire_once("../Wizard.php");
 
 
 class PageSecond extends HTML_QuickForm_Page
 {
 function buildForm()
 {
 $this->_formBuilt = true;
 
 $this->addElement('header',     null, 'Wizard page 2 of 3 (B)');
 
 $name['last']  = &$this->createElement('text', 'last', null, array('size' => 30));
 $name['first'] = &$this->createElement('text', 'first', null, array('size' => 20));
 $this->addGroup($name, 'name', 'Name (last, first):', ', ');
 
 $prevnext[] =& $this->createElement('submit',   $this->getButtonName('back'), '<< Back');
 $prevnext[] =& $this->createElement('submit',   $this->getButtonName('next'), 'Next >>');
 $this->addGroup($prevnext, null, '', ' ', false);
 
 $this->addGroupRule('name', array('last' => array(array('Last name is required', 'required'))));
 
 $this->setDefaultAction('next');
 }
 }
 
 
 class PageSecondBis extends HTML_QuickForm_Page
 {
 function buildForm()
 {
 $this->_formBuilt = true;
 
 $this->addElement('header',     null, 'Wizard page 2 bis of 3 (C)');
 
 $this->addElement('textarea',   'why', 'Why are you not sure?:', array('rows' => 5, 'cols' => 40));
 
 $prevnext[] =& $this->createElement('submit',   $this->getButtonName('back'), '<< Back');
 $prevnext[] =& $this->createElement('submit',   $this->getButtonName('next'), 'Next >>');
 $this->addGroup($prevnext, null, '', ' ', false);
 
 $this->addRule('why', 'Say something!', 'required');
 
 $this->setDefaultAction('next');
 }
 }
 
 
 class PageThird extends HTML_QuickForm_Page
 {
 function buildForm()
 {
 $this->_formBuilt = true;
 
 $this->addElement('header',     null, 'Wizard page 3 of 3 (D)');
 
 $this->addElement('textarea',   'itxaTest', 'Parting words:', array('rows' => 5, 'cols' => 40));
 
 $prevnext[] =& $this->createElement('submit',   $this->getButtonName('back'), '<< Back');
 $prevnext[] =& $this->createElement('submit',   $this->getButtonName('next'), 'Finish');
 $this->addGroup($prevnext, null, '', ' ', false);
 
 $this->addRule('itxaTest', 'Say something!', 'required');
 
 $this->setDefaultAction('next');
 }
 }
 
 
 
 class ActionProcess extends HTML_QuickForm_Action
 {
 function perform(&$page, $actionName)
 {
 echo "Submit successful!<br>\n<pre>\n";
 var_dump($page->controller->exportValues());
 echo "\n</pre>\n";
 
 $page->controller->reset();
 }
 }
 
 
 function myInputProducer(&$data)
 {
 $input = array();
 
 if ($data['values']['A']['iradYesNo'] == 'Y') {
 array_push($input, 'sure');
 }
 
 return empty($input) ? '' : $input;
 }
 
 
 
 // Start the session, form-page values will be kept there
 session_start();
 
 $wizard = new HTML_QuickForm_Wizard($_SERVER['PHP_SELF'], true);
 
 //include_once("fsm.php");
 //$wizard->setFSM($fsm);
 $wizard->fromXML('test.xml', true);
 print "<pre>"; print_r($wizard->getFSM()); print "</pre>";
 
 $wizard->addAction('process', new ActionProcess());
 $wizard->setInputProducer('myInputProducer');
 
 if (isset($_REQUEST[reset])) $wizard->reset();
 $data =& $wizard->container(isset($_REQUEST['new']));
 
 $wizard->run();
 ?>
 |