3 require_once("$CFG->dirroot/lib/formslib.php");
5 class field_form
extends moodleform
{
8 function definition () {
11 $mform =& $this->_form
;
12 $renderer =& $mform->defaultRenderer();
13 $field = $this->_customdata
['field'];
15 $strrequired = get_string('required');
17 /// Add some extra hidden fields
18 $mform->addElement('hidden', 'id', $field->id
);
19 $mform->addElement('hidden', 'action', 'editfield');
20 $mform->addElement('hidden', 'type', $field->datatype
);
21 $mform->addElement('hidden', 'oldcategory', $field->categoryid
);
22 $mform->addElement('hidden', 'datatype', $field->datatype
);
23 $mform->addElement('hidden', 'sesskey', $USER->sesskey
);
26 /// Everything else is dependant on the data type
27 require_once($CFG->dirroot
.'/user/profile/field/'.$field->datatype
.'/field.class.php');
28 $newfield = 'profile_field_'.$field->datatype
;
29 $formfield = new $newfield($field->id
);
30 $formfield->edit_field($mform);
32 /// override the defaults with the user settings
33 $this->set_data($field);
35 $this->add_action_buttons(true);
40 function definition_after_data () {
45 /// perform some moodle validation
46 function validation ($data) {
49 $data = (object)$data;
50 $field = $this->_customdata
['field'];
52 /// Everything else is dependant on the data type
53 require_once($CFG->dirroot
.'/user/profile/field/'.$field->datatype
.'/field.class.php');
54 $newfield = 'profile_field_'.$field->datatype
;
55 $formfield = new $newfield($field->id
);
56 $err = $formfield->edit_validate($data);
58 if (count($err) == 0){