Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/mod/feedback/mod_form.php
Go to the documentation of this file.
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 }
 All Data Structures Namespaces Files Functions Variables Enumerations