/** * This function extends the course navigation with the report items * * @param navigation_node $navigation The navigation node to extend * @param stdClass $user * @param stdClass $course The course to object for the report */ function report_completion_extend_navigation_user($navigation, $user, $course) { return; //TODO: this plugin was not linked from navigation in 2.0, let's keep it that way for now --skodak if (report_completion_can_access_user_report($user, $course)) { $url = new moodle_url('/report/completion/user.php', array('id' => $user->id, 'course' => $course->id)); $navigation->add(get_string('coursecompletion'), $url); } }
require_once $CFG->dirroot . '/report/completion/lib.php'; require_once $CFG->libdir . '/completionlib.php'; $userid = required_param('id', PARAM_INT); $courseid = required_param('course', PARAM_INT); $user = $DB->get_record('user', array('id' => $userid, 'deleted' => 0), '*', MUST_EXIST); $course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST); $coursecontext = context_course::instance($course->id); $personalcontext = context_user::instance($user->id); if ($USER->id != $user->id and has_capability('moodle/user:viewuseractivitiesreport', $personalcontext) and !is_enrolled($coursecontext, $USER) and is_enrolled($coursecontext, $user)) { //TODO: do not require parents to be enrolled in courses - this is a hack! require_login(); $PAGE->set_course($course); } else { require_login($course); } if (!report_completion_can_access_user_report($user, $course, true)) { // this should never happen print_error('nocapability', 'report_completion'); } $stractivityreport = get_string('activityreport'); $PAGE->set_pagelayout('admin'); $PAGE->set_url('/report/completion/user.php', array('id' => $user->id, 'course' => $course->id)); $PAGE->navigation->extend_for_user($user); $PAGE->navigation->set_userid_for_parent_checks($user->id); // see MDL-25805 for reasons and for full commit reference for reversal when fixed. $PAGE->set_title("{$course->shortname}: {$stractivityreport}"); $PAGE->set_heading($course->fullname); echo $OUTPUT->header(); // Display course completion user report // Grab all courses the user is enrolled in and their completion status $sql = "\n SELECT DISTINCT\n c.id AS id\n FROM\n {course} c\n INNER JOIN\n {context} con\n ON con.instanceid = c.id\n INNER JOIN\n {role_assignments} ra\n ON ra.contextid = con.id\n INNER JOIN\n {enrol} e\n ON c.id = e.courseid\n INNER JOIN\n {user_enrolments} ue\n ON e.id = ue.enrolid AND ra.userid = ue.userid\n AND ra.userid = {$user->id}\n";