6.0.0-git
2024-05-05

Diff for Doc/Dev/FormPackage between 1 and 2

<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>