<?php

require 'config.php';

require 'lib/formslibx.php';

class pokus_form extends moodleform_wrapper {

    function form_definition() {
        $mform    =& $this->_form;
        $renderer =& $mform->defaultRenderer();

        $course = $this->_customdata['course']; // not used here, only a demonstration


        $mform->addElement('header','general', 'Test header');

        $mform->addElement('text','sometext', 'Some alpha text (client-side)', 'maxlength="254" size="50"');
        $mform->addRule('sometext', 'Type something here!', 'required', null, 'client');
        $mform->setType('sometext', PARAM_ALPHA);

        $mform->addElement('htmleditor','somesummary', 'Some summary', array('rows'=>'10', 'cols'=>'65'));
        $mform->setType('somesummary', PARAM_RAW);

        $mform->addElement('text', 'somenumber', 'Some number','maxlength="10" size="10"');
        $mform->setType('somenumber', PARAM_INT);

        $mform->addElement('text', 'anothernumber', 'Another non zero number (server-side)', 'maxlength="10" size="10"');
        $mform->addRule('anothernumber', 'can not be zero', 'nonzero', null, 'server');
        $mform->setType('anothernumber', PARAM_INT);

        $mform->addElement('hidden', 'id', null);
        $mform->setType('id', PARAM_INT);

        $mform->addElement('submit', 'submit', get_string("savechanges"));

        $renderer->addStopFieldsetElements('submit');
    }
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

$id = optional_param('id', SITEID, PARAM_INT);

if (!$course = get_record('course', 'id', $id)) {
    error('incorrect course');
}

$form = new pokus_form('ft.php', array('course'=>$course));

if (!$form->is_submitted()) {
    $defaults = array('somesummary'=>'hmm', 'id'=>$id);
    $form->set_defaults($defaults);
} else {
    if ($form->is_valid()) {
        print_header('Form test finished');
        echo "<pre>";
        $values = $form->export_values();
        var_dump($values);
        echo "</pre>";
        print_continue('ft.php');
        print_footer();
        die;
    } else {
        // server-side validation failed - try gain
        $form->use_values_as_defaults();
    }
}

print_header('Forms test');
$form->display();
print_footer();



?>
