|
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 00024 require_once("../../config.php"); 00025 require_once("lib.php"); 00026 00027 $id = required_param('id', PARAM_INT); 00028 $courseid = optional_param('courseid', false, PARAM_INT); 00029 00030 $current_tab = 'view'; 00031 00032 if (! $cm = get_coursemodule_from_id('feedback', $id)) { 00033 print_error('invalidcoursemodule'); 00034 } 00035 00036 if (! $course = $DB->get_record("course", array("id"=>$cm->course))) { 00037 print_error('coursemisconf'); 00038 } 00039 00040 if (! $feedback = $DB->get_record("feedback", array("id"=>$cm->instance))) { 00041 print_error('invalidcoursemodule'); 00042 } 00043 00044 if (!$context = get_context_instance(CONTEXT_MODULE, $cm->id)) { 00045 print_error('badcontext'); 00046 } 00047 00048 $feedback_complete_cap = false; 00049 00050 if (has_capability('mod/feedback:complete', $context)) { 00051 $feedback_complete_cap = true; 00052 } 00053 00054 if (isset($CFG->feedback_allowfullanonymous) 00055 AND $CFG->feedback_allowfullanonymous 00056 AND $course->id == SITEID 00057 AND (!$courseid OR $courseid == SITEID) 00058 AND $feedback->anonymous == FEEDBACK_ANONYMOUS_YES ) { 00059 $feedback_complete_cap = true; 00060 } 00061 00062 //check whether the feedback is located and! started from the mainsite 00063 if ($course->id == SITEID AND !$courseid) { 00064 $courseid = SITEID; 00065 } 00066 00067 //check whether the feedback is mapped to the given courseid 00068 if ($course->id == SITEID AND !has_capability('mod/feedback:edititems', $context)) { 00069 if ($DB->get_records('feedback_sitecourse_map', array('feedbackid'=>$feedback->id))) { 00070 $params = array('feedbackid'=>$feedback->id, 'courseid'=>$courseid); 00071 if (!$DB->get_record('feedback_sitecourse_map', $params)) { 00072 print_error('invalidcoursemodule'); 00073 } 00074 } 00075 } 00076 00077 if ($feedback->anonymous != FEEDBACK_ANONYMOUS_YES) { 00078 if ($course->id == SITEID) { 00079 require_login($course->id, true); 00080 } else { 00081 require_login($course->id, true, $cm); 00082 } 00083 } else { 00084 if ($course->id == SITEID) { 00085 require_course_login($course, true); 00086 } else { 00087 require_course_login($course, true, $cm); 00088 } 00089 } 00090 00091 //check whether the given courseid exists 00092 if ($courseid AND $courseid != SITEID) { 00093 if ($course2 = $DB->get_record('course', array('id'=>$courseid))) { 00094 require_course_login($course2); //this overwrites the object $course :-( 00095 $course = $DB->get_record("course", array("id"=>$cm->course)); // the workaround 00096 } else { 00097 print_error('invalidcourseid'); 00098 } 00099 } 00100 00101 if ($feedback->anonymous == FEEDBACK_ANONYMOUS_NO) { 00102 add_to_log($course->id, 'feedback', 'view', 'view.php?id='.$cm->id, $feedback->id, $cm->id); 00103 } 00104 00106 $strfeedbacks = get_string("modulenameplural", "feedback"); 00107 $strfeedback = get_string("modulename", "feedback"); 00108 00109 if ($course->id == SITEID) { 00110 $PAGE->set_context($context); 00111 $PAGE->set_cm($cm, $course); // set's up global $COURSE 00112 $PAGE->set_pagelayout('incourse'); 00113 } 00114 $PAGE->set_url('/mod/feedback/view.php', array('id'=>$cm->id, 'do_show'=>'view')); 00115 $PAGE->set_title(format_string($feedback->name)); 00116 $PAGE->set_heading(format_string($course->fullname)); 00117 echo $OUTPUT->header(); 00118 00119 //ishidden check. 00120 //feedback in courses 00121 $cap_viewhiddenactivities = has_capability('moodle/course:viewhiddenactivities', $context); 00122 if ((empty($cm->visible) and !$cap_viewhiddenactivities) AND $course->id != SITEID) { 00123 notice(get_string("activityiscurrentlyhidden")); 00124 } 00125 00126 //ishidden check. 00127 //feedback on mainsite 00128 if ((empty($cm->visible) and !$cap_viewhiddenactivities) AND $courseid == SITEID) { 00129 notice(get_string("activityiscurrentlyhidden")); 00130 } 00131 00136 00138 require('tabs.php'); 00139 00140 $previewimg = $OUTPUT->pix_icon('t/preview', get_string('preview')); 00141 $previewlnk = '<a href="'.$CFG->wwwroot.'/mod/feedback/print.php?id='.$id.'">'.$previewimg.'</a>'; 00142 00143 echo $OUTPUT->heading(format_text($feedback->name.' '.$previewlnk)); 00144 00145 //show some infos to the feedback 00146 if (has_capability('mod/feedback:edititems', $context)) { 00147 //get the groupid 00148 $groupselect = groups_print_activity_menu($cm, $CFG->wwwroot.'/mod/feedback/view.php?id='.$cm->id, true); 00149 $mygroupid = groups_get_activity_group($cm); 00150 00151 echo $OUTPUT->box_start('boxaligncenter boxwidthwide'); 00152 echo $groupselect.'<div class="clearer"> </div>'; 00153 $completedscount = feedback_get_completeds_group_count($feedback, $mygroupid); 00154 echo $OUTPUT->box_start('feedback_info'); 00155 echo '<span class="feedback_info">'; 00156 echo get_string('completed_feedbacks', 'feedback').': '; 00157 echo '</span>'; 00158 echo '<span class="feedback_info_value">'; 00159 echo $completedscount; 00160 echo '</span>'; 00161 echo $OUTPUT->box_end(); 00162 00163 $params = array('feedback'=>$feedback->id, 'hasvalue'=>1); 00164 $itemscount = $DB->count_records('feedback_item', $params); 00165 echo $OUTPUT->box_start('feedback_info'); 00166 echo '<span class="feedback_info">'; 00167 echo get_string('questions', 'feedback').': '; 00168 echo '</span>'; 00169 echo '<span class="feedback_info_value">'; 00170 echo $itemscount; 00171 echo '</span>'; 00172 echo $OUTPUT->box_end(); 00173 00174 if ($feedback->timeopen) { 00175 echo $OUTPUT->box_start('feedback_info'); 00176 echo '<span class="feedback_info">'; 00177 echo get_string('feedbackopen', 'feedback').': '; 00178 echo '</span>'; 00179 echo '<span class="feedback_info_value">'; 00180 echo userdate($feedback->timeopen); 00181 echo '</span>'; 00182 echo $OUTPUT->box_end(); 00183 } 00184 if ($feedback->timeclose) { 00185 echo $OUTPUT->box_start('feedback_info'); 00186 echo '<span class="feedback_info">'; 00187 echo get_string('timeclose', 'feedback').': '; 00188 echo '</span>'; 00189 echo '<span class="feedback_info_value">'; 00190 echo userdate($feedback->timeclose); 00191 echo '</span>'; 00192 echo $OUTPUT->box_end(); 00193 } 00194 echo $OUTPUT->box_end(); 00195 } 00196 00197 if (has_capability('mod/feedback:edititems', $context)) { 00198 echo $OUTPUT->heading(get_string('description', 'feedback'), 4); 00199 } 00200 echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide'); 00201 $options = (object)array('noclean'=>true); 00202 echo format_module_intro('feedback', $feedback, $cm->id); 00203 echo $OUTPUT->box_end(); 00204 00205 if (has_capability('mod/feedback:edititems', $context)) { 00206 echo $OUTPUT->heading(get_string("page_after_submit", "feedback"), 4); 00207 echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide'); 00208 echo format_text($feedback->page_after_submit, 00209 $feedback->page_after_submitformat, 00210 array('overflowdiv'=>true)); 00211 00212 echo $OUTPUT->box_end(); 00213 } 00214 00215 if ( (intval($feedback->publish_stats) == 1) AND 00216 ( has_capability('mod/feedback:viewanalysepage', $context)) AND 00217 !( has_capability('mod/feedback:viewreports', $context)) ) { 00218 00219 $params = array('userid'=>$USER->id, 'feedback'=>$feedback->id); 00220 if ($multiple_count = $DB->count_records('feedback_tracking', $params)) { 00221 $url_params = array('id'=>$id, 'courseid'=>$courseid); 00222 $analysisurl = new moodle_url('/mod/feedback/analysis.php', $url_params); 00223 echo '<div class="mdl-align"><a href="'.$analysisurl->out().'">'; 00224 echo get_string('completed_feedbacks', 'feedback').'</a>'; 00225 echo '</div>'; 00226 } 00227 } 00228 00229 //####### mapcourse-start 00230 if (has_capability('mod/feedback:mapcourse', $context)) { 00231 if ($feedback->course == SITEID) { 00232 echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide'); 00233 echo '<div class="mdl-align">'; 00234 echo '<form action="mapcourse.php" method="get">'; 00235 echo '<fieldset>'; 00236 echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />'; 00237 echo '<input type="hidden" name="id" value="'.$id.'" />'; 00238 echo '<button type="submit">'.get_string('mapcourses', 'feedback').'</button>'; 00239 echo $OUTPUT->help_icon('mapcourse', 'feedback'); 00240 echo '</fieldset>'; 00241 echo '</form>'; 00242 echo '<br />'; 00243 echo '</div>'; 00244 echo $OUTPUT->box_end(); 00245 } 00246 } 00247 //####### mapcourse-end 00248 00249 //####### completed-start 00250 if ($feedback_complete_cap) { 00251 echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide'); 00252 //check, whether the feedback is open (timeopen, timeclose) 00253 $checktime = time(); 00254 if (($feedback->timeopen > $checktime) OR 00255 ($feedback->timeclose < $checktime AND $feedback->timeclose > 0)) { 00256 00257 echo '<h2><font color="red">'.get_string('feedback_is_not_open', 'feedback').'</font></h2>'; 00258 echo $OUTPUT->continue_button($CFG->wwwroot.'/course/view.php?id='.$course->id); 00259 echo $OUTPUT->box_end(); 00260 echo $OUTPUT->footer(); 00261 exit; 00262 } 00263 00264 //check multiple Submit 00265 $feedback_can_submit = true; 00266 if ($feedback->multiple_submit == 0 ) { 00267 if (feedback_is_already_submitted($feedback->id, $courseid)) { 00268 $feedback_can_submit = false; 00269 } 00270 } 00271 if ($feedback_can_submit) { 00272 //if the user is not known so we cannot save the values temporarly 00273 if (!isloggedin() or isguestuser()) { 00274 $completefile = 'complete_guest.php'; 00275 $guestid = sesskey(); 00276 } else { 00277 $completefile = 'complete.php'; 00278 $guestid = false; 00279 } 00280 $url_params = array('id'=>$id, 'courseid'=>$courseid, 'gopage'=>0); 00281 $completeurl = new moodle_url('/mod/feedback/'.$completefile, $url_params); 00282 00283 $feedbackcompletedtmp = feedback_get_current_completed($feedback->id, true, $courseid, $guestid); 00284 if ($feedbackcompletedtmp) { 00285 if ($startpage = feedback_get_page_to_continue($feedback->id, $courseid, $guestid)) { 00286 $completeurl->param('gopage', $startpage); 00287 } 00288 echo '<a href="'.$completeurl->out().'">'.get_string('continue_the_form', 'feedback').'</a>'; 00289 } else { 00290 echo '<a href="'.$completeurl->out().'">'.get_string('complete_the_form', 'feedback').'</a>'; 00291 } 00292 } else { 00293 echo '<h2><font color="red">'; 00294 echo get_string('this_feedback_is_already_submitted', 'feedback'); 00295 echo '</font></h2>'; 00296 if ($courseid) { 00297 echo $OUTPUT->continue_button($CFG->wwwroot.'/course/view.php?id='.$courseid); 00298 } else { 00299 echo $OUTPUT->continue_button($CFG->wwwroot.'/course/view.php?id='.$course->id); 00300 } 00301 } 00302 echo $OUTPUT->box_end(); 00303 } 00304 //####### completed-end 00305 00310 00311 echo $OUTPUT->footer(); 00312