Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/mod/feedback/view.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 
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">&nbsp;</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 
 All Data Structures Namespaces Files Functions Variables Enumerations