mirror of
https://github.com/moodle/moodle.git
synced 2025-02-19 15:45:59 +01:00
59 lines
1.5 KiB
PHP
59 lines
1.5 KiB
PHP
<?php
|
|
|
|
if (!defined('MOODLE_INTERNAL')) {
|
|
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
|
|
}
|
|
|
|
require_once($CFG->dirroot.'/lib/formslib.php');
|
|
|
|
class field_form extends moodleform {
|
|
|
|
var $field;
|
|
|
|
/// Define the form
|
|
function definition () {
|
|
global $CFG;
|
|
|
|
$mform =& $this->_form;
|
|
|
|
/// Everything else is dependant on the data type
|
|
$datatype = $this->_customdata;
|
|
require_once($CFG->dirroot.'/user/profile/field/'.$datatype.'/define.class.php');
|
|
$newfield = 'profile_define_'.$datatype;
|
|
$this->field = new $newfield();
|
|
|
|
$strrequired = get_string('required');
|
|
|
|
/// Add some extra hidden fields
|
|
$mform->addElement('hidden', 'id');
|
|
$mform->setType('id', PARAM_INT);
|
|
$mform->addElement('hidden', 'action', 'editfield');
|
|
$mform->setType('action', PARAM_ACTION);
|
|
$mform->addElement('hidden', 'datatype', $datatype);
|
|
$mform->setType('datatype', PARAM_ALPHA);
|
|
|
|
$this->field->define_form($mform);
|
|
|
|
$this->add_action_buttons(true);
|
|
}
|
|
|
|
|
|
/// alter definition based on existing or submitted data
|
|
function definition_after_data () {
|
|
$mform =& $this->_form;
|
|
$this->field->define_after_data($mform);
|
|
}
|
|
|
|
|
|
/// perform some moodle validation
|
|
function validation($data, $files) {
|
|
return $this->field->define_validate($data, $files);
|
|
}
|
|
|
|
function editors() {
|
|
return $this->field->define_editors();
|
|
}
|
|
}
|
|
|
|
|