[cvs] [Wiki] changed: HordeForm

Chuck Hagenbuch chuck at horde.org
Wed Jun 1 23:03:06 PDT 2005


chuck  Wed, 01 Jun 2005 23:03:06 -0700

Modified page: http://wiki.horde.org/HordeForm
New Revision:  1.1

@@ -1 +1,120 @@
+<code type="php">
+<?php
+require_once 'Horde/Form.php';
+require_once 'Horde/Variables.php';
 
+$vars = &Variables::getDefaultVariables();
+
+/* Set up the form object. */
+$form = &Horde_Form::singleton('', $vars, 'A simple form');
+
+$form->setButtons('Submit this form', true);
+$form->addVariable('Insert some text', 'some_text', 'text', false, false, 'Insert in this box some text');
+
+$choices = array('big' => 'BIG',
+                 'small' => 'small',
+                 'mixed' => 'mIxED');
+$form->addVariable('Select something', 'choices', 'enum', true, false, 'Use the selection box to make your choice', array($choices,
+true));
+
+if ($form->validate($vars)) {
+    $form->getInfo($vars, $info);
+    echo 'You have submitted:<br /><pre>';
+    var_dump($info);
+    echo '</pre>';
+}
+
+/* Render the form. */
+require_once 'Horde/Form/Renderer.php';
+$renderer = &new Horde_Form_Renderer();
+$form->renderActive($renderer, $vars, 'simple_form.php', 'post');
+</code>
+
+----
+
+<code type="php">
+<?php
+
+require_once 'Horde/Form.php';
+require_once 'Horde/Form/Renderer.php';
+require_once 'Horde/Variables.php';
+
+class TestForm1 extends Horde_Form {
+
+    var $_useFormToken = false;
+
+    function TestForm1(&$vars)
+    {
+        parent::Horde_Form($vars, _("Step 1"));
+
+        $enum = array('' => _("Select:"),
+                      1 => _("Yes"),
+                      0 => _("No"));
+
+        /* addVariable( Visible Text, name, type, required, readonly,
+         * description, params) */
+        $this->addVariable(_("Enum"), 'opciones', 'enum', true, false, _("Simple description"), array($enum));
+        $this->addVariable(_("Boolean"), 'bool', 'boolean', false, false );
+        $this->addVariable(_("Integer"), 'number', 'int', true, false );
+        $this->addVariable(_("A Date"), 'mybday', 'date', false, false );
+    }
+
+}
+
+class TestForm2 extends Horde_Form {
+
+    var $_useFormToken = false;
+
+    function TestForm2(&$vars)
+    {
+        parent::Horde_Form($vars, _("Step 2"));
+
+        $this->addVariable(_("Email"), 'email_address', 'email', true, false );
+    }
+
+}
+
+$RENDERER = &new Horde_Form_Renderer();
+$vars = &Variables::getDefaultVariables();
+
+$form1 = &Horde_Form::singleton('TestForm1', $vars);
+$form2 = &Horde_Form::singleton('TestForm2', $vars);
+
+$form1->validate($vars);
+$form2->validate($vars);
+
+/* check if one form is not valid */
+if (!$form1->isValid() || !$form2->isValid()) {
+    if ($form1->isValid()) {
+        $form2->open($RENDERER, $vars, 'form.php', 'post');
+
+        // preserve form1 variables
+        $form1->preserve($vars);
+        $RENDERER->beginInactive($form1->getTitle());
+        $RENDERER->renderFormInactive($form1, $vars);
+        $RENDERER->end();
+
+        // now render the active form
+        $RENDERER->beginActive($form2->getTitle);
+        $RENDERER->renderFormActive($form2, $vars);
+        $RENDERER->submit();
+        $RENDERER->end();
+        $form2->close($RENDERER);
+    } else {
+        $form1->open($RENDERER, $vars, 'form.php', 'post');
+
+        $RENDERER->beginActive($form1->getTitle());
+        $RENDERER->renderFormActive($form1, $vars);
+        $RENDERER->submit();
+        $RENDERER->end();
+
+        $form1->close($RENDERER);
+    }
+} else {
+    $form1->getInfo($vars, $info);
+    $form2->getInfo($vars, $info);
+    echo "<pre>";
+    print_r($info);
+    echo "</pre>";
+}
+</code>


More information about the cvs mailing list