$courses = pull_courses($user); $blockname = get_string('blockname', 'block_student_gradeviewer'); $heading_main = get_string('view_grades', 'block_student_gradeviewer'); $navigation = array(array('name' => $blockname, 'link' => '', 'type' => 'title'), array('name' => $heading_main, 'link' => 'viewgrades.php', 'type' => 'title'), array('name' => fullname($user), 'link' => '', 'type' => 'title')); // Begin form output print_header_simple($heading_main, '', build_navigation($navigation)); // If they don't have any courses, then tell the user so and die if (empty($courses)) { print_heading(get_string('no_courses', 'block_student_gradeviewer')); print_footer(); die; } echo '<fieldset class="aligncenter"> <legend><strong>Grades Overview for ' . fullname($user) . '</strong></legend> <div class="student_courses"> <span>' . implode(' | ', pull_grades_courses($courses)) . '</span> </div> </fieldset>'; // If they selected a course, then use that course $chosen = $courseid ? $courses[$courseid] : current($courses); build_table($chosen); print_footer(); function build_table($course) { global $CFG; // Pull an iterator for grades for that user $iter = pull_grade_iterator($course->userid, $course->id); // Start the table object $table = new stdClass(); $table->head = array(get_string('itemname', 'grades'), get_string('category', 'grades'), get_string('overridden', 'grades'), get_string('excluded', 'grades'), get_string('range', 'grades'), get_string('rank', 'grades'), get_string('feedback', 'grades'), get_string('finalgrade', 'grades')); $table->data = array();
function pull_courses($user, $grades = false) { global $CFG; $sql = "SELECT c.id, c.shortname, c.fullname, ra.userid, c.visible,\n {$user->id} AS cps_userid\n FROM {$CFG->prefix}course c, \n {$CFG->prefix}role_assignments ra, \n {$CFG->prefix}context ctx \n WHERE c.id = ctx.instanceid \n AND ra.contextid=ctx.id \n AND ra.roleid IN ({$CFG->gradebookroles}) \n AND ra.userid = {$user->moodleid}"; $courses = get_records_sql($sql); if (!$courses) { $courses = array(); } if (!$grades) { return $courses; } else { return pull_grades_courses($courses); } }