/** * Trigger the user report events, do the same that the web interface view of the report * * @param int $courseid id of course * @param int $userid id of the user the report belongs to * @return array of warnings and status result * @since Moodle 3.2 * @throws moodle_exception */ public static function view_grade_report($courseid, $userid = 0) { global $USER; $params = self::validate_parameters(self::view_grade_report_parameters(), array('courseid' => $courseid, 'userid' => $userid)); $warnings = array(); $course = get_course($params['courseid']); $context = context_course::instance($course->id); self::validate_context($context); $userid = $params['userid']; if (empty($userid)) { $userid = $USER->id; } else { $user = core_user::get_user($userid, '*', MUST_EXIST); core_user::require_active_user($user); } $systemcontext = context_system::instance(); $personalcontext = context_user::instance($userid); $access = grade_report_overview::check_access($systemcontext, $context, $personalcontext, $course, $userid); if (!$access) { throw new moodle_exception('nopermissiontoviewgrades', 'error'); } grade_report_overview::viewed($context, $course->id, $userid); $result = array(); $result['status'] = true; $result['warnings'] = $warnings; return $result; }
} echo $OUTPUT->header(); if ($report->fill_table(true, true)) { echo html_writer::tag('h3', get_string('coursesiamtaking', 'grades')); echo '<br />' . $report->print_table(true); } } else { // We have a course context. We must be navigating from the gradebook. print_grade_page_head($courseid, 'report', 'overview', get_string('pluginname', 'gradereport_overview') . ' - ' . fullname($report->user)); if ($report->fill_table()) { echo '<br />' . $report->print_table(true); } } } else { $PAGE->set_pagelayout('standard'); $header = get_string('grades', 'grades') . ' - ' . fullname($report->user); $PAGE->set_title($header); $PAGE->set_heading(fullname($report->user)); echo $OUTPUT->header(); } if (count($report->teachercourses)) { echo html_writer::tag('h3', get_string('coursesiamteaching', 'grades')); $report->print_teacher_table(); } if (empty($report->studentcourseids) && empty($report->teachercourses)) { // We have no report to show the user. Let them know something. echo $OUTPUT->notification(get_string('noreports', 'grades'), 'notifymessage'); } } grade_report_overview::viewed($context, $courseid, $userid); echo $OUTPUT->footer();