Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/course/user.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 require_once("../config.php");
00026 require_once("lib.php");
00027 
00028 $id      = required_param('id',PARAM_INT);       // course id
00029 $user    = required_param('user',PARAM_INT);     // user id
00030 $mode    = optional_param('mode', "todaylogs", PARAM_ALPHA);
00031 
00032 $url = new moodle_url('/course/user.php', array('id'=>$id,'user'=>$user, 'mode'=>$mode));
00033 
00034 $course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
00035 $user = $DB->get_record("user", array("id"=>$user, 'deleted'=>0), '*', MUST_EXIST);
00036 
00037 if ($mode === 'outline' or $mode === 'complete') {
00038     $url = new moodle_url('/report/outline/user.php', array('id'=>$user->id, 'course'=>$course->id, 'mode'=>$mode));
00039     redirect($url);
00040 }
00041 if ($mode === 'todaylogs' or $mode === 'alllogs') {
00042     $logmode = ($mode === 'todaylogs') ? 'today' : 'all';
00043     $url = new moodle_url('/report/log/user.php', array('id'=>$user->id, 'course'=>$course->id, 'mode'=>$logmode));
00044     redirect($url);
00045 }
00046 if ($mode === 'stats') {
00047     $url = new moodle_url('/report/stats/user.php', array('id'=>$user->id, 'course'=>$course->id));
00048     redirect($url);
00049 }
00050 if ($mode === 'coursecompletions' or $mode === 'coursecompletion') {
00051     $url = new moodle_url('/report/completion/user.php', array('id'=>$user->id, 'course'=>$course->id));
00052     redirect($url);
00053 }
00054 
00055 $coursecontext   = get_context_instance(CONTEXT_COURSE, $course->id);
00056 $personalcontext = get_context_instance(CONTEXT_USER, $user->id);
00057 
00058 $PAGE->set_url('/course/user.php', array('id'=>$id, 'user'=>$user->id, 'mode'=>$mode));
00059 
00060 require_login();
00061 $PAGE->set_pagelayout('admin');
00062 if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext) and !is_enrolled($coursecontext)) {
00063     // do not require parents to be enrolled in courses ;-)
00064     $PAGE->set_course($course);
00065 } else {
00066     require_login($course);
00067 }
00068 
00069 if ($user->deleted) {
00070     echo $OUTPUT->header();
00071     echo $OUTPUT->heading(get_string('userdeleted'));
00072     echo $OUTPUT->footer();
00073     die;
00074 }
00075 
00076 // prepare list of allowed modes
00077 $myreports  = ($course->showreports and $USER->id == $user->id);
00078 $anyreport  = has_capability('moodle/user:viewuseractivitiesreport', $personalcontext);
00079 
00080 $modes = array();
00081 
00082 if (has_capability('moodle/grade:viewall', $coursecontext)) {
00083     //ok - can view all course grades
00084     $modes[] = 'grade';
00085 
00086 } else if ($course->showgrades and $user->id == $USER->id and has_capability('moodle/grade:view', $coursecontext)) {
00087     //ok - can view own grades
00088     $modes[] = 'grade';
00089 
00090 } else if ($course->showgrades and has_capability('moodle/grade:viewall', $personalcontext)) {
00091     // ok - can view grades of this user - parent most probably
00092     $modes[] = 'grade';
00093 
00094 } else if ($course->showgrades and $anyreport) {
00095     // ok - can view grades of this user - parent most probably
00096     $modes[] = 'grade';
00097 }
00098 
00099 if (empty($modes)) {
00100     require_capability('moodle/user:viewuseractivitiesreport', $personalcontext);
00101 }
00102 
00103 if (!in_array($mode, $modes)) {
00104     // forbidden or non-existent mode
00105     $mode = reset($modes);
00106 }
00107 
00108 add_to_log($course->id, "course", "user report", "user.php?id=$course->id&amp;user=$user->id&amp;mode=$mode", "$user->id");
00109 
00110 $stractivityreport = get_string("activityreport");
00111 
00112 $PAGE->navigation->extend_for_user($user);
00113 $PAGE->navigation->set_userid_for_parent_checks($user->id); // see MDL-25805 for reasons and for full commit reference for reversal when fixed.
00114 $PAGE->set_title("$course->shortname: $stractivityreport ($mode)");
00115 $PAGE->set_heading($course->fullname);
00116 echo $OUTPUT->header();
00117 
00118 switch ($mode) {
00119     case "grade":
00120         if (empty($CFG->grade_profilereport) or !file_exists($CFG->dirroot.'/grade/report/'.$CFG->grade_profilereport.'/lib.php')) {
00121             $CFG->grade_profilereport = 'user';
00122         }
00123         require_once $CFG->libdir.'/gradelib.php';
00124         require_once $CFG->dirroot.'/grade/lib.php';
00125         require_once $CFG->dirroot.'/grade/report/'.$CFG->grade_profilereport.'/lib.php';
00126 
00127         $functionname = 'grade_report_'.$CFG->grade_profilereport.'_profilereport';
00128         if (function_exists($functionname)) {
00129             $functionname($course, $user);
00130         }
00131         break;
00132 
00133         break;
00134     default:
00135         // can not be reached ;-)
00136 }
00137 
00138 
00139 echo $OUTPUT->footer();
 All Data Structures Namespaces Files Functions Variables Enumerations