See Release Notes
Long Term Support Release
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 require_once($CFG->dirroot.'/mod/feedback/item/feedback_item_form_class.php'); 18 19 class feedback_multichoice_form extends feedback_item_form { 20 protected $type = "multichoice"; 21 22 public function definition() { 23 $item = $this->_customdata['item']; 24 $common = $this->_customdata['common']; 25 $positionlist = $this->_customdata['positionlist']; 26 $position = $this->_customdata['position']; 27 28 $mform =& $this->_form; 29 30 $mform->addElement('header', 'general', get_string($this->type, 'feedback')); 31 32 $mform->addElement('advcheckbox', 'required', get_string('required', 'feedback'), '' , null , array(0, 1)); 33 34 $mform->addElement('text', 35 'name', 36 get_string('item_name', 'feedback'), 37 array('size' => FEEDBACK_ITEM_NAME_TEXTBOX_SIZE, 38 'maxlength' => 255)); 39 40 $mform->addElement('text', 41 'label', 42 get_string('item_label', 'feedback'), 43 array('size' => FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE, 44 'maxlength' => 255)); 45 46 $mform->addElement('select', 47 'subtype', 48 get_string('multichoicetype', 'feedback').' ', 49 array('r'=>get_string('radio', 'feedback'), 50 'c'=>get_string('check', 'feedback'), 51 'd'=>get_string('dropdown', 'feedback'))); 52 53 $mform->addElement('select', 54 'horizontal', 55 get_string('adjustment', 'feedback').' ', 56 array(0 => get_string('vertical', 'feedback'), 57 1 => get_string('horizontal', 'feedback'))); 58 $mform->hideIf('horizontal', 'subtype', 'eq', 'd'); 59 60 $mform->addElement('selectyesno', 61 'hidenoselect', 62 get_string('hide_no_select_option', 'feedback')); 63 $mform->hideIf('hidenoselect', 'subtype', 'ne', 'r'); 64 65 $mform->addElement('selectyesno', 66 'ignoreempty', 67 get_string('do_not_analyse_empty_submits', 'feedback')); 68 69 $mform->addElement('textarea', 'values', get_string('multichoice_values', 'feedback'), 70 'wrap="virtual" rows="10" cols="65"'); 71 72 $mform->addElement('static', 'hint', '', get_string('use_one_line_for_each_value', 'feedback')); 73 74 parent::definition(); 75 $this->set_data($item); 76 77 } 78 79 public function set_data($item) { 80 $info = $this->_customdata['info']; 81 82 $item->horizontal = $info->horizontal; 83 84 $item->subtype = $info->subtype; 85 86 $itemvalues = str_replace(FEEDBACK_MULTICHOICE_LINE_SEP, "\n", $info->presentation); 87 $itemvalues = str_replace("\n\n", "\n", $itemvalues); 88 $item->values = $itemvalues; 89 90 return parent::set_data($item); 91 } 92 93 public function get_data() { 94 if (!$item = parent::get_data()) { 95 return false; 96 } 97 98 $presentation = str_replace("\n", FEEDBACK_MULTICHOICE_LINE_SEP, trim($item->values)); 99 if (!isset($item->subtype)) { 100 $subtype = 'r'; 101 } else { 102 $subtype = substr($item->subtype, 0, 1); 103 } 104 if (isset($item->horizontal) AND $item->horizontal == 1 AND $subtype != 'd') { 105 $presentation .= FEEDBACK_MULTICHOICE_ADJUST_SEP.'1'; 106 } 107 if (!isset($item->hidenoselect)) { 108 $item->hidenoselect = 1; 109 } 110 if (!isset($item->ignoreempty)) { 111 $item->ignoreempty = 0; 112 } 113 114 $item->presentation = $subtype.FEEDBACK_MULTICHOICE_TYPE_SEP.$presentation; 115 return $item; 116 } 117 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body