|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00002 // This file is part of Moodle - http://moodle.org/ 00003 // 00004 // Moodle is free software: you can redistribute it and/or modify 00005 // it under the terms of the GNU General Public License as published by 00006 // the Free Software Foundation, either version 3 of the License, or 00007 // (at your option) any later version. 00008 // 00009 // Moodle is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU General Public License 00015 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 00016 00025 //It must be included from a Moodle page 00026 if (!defined('MOODLE_INTERNAL')) { 00027 die('Direct access to this script is forbidden.'); 00028 } 00029 00030 require_once($CFG->dirroot.'/course/moodleform_mod.php'); 00031 00032 class mod_feedback_mod_form extends moodleform_mod { 00033 00034 public function definition() { 00035 global $CFG, $DB; 00036 00037 $mform =& $this->_form; 00038 00039 //------------------------------------------------------------------------------- 00040 $mform->addElement('header', 'general', get_string('general', 'form')); 00041 00042 $mform->addElement('text', 'name', get_string('name', 'feedback'), array('size'=>'64')); 00043 $mform->setType('name', PARAM_TEXT); 00044 $mform->addRule('name', null, 'required', null, 'client'); 00045 00046 $this->add_intro_editor(true, get_string('description', 'feedback')); 00047 00048 //------------------------------------------------------------------------------- 00049 $mform->addElement('header', 'timinghdr', get_string('timing', 'form')); 00050 00051 $enableopengroup = array(); 00052 $enableopengroup[] =& $mform->createElement('checkbox', 00053 'openenable', 00054 get_string('feedbackopen', 'feedback')); 00055 00056 $enableopengroup[] =& $mform->createElement('date_time_selector', 'timeopen', ''); 00057 $mform->addGroup($enableopengroup, 00058 'enableopengroup', 00059 get_string('feedbackopen', 'feedback'), 00060 ' ', 00061 false); 00062 00063 $mform->addHelpButton('enableopengroup', 'timeopen', 'feedback'); 00064 $mform->disabledIf('enableopengroup', 'openenable', 'notchecked'); 00065 00066 $enableclosegroup = array(); 00067 $enableclosegroup[] =& $mform->createElement('checkbox', 00068 'closeenable', 00069 get_string('feedbackclose', 'feedback')); 00070 00071 $enableclosegroup[] =& $mform->createElement('date_time_selector', 'timeclose', ''); 00072 $mform->addGroup($enableclosegroup, 00073 'enableclosegroup', 00074 get_string('feedbackclose', 'feedback'), 00075 ' ', 00076 false); 00077 00078 $mform->addHelpButton('enableclosegroup', 'timeclose', 'feedback'); 00079 $mform->disabledIf('enableclosegroup', 'closeenable', 'notchecked'); 00080 00081 //------------------------------------------------------------------------------- 00082 $mform->addElement('header', 'feedbackhdr', get_string('feedback_options', 'feedback')); 00083 00084 $options=array(); 00085 $options[1] = get_string('anonymous', 'feedback'); 00086 $options[2] = get_string('non_anonymous', 'feedback'); 00087 $mform->addElement('select', 00088 'anonymous', 00089 get_string('anonymous_edit', 'feedback'), 00090 $options); 00091 00092 $mform->addElement('selectyesno', 00093 'publish_stats', 00094 get_string('show_analysepage_after_submit', 'feedback')); 00095 00096 $mform->addElement('selectyesno', 00097 'email_notification', 00098 get_string('email_notification', 'feedback')); 00099 00100 $mform->addHelpButton('email_notification', 'emailnotification', 'feedback'); 00101 00102 // check if there is existing responses to this feedback 00103 if (is_numeric($this->_instance) AND 00104 $this->_instance AND 00105 $feedback = $DB->get_record("feedback", array("id"=>$this->_instance))) { 00106 00107 $completed_feedback_count = feedback_get_completeds_group_count($feedback); 00108 } else { 00109 $completed_feedback_count = false; 00110 } 00111 00112 if ($completed_feedback_count) { 00113 $multiple_submit_value = $feedback->multiple_submit ? get_string('yes') : get_string('no'); 00114 $mform->addElement('text', 00115 'multiple_submit_static', 00116 get_string('multiple_submit', 'feedback'), 00117 array('size'=>'4', 00118 'disabled'=>'disabled', 00119 'value'=>$multiple_submit_value)); 00120 00121 $mform->addElement('hidden', 'multiple_submit', ''); 00122 $mform->setType('', PARAM_INT); 00123 $mform->addHelpButton('multiple_submit_static', 'multiplesubmit', 'feedback'); 00124 } else { 00125 $mform->addElement('selectyesno', 00126 'multiple_submit', 00127 get_string('multiple_submit', 'feedback')); 00128 00129 $mform->addHelpButton('multiple_submit', 'multiplesubmit', 'feedback'); 00130 } 00131 $mform->addElement('selectyesno', 'autonumbering', get_string('autonumbering', 'feedback')); 00132 $mform->addHelpButton('autonumbering', 'autonumbering', 'feedback'); 00133 00134 //------------------------------------------------------------------------------- 00135 $mform->addElement('header', 'aftersubmithdr', get_string('after_submit', 'feedback')); 00136 00137 $mform->addElement('editor', 00138 'page_after_submit', 00139 get_string("page_after_submit", "feedback"), 00140 null, 00141 null); 00142 00143 $mform->setType('page_after_submit', PARAM_RAW); 00144 00145 $mform->addElement('text', 00146 'site_after_submit', 00147 get_string('url_for_continue_button', 'feedback'), 00148 array('size'=>'64', 'maxlength'=>'255')); 00149 00150 $mform->setType('site_after_submit', PARAM_TEXT); 00151 $mform->addHelpButton('site_after_submit', 'url_for_continue', 'feedback'); 00152 //------------------------------------------------------------------------------- 00153 $this->standard_coursemodule_elements(); 00154 //------------------------------------------------------------------------------- 00155 // buttons 00156 $this->add_action_buttons(); 00157 } 00158 00159 public function data_preprocessing(&$default_values) { 00160 if (empty($default_values['timeopen'])) { 00161 $default_values['openenable'] = 0; 00162 } else { 00163 $default_values['openenable'] = 1; 00164 } 00165 if (empty($default_values['timeclose'])) { 00166 $default_values['closeenable'] = 0; 00167 } else { 00168 $default_values['closeenable'] = 1; 00169 } 00170 if (!isset($default_values['page_after_submitformat'])) { 00171 $default_values['page_after_submitformat'] = FORMAT_HTML; 00172 } 00173 if (!isset($default_values['page_after_submit'])) { 00174 $default_values['page_after_submit'] = ''; 00175 } 00176 $default_values['page_after_submit'] = array('text'=>$default_values['page_after_submit'], 00177 'format'=>$default_values['page_after_submitformat']); 00178 } 00179 00180 public function get_data() { 00181 $data = parent::get_data(); 00182 if ($data) { 00183 $data->page_after_submitformat = $data->page_after_submit['format']; 00184 $data->page_after_submit = $data->page_after_submit['text']; 00185 00186 // Turn off completion settings if the checkboxes aren't ticked 00187 $autocompletion = !empty($data->completion) AND 00188 $data->completion==COMPLETION_TRACKING_AUTOMATIC; 00189 if (empty($data->completion) || !$autocompletion) { 00190 $data->completionsubmit=0; 00191 } 00192 if (empty($data->completionsubmit)) { 00193 $data->completionsubmit=0; 00194 } 00195 } 00196 00197 return $data; 00198 } 00199 00200 public function validation($data, $files) { 00201 $errors = parent::validation($data, $files); 00202 return $errors; 00203 } 00204 00205 public function add_completion_rules() { 00206 $mform =& $this->_form; 00207 00208 $mform->addElement('checkbox', 00209 'completionsubmit', 00210 '', 00211 get_string('completionsubmit', 'feedback')); 00212 return array('completionsubmit'); 00213 } 00214 00215 public function completion_rule_enabled($data) { 00216 return !empty($data['completionsubmit']); 00217 } 00218 }