MDL-22388 Added some checks to kill these scripts dead with an unequivocal notice...
[moodle.git] / user / profile / index_category_form.php
1 <?php
3 if (!defined('MOODLE_INTERNAL')) {
4     die('Direct access to this script is forbidden.');    ///  It must be included from a Moodle page
5 }
7 require_once($CFG->dirroot.'/lib/formslib.php');
9 class category_form extends moodleform {
11     // Define the form
12     function definition () {
13         global $USER, $CFG;
15         $mform =& $this->_form;
17         $strrequired = get_string('required');
19         /// Add some extra hidden fields
20         $mform->addElement('hidden', 'id');
21         $mform->setType('id', PARAM_INT);
22         $mform->addElement('hidden', 'action', 'editcategory');
23         $mform->setType('action', PARAM_ACTION);
25         $mform->addElement('text', 'name', get_string('profilecategoryname', 'admin'), 'maxlength="255" size="30"');
26         $mform->setType('name', PARAM_MULTILANG);
27         $mform->addRule('name', $strrequired, 'required', null, 'client');
29         $this->add_action_buttons(true);
31     } /// End of function
33 /// perform some moodle validation
34     function validation($data, $files) {
35         global $CFG, $DB;
36         $errors = parent::validation($data, $files);
38         $data  = (object)$data;
40         $duplicate = $DB->record_exists('user_info_category', array('name'=>$data->name));
42         /// Check the name is unique
43         if (!empty($data->id)) { // we are editing an existing record
44             $olddata = $DB->get_record('user_info_category', array('id'=>$data->id));
45             // name has changed, new name in use, new name in use by another record
46             $dupfound = (($olddata->name !== $data->name) && $duplicate && ($data->id != $duplicate->id));
47         }
48         else { // new profile category
49             $dupfound = $duplicate;
50         }
52         if ($dupfound ) {
53             $errors['name'] = get_string('profilecategorynamenotunique', 'admin');
54         }
56         return $errors;
57     }
58 }