home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 June / ENTER.ISO / files / xampp-win32-1.4.5-installer.exe / xampp / ITDynamic_example.php < prev    next >
Encoding:
PHP Script  |  2004-03-24  |  3.5 KB  |  97 lines

  1. <?php
  2. /**
  3.  * Example of usage for HTML_QuickForm with ITDynamic renderer
  4.  *
  5.  * @author Alexey Borzov <borz_off@cs.msu.su>
  6.  *
  7.  * $Id: ITDynamic_example.php,v 1.3 2003/09/09 10:46:51 avb Exp $ 
  8.  */
  9.  
  10. require_once 'HTML/QuickForm.php';
  11. require_once 'HTML/QuickForm/Renderer/ITDynamic.php';
  12. // can use either HTML_Template_Sigma or HTML_Template_ITX
  13. require_once 'HTML/Template/ITX.php';
  14. // require_once 'HTML/Template/Sigma.php';
  15.  
  16. $form = new HTML_QuickForm('frmTest', 'post');
  17.  
  18. $form->setDefaults(array(
  19.     'itxtTest'  => 'Test Text Box',
  20.     'itxaTest'  => 'Hello World',
  21.     'iselTest'  => array('B', 'C'),
  22.     'name'      => array('first' => 'Alexey', 'last' => 'Borzov'),
  23.     'iradYesNo' => 'Y',
  24.     'ichkABCD'  => array('A'=>true,'D'=>true)
  25. ));
  26.  
  27. $form->addElement('header', '', 'Normal Elements');
  28.  
  29. $form->addElement('hidden', 'ihidTest', 'hiddenField');
  30. // will be rendered in default qf_element block
  31. $form->addElement('text', 'itxtTest', 'Test Text:');
  32. // will be rendered in qf_textarea block, as it exists in template
  33. $form->addElement('textarea', 'itxaTest', 'Test TextArea:', array('rows' => 5, 'cols' => 40));
  34. // will be later assigned to qf_green, note that an array of labels is passed
  35. $form->addElement('password', 'ipwdTest', array('Test Password:', 'The password is expected to be long enough.'));
  36. $select =& $form->addElement('select', 'iselTest', 'Test Select:', array('A'=>'A', 'B'=>'B','C'=>'C','D'=>'D'));
  37. $select->setSize(5);
  38. $select->setMultiple(true);
  39. $form->addElement('submit', 'isubTest', 'Test Submit');
  40.  
  41. $form->addElement('header', '', 'Grouped Elements');
  42.  
  43. // will be rendered in default qf_group block
  44. $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A');
  45. $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'B', null, 'B');
  46. $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'C', null, 'C');
  47. $checkbox[] = &HTML_QuickForm::createElement('checkbox', 'D', null, 'D');
  48. $form->addGroup($checkbox, 'ichkABCD', 'ABCD:', array(' ', '<br />'));
  49.  
  50. // fancygroup candidates
  51. // will be rendered in qf_fancygroup_radio
  52. $radio[] = &HTML_QuickForm::createElement('radio', null, null, 'Yes', 'Y');
  53. $radio[] = &HTML_QuickForm::createElement('radio', null, null, 'No', 'N');
  54. $form->addGroup($radio, 'iradYesNo', 'Yes/No:');
  55.  
  56. // will be rendered in qf_fancygroup_element
  57. $name['first'] = &HTML_QuickForm::createElement('text', 'first', 'First:');
  58. $name['first']->setSize(20);
  59. $name['last'] = &HTML_QuickForm::createElement('text', 'last', 'Last:');
  60. $name['last']->setSize(30);
  61. $form->addGroup($name, 'name', 'Name');
  62.  
  63. // add some 'required' rules to show "stars" and (possible) errors...
  64. $form->addRule('itxtTest', 'Test Text is a required field', 'required');
  65. $form->addRule('itxaTest', 'Test TextArea is a required field', 'required');
  66. $form->addRule('iradYesNo', 'Check Yes or No', 'required');
  67. $form->addGroupRule('name', array('last' => array(array('Last name is required', 'required'))));
  68.  
  69. // try to validate the form
  70. if ($form->validate()) {
  71.     $form->freeze();
  72. }
  73.  
  74. // create a template object and load the template file
  75. // can use either HTML_Template_Sigma or HTML_Template_ITX
  76. $tpl =& new HTML_Template_ITX('./templates');
  77. // $tpl =& new HTML_Template_Sigma('./templates');
  78.  
  79. $tpl->loadTemplateFile('it-dynamic.html', true, true);
  80.  
  81. // create a renderer
  82. $renderer =& new HTML_QuickForm_Renderer_ITDynamic($tpl);
  83.  
  84. // assign elements to blocks
  85. $renderer->setElementBlock(array(
  86.     'ipwdTest'  => 'qf_green',
  87.     'iradYesNo' => 'qf_fancygroup',
  88.     'name'      => 'qf_fancygroup'
  89. ));
  90.  
  91. // Black Magic :]
  92. $form->accept($renderer);
  93.  
  94. // display the results
  95. $tpl->show();
  96. ?>
  97.