Differences Between: [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Defines the form for editing question categories. 19 * 20 * @package moodlecore 21 * @subpackage questionbank 22 * @copyright 2007 Jamie Pratt me@jamiep.org 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 27 defined('MOODLE_INTERNAL') || die(); 28 29 require_once($CFG->libdir.'/formslib.php'); 30 31 32 /** 33 * Form for editing qusetions categories (name, description, etc.) 34 * 35 * @copyright 2007 Jamie Pratt me@jamiep.org 36 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 37 */ 38 class question_category_edit_form extends moodleform { 39 40 protected function definition() { 41 $mform = $this->_form; 42 43 $contexts = $this->_customdata['contexts']; 44 $currentcat = $this->_customdata['currentcat']; 45 46 $mform->addElement('header', 'categoryheader', get_string('addcategory', 'question')); 47 48 $mform->addElement('questioncategory', 'parent', get_string('parentcategory', 'question'), 49 array('contexts' => $contexts, 'top' => true, 'currentcat' => $currentcat, 'nochildrenof' => $currentcat)); 50 $mform->setType('parent', PARAM_SEQUENCE); 51 if (question_is_only_child_of_top_category_in_context($currentcat)) { 52 $mform->hardFreeze('parent'); 53 } 54 $mform->addHelpButton('parent', 'parentcategory', 'question'); 55 56 $mform->addElement('text', 'name', get_string('name'),'maxlength="254" size="50"'); 57 $mform->setDefault('name', ''); 58 $mform->addRule('name', get_string('categorynamecantbeblank', 'question'), 'required', null, 'client'); 59 $mform->setType('name', PARAM_TEXT); 60 61 $mform->addElement('editor', 'info', get_string('categoryinfo', 'question'), 62 array('rows' => 10), array('noclean' => 1)); 63 $mform->setDefault('info', ''); 64 $mform->setType('info', PARAM_RAW); 65 66 $mform->addElement('text', 'idnumber', get_string('idnumber', 'question'), 'maxlength="100" size="10"'); 67 $mform->addHelpButton('idnumber', 'idnumber', 'question'); 68 $mform->setType('idnumber', PARAM_RAW); 69 70 $this->add_action_buttons(false, get_string('addcategory', 'question')); 71 72 $mform->addElement('hidden', 'id', 0); 73 $mform->setType('id', PARAM_INT); 74 } 75 76 public function set_data($current) { 77 if (is_object($current)) { 78 $current = (array) $current; 79 } 80 if (!empty($current['info'])) { 81 $current['info'] = array('text' => $current['info'], 82 'infoformat' => $current['infoformat']); 83 } else { 84 $current['info'] = array('text' => '', 'infoformat' => FORMAT_HTML); 85 } 86 parent::set_data($current); 87 } 88 89 /** 90 * Validation. 91 * 92 * @param array $data 93 * @param array $files 94 * @return array the errors that were found 95 */ 96 public function validation($data, $files) { 97 global $DB; 98 99 $errors = parent::validation($data, $files); 100 101 // Add field validation check for duplicate idnumber. 102 list($parentid, $contextid) = explode(',', $data['parent']); 103 if (((string) $data['idnumber'] !== '') && !empty($contextid)) { 104 $conditions = 'contextid = ? AND idnumber = ?'; 105 $params = [$contextid, $data['idnumber']]; 106 if (!empty($data['id'])) { 107 $conditions .= ' AND id <> ?'; 108 $params[] = $data['id']; 109 } 110 if ($DB->record_exists_select('question_categories', $conditions, $params)) { 111 $errors['idnumber'] = get_string('idnumbertaken', 'error'); 112 } 113 } 114 115 return $errors; 116 } 117 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body