libdir.'/formslib.php'); $CFG->debug = DEBUG_DEVELOPER; class validationtest_form extends moodleform { function definition() { $mform = $this->_form; // Add a simple int. $mform->addElement('text', 'simpleel_int', 'simpleel_int'); $mform->setType('simpleel_int', PARAM_INT); $mform->setDefault('simpleel_int', '11.01'); // Add a non-named group. $group = array( $mform->createElement('text', 'groupel1_int', 'groupel1_int'), $mform->createElement('text', 'groupel2_raw', 'groupel2_raw + warning'), $mform->createElement('text', 'groupel3_int', 'groupel3_int') ); $mform->setDefault('groupel1_int', '11.01'); $mform->setDefault('groupel2_raw', '11.01'); $mform->setDefault('groupel3_int', '11.01'); $mform->setType('groupel1_int', PARAM_INT); // $mform->setType('groupel2_raw', PARAM_FLOAT); $mform->setType('groupel3_int', PARAM_INT); $mform->addGroup($group, null, 'groupelx : int / raw (warning) / int'); // Add a named group. $group = array( $mform->createElement('text', 'sndgroupel1_int', 'sndgroupel1_int'), $mform->createElement('text', 'sndgroupel2_raw', 'sndgroupel2_raw + warning'), $mform->createElement('text', 'sndgroupel3_int', 'sndgroupel3_int') ); $mform->addGroup($group, 'namedgroup', 'namedgroup: int / raw (warning) / int'); $mform->setDefault('namedgroup[sndgroupel1_int]', '11.01'); $mform->setDefault('namedgroup[sndgroupel2_raw]', '11.01'); $mform->setDefault('namedgroup[sndgroupel3_int]', '11.01'); $mform->setType('namedgroup[sndgroupel1_int]', PARAM_INT); // $mform->setType('namedgroup[sndgroupel2_raw]', PARAM_FLOAT); $mform->setType('namedgroup[sndgroupel3_int]', PARAM_INT); // Add a named group, with inheritance. $group = array( $mform->createElement('text', 'thdgroupel1_int', 'thdgroupel1_int'), $mform->createElement('text', 'thdgroupel2_int', 'thdgroupel2_int') ); $mform->addGroup($group, 'namedgroupinherit', 'namedgroupinherit: int'); $mform->setDefault('namedgroupinherit[thdgroupel1_int]', '11.01'); $mform->setDefault('namedgroupinherit[thdgroupel2_int]', '11.01'); $mform->setType('namedgroupinherit', PARAM_INT); // Add a repetition. $repeat = $mform->createElement('text', 'repeatedel_int', 'repeatedel_int'); $this->repeat_elements(array($repeat), 2, array('repeatedel_int' => array( 'type' => PARAM_INT, 'default' => '11.01')), 'repeatable', 'add_repeatedel', 1); // Add a repetition, with inheritance. $repeat = $mform->createElement('text', 'repeatedelinherit_int', 'repeatedelinherit_int'); $this->repeat_elements(array($repeat), 2, array('repeatedelinherit_int' => array( 'default' => '11.01')), 'repeatableinherit', 'add_repeatedelinherit', 1); $mform->setType('repeatedelinherit_int', PARAM_INT); // Add an arbitrary named element. $mform->addElement('text', 'squaretest_int[0]', 'squaretest_int[0]'); $mform->setDefault('squaretest_int[0]', '11.01'); $mform->setType('squaretest_int[0]', PARAM_INT); // Add an arbitrary nested array named element. $mform->addElement('text', 'nested[0][bob][123]', 'nested[0][bob][123] int'); $mform->setDefault('nested[0][bob][123]', '11.01'); $mform->setType('nested[0][bob][123]', PARAM_INT); // Add inheritance test cases. $mform->setType('nested', PARAM_INT); $mform->setType('nested[0]', PARAM_RAW); $mform->setType('nested[0][bob]', PARAM_FLOAT); $mform->addElement('text', 'nested[1]', 'nested[1] int'); $mform->addElement('text', 'nested[0][raw]', 'nested[0][raw]'); $mform->addElement('text', 'nested[0][bob][float]', 'nested[0][bob][float]'); $mform->setDefault('nested[1]', '11.01'); $mform->setDefault('nested[0][raw]', '11.01'); $mform->setDefault('nested[0][bob][float]', '11.01'); // Add group in repeated element (with extra inheritance). $groupelements = array( $mform->createElement('text', 'repeatgroupel1_int', 'repeatgroupel1_int'), $mform->createElement('text', 'repeatgroupel2_int', 'repeatgroupel2_int') ); $group = $mform->createElement('group', 'repeatgroup', 'repeatgroup', $groupelements, null, false); $this->repeat_elements(array($group), 2, array('repeatgroupel1_int' => array('type' => PARAM_INT, 'default' => '11.01'), 'repeatgroupel2_int' => array('type' => PARAM_INT, 'default' => '11.01')), 'repeatablegroup', 'add', 0); // Add named group in repeated element. $groupelements = array( $mform->createElement('text', 'repeatnamedgroupel1_int', 'repeatnamedgroupel1_int'), $mform->createElement('text', 'repeatnamedgroupel2_int', 'repeatnamedgroupel2_int') ); $group = $mform->createElement('group', 'repeatnamedgroup', 'repeatnamedgroup: int / int', $groupelements, null, true); $this->repeat_elements(array($group), 2, array('repeatnamedgroup[repeatnamedgroupel1_int]' => array('type' => PARAM_INT, 'default' => '11.01'), 'repeatnamedgroup[repeatnamedgroupel2_int]' => array('type' => PARAM_INT, 'default' => '11.01')), 'repeatablenamedgroup', 'add', 0); // And the submit $mform->addElement('submit', 'test', 'Test'); } } $PAGE->set_url('/test_form_validation.php'); $PAGE->set_context(context_system::instance()); echo $OUTPUT->header(); echo $OUTPUT->heading('Two wild notices appear'); $f = new validationtest_form(); if ($f->get_data()) { echo $OUTPUT->heading('Cleaned data'); print_object($f->get_data(), '3'); } echo $OUTPUT->heading('The form'); $f->display(); echo $OUTPUT->footer();