[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
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 * the first page to view the feedback 19 * 20 * @author Andreas Grabs 21 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License 22 * @package mod_feedback 23 */ 24 require_once("../../config.php"); 25 require_once ("lib.php"); 26 27 $id = required_param('id', PARAM_INT); 28 $courseid = optional_param('courseid', false, PARAM_INT); 29 30 $current_tab = 'view'; 31 32 if (! $cm = get_coursemodule_from_id('feedback', $id)) { 33 print_error('invalidcoursemodule'); 34 } 35 36 if (! $course = $DB->get_record("course", array("id"=>$cm->course))) { 37 print_error('coursemisconf'); 38 } 39 40 if (! $feedback = $DB->get_record("feedback", array("id"=>$cm->instance))) { 41 print_error('invalidcoursemodule'); 42 } 43 44 $context = context_module::instance($cm->id); 45 46 $feedback_complete_cap = false; 47 48 if (has_capability('mod/feedback:complete', $context)) { 49 $feedback_complete_cap = true; 50 } 51 52 if (isset($CFG->feedback_allowfullanonymous) 53 AND $CFG->feedback_allowfullanonymous 54 AND $course->id == SITEID 55 AND (!$courseid OR $courseid == SITEID) 56 AND $feedback->anonymous == FEEDBACK_ANONYMOUS_YES ) { 57 $feedback_complete_cap = true; 58 } 59 60 //check whether the feedback is located and! started from the mainsite 61 if ($course->id == SITEID AND !$courseid) { 62 $courseid = SITEID; 63 } 64 65 //check whether the feedback is mapped to the given courseid 66 if ($course->id == SITEID AND !has_capability('mod/feedback:edititems', $context)) { 67 if ($DB->get_records('feedback_sitecourse_map', array('feedbackid'=>$feedback->id))) { 68 $params = array('feedbackid'=>$feedback->id, 'courseid'=>$courseid); 69 if (!$DB->get_record('feedback_sitecourse_map', $params)) { 70 print_error('invalidcoursemodule'); 71 } 72 } 73 } 74 75 if ($feedback->anonymous != FEEDBACK_ANONYMOUS_YES) { 76 if ($course->id == SITEID) { 77 require_login($course, true); 78 } else { 79 require_login($course, true, $cm); 80 } 81 } else { 82 if ($course->id == SITEID) { 83 require_course_login($course, true); 84 } else { 85 require_course_login($course, true, $cm); 86 } 87 } 88 89 //check whether the given courseid exists 90 if ($courseid AND $courseid != SITEID) { 91 if ($course2 = $DB->get_record('course', array('id'=>$courseid))) { 92 require_course_login($course2); //this overwrites the object $course :-( 93 $course = $DB->get_record("course", array("id"=>$cm->course)); // the workaround 94 } else { 95 print_error('invalidcourseid'); 96 } 97 } 98 99 // Trigger module viewed event. 100 $event = \mod_feedback\event\course_module_viewed::create(array( 101 'objectid' => $feedback->id, 102 'context' => $context, 103 'anonymous' => ($feedback->anonymous == FEEDBACK_ANONYMOUS_YES), 104 'other' => array( 105 'anonymous' => $feedback->anonymous // Deprecated. 106 ) 107 )); 108 $event->add_record_snapshot('course_modules', $cm); 109 $event->add_record_snapshot('course', $course); 110 $event->add_record_snapshot('feedback', $feedback); 111 $event->trigger(); 112 113 /// Print the page header 114 $strfeedbacks = get_string("modulenameplural", "feedback"); 115 $strfeedback = get_string("modulename", "feedback"); 116 117 if ($course->id == SITEID) { 118 $PAGE->set_context($context); 119 $PAGE->set_cm($cm, $course); // set's up global $COURSE 120 $PAGE->set_pagelayout('incourse'); 121 } 122 $PAGE->set_url('/mod/feedback/view.php', array('id'=>$cm->id, 'do_show'=>'view')); 123 $PAGE->set_title($feedback->name); 124 $PAGE->set_heading($course->fullname); 125 echo $OUTPUT->header(); 126 127 //ishidden check. 128 //feedback in courses 129 $cap_viewhiddenactivities = has_capability('moodle/course:viewhiddenactivities', $context); 130 if ((empty($cm->visible) and !$cap_viewhiddenactivities) AND $course->id != SITEID) { 131 notice(get_string("activityiscurrentlyhidden")); 132 } 133 134 //ishidden check. 135 //feedback on mainsite 136 if ((empty($cm->visible) and !$cap_viewhiddenactivities) AND $courseid == SITEID) { 137 notice(get_string("activityiscurrentlyhidden")); 138 } 139 140 /// Print the main part of the page 141 /////////////////////////////////////////////////////////////////////////// 142 /////////////////////////////////////////////////////////////////////////// 143 /////////////////////////////////////////////////////////////////////////// 144 145 $previewimg = $OUTPUT->pix_icon('t/preview', get_string('preview')); 146 $previewlnk = new moodle_url('/mod/feedback/print.php', array('id' => $id)); 147 $preview = html_writer::link($previewlnk, $previewimg); 148 149 echo $OUTPUT->heading(format_string($feedback->name) . $preview); 150 151 // Print the tabs. 152 require ('tabs.php'); 153 154 //show some infos to the feedback 155 if (has_capability('mod/feedback:edititems', $context)) { 156 //get the groupid 157 $groupselect = groups_print_activity_menu($cm, $CFG->wwwroot.'/mod/feedback/view.php?id='.$cm->id, true); 158 $mygroupid = groups_get_activity_group($cm); 159 160 echo $OUTPUT->box_start('boxaligncenter boxwidthwide'); 161 echo $groupselect.'<div class="clearer"> </div>'; 162 $completedscount = feedback_get_completeds_group_count($feedback, $mygroupid); 163 echo $OUTPUT->box_start('feedback_info'); 164 echo '<span class="feedback_info">'; 165 echo get_string('completed_feedbacks', 'feedback').': '; 166 echo '</span>'; 167 echo '<span class="feedback_info_value">'; 168 echo $completedscount; 169 echo '</span>'; 170 echo $OUTPUT->box_end(); 171 172 $params = array('feedback'=>$feedback->id, 'hasvalue'=>1); 173 $itemscount = $DB->count_records('feedback_item', $params); 174 echo $OUTPUT->box_start('feedback_info'); 175 echo '<span class="feedback_info">'; 176 echo get_string('questions', 'feedback').': '; 177 echo '</span>'; 178 echo '<span class="feedback_info_value">'; 179 echo $itemscount; 180 echo '</span>'; 181 echo $OUTPUT->box_end(); 182 183 if ($feedback->timeopen) { 184 echo $OUTPUT->box_start('feedback_info'); 185 echo '<span class="feedback_info">'; 186 echo get_string('feedbackopen', 'feedback').': '; 187 echo '</span>'; 188 echo '<span class="feedback_info_value">'; 189 echo userdate($feedback->timeopen); 190 echo '</span>'; 191 echo $OUTPUT->box_end(); 192 } 193 if ($feedback->timeclose) { 194 echo $OUTPUT->box_start('feedback_info'); 195 echo '<span class="feedback_info">'; 196 echo get_string('feedbackclose', 'feedback').': '; 197 echo '</span>'; 198 echo '<span class="feedback_info_value">'; 199 echo userdate($feedback->timeclose); 200 echo '</span>'; 201 echo $OUTPUT->box_end(); 202 } 203 echo $OUTPUT->box_end(); 204 } 205 206 if (has_capability('mod/feedback:edititems', $context)) { 207 echo $OUTPUT->heading(get_string('description', 'feedback'), 3); 208 } 209 echo $OUTPUT->box_start('generalbox boxwidthwide'); 210 $options = (object)array('noclean'=>true); 211 echo format_module_intro('feedback', $feedback, $cm->id); 212 echo $OUTPUT->box_end(); 213 214 if (has_capability('mod/feedback:edititems', $context)) { 215 require_once($CFG->libdir . '/filelib.php'); 216 217 $page_after_submit_output = file_rewrite_pluginfile_urls($feedback->page_after_submit, 218 'pluginfile.php', 219 $context->id, 220 'mod_feedback', 221 'page_after_submit', 222 0); 223 224 echo $OUTPUT->heading(get_string("page_after_submit", "feedback"), 3); 225 echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide'); 226 echo format_text($page_after_submit_output, 227 $feedback->page_after_submitformat, 228 array('overflowdiv'=>true)); 229 230 echo $OUTPUT->box_end(); 231 } 232 233 if ( (intval($feedback->publish_stats) == 1) AND 234 ( has_capability('mod/feedback:viewanalysepage', $context)) AND 235 !( has_capability('mod/feedback:viewreports', $context)) ) { 236 237 $params = array('userid'=>$USER->id, 'feedback'=>$feedback->id); 238 if ($multiple_count = $DB->count_records('feedback_tracking', $params)) { 239 $url_params = array('id'=>$id, 'courseid'=>$courseid); 240 $analysisurl = new moodle_url('/mod/feedback/analysis.php', $url_params); 241 echo '<div class="mdl-align"><a href="'.$analysisurl->out().'">'; 242 echo get_string('completed_feedbacks', 'feedback').'</a>'; 243 echo '</div>'; 244 } 245 } 246 247 //####### mapcourse-start 248 if (has_capability('mod/feedback:mapcourse', $context)) { 249 if ($feedback->course == SITEID) { 250 echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide'); 251 echo '<div class="mdl-align">'; 252 echo '<form action="mapcourse.php" method="get">'; 253 echo '<fieldset>'; 254 echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />'; 255 echo '<input type="hidden" name="id" value="'.$id.'" />'; 256 echo '<button type="submit">'.get_string('mapcourses', 'feedback').'</button>'; 257 echo $OUTPUT->help_icon('mapcourse', 'feedback'); 258 echo '</fieldset>'; 259 echo '</form>'; 260 echo '<br />'; 261 echo '</div>'; 262 echo $OUTPUT->box_end(); 263 } 264 } 265 //####### mapcourse-end 266 267 //####### completed-start 268 if ($feedback_complete_cap) { 269 echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide'); 270 //check, whether the feedback is open (timeopen, timeclose) 271 $checktime = time(); 272 if (($feedback->timeopen > $checktime) OR 273 ($feedback->timeclose < $checktime AND $feedback->timeclose > 0)) { 274 275 echo $OUTPUT->notification(get_string('feedback_is_not_open', 'feedback')); 276 echo $OUTPUT->continue_button($CFG->wwwroot.'/course/view.php?id='.$course->id); 277 echo $OUTPUT->box_end(); 278 echo $OUTPUT->footer(); 279 exit; 280 } 281 282 //check multiple Submit 283 $feedback_can_submit = true; 284 if ($feedback->multiple_submit == 0 ) { 285 if (feedback_is_already_submitted($feedback->id, $courseid)) { 286 $feedback_can_submit = false; 287 } 288 } 289 if ($feedback_can_submit) { 290 //if the user is not known so we cannot save the values temporarly 291 if (!isloggedin() or isguestuser()) { 292 $completefile = 'complete_guest.php'; 293 $guestid = sesskey(); 294 } else { 295 $completefile = 'complete.php'; 296 $guestid = false; 297 } 298 $url_params = array('id'=>$id, 'courseid'=>$courseid, 'gopage'=>0); 299 $completeurl = new moodle_url('/mod/feedback/'.$completefile, $url_params); 300 301 $feedbackcompletedtmp = feedback_get_current_completed($feedback->id, true, $courseid, $guestid); 302 if ($feedbackcompletedtmp) { 303 if ($startpage = feedback_get_page_to_continue($feedback->id, $courseid, $guestid)) { 304 $completeurl->param('gopage', $startpage); 305 } 306 echo '<a href="'.$completeurl->out().'">'.get_string('continue_the_form', 'feedback').'</a>'; 307 } else { 308 echo '<a href="'.$completeurl->out().'">'.get_string('complete_the_form', 'feedback').'</a>'; 309 } 310 } else { 311 echo $OUTPUT->notification(get_string('this_feedback_is_already_submitted', 'feedback')); 312 if ($courseid) { 313 echo $OUTPUT->continue_button($CFG->wwwroot.'/course/view.php?id='.$courseid); 314 } else { 315 echo $OUTPUT->continue_button($CFG->wwwroot.'/course/view.php?id='.$course->id); 316 } 317 } 318 echo $OUTPUT->box_end(); 319 } 320 //####### completed-end 321 322 /// Finish the page 323 /////////////////////////////////////////////////////////////////////////// 324 /////////////////////////////////////////////////////////////////////////// 325 /////////////////////////////////////////////////////////////////////////// 326 327 echo $OUTPUT->footer(); 328
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |