function get_maxgrade($userid, $course) { global $CFG, $DB; $sql = "SELECT l.id, l.statusid, l.statusset\n\t\t\tFROM {attendance_log} l\n\t\t\tJOIN {attendance_sessions} s\n\t\t\t ON l.sessionid = s.id\n\t\t WHERE l.studentid = ?\n\t\t AND s.courseid = ?\n\t\t AND s.sessdate >= ?"; $logs = $DB->get_records_sql($sql, array($userid, $course->id, $course->startdate)); $maxgrade = 0; if ($logs) { $stat_grades = $DB->get_records_menu('attendance_statuses', array('courseid' => $course->id), 'id', 'id, grade'); foreach ($logs as $log) { $ids = array_flip(explode(',', $log->statusset)); // $grades = array_intersect_key($stat_grades, $ids); // require PHP 5.1.0 and higher $grades = local_array_intersect_key($stat_grades, $ids); //temporary solution, for support PHP 4.3.0 which minimal requirement for Moodle 1.9.x $maxgrade += max($grades); } } return $maxgrade; }
function get_maxgrade($userid, $course) { global $CFG; $logs = get_records_sql("\n SELECT l.id, l.statusid, l.statusset\n FROM {$CFG->prefix}attendance_log l\n JOIN {$CFG->prefix}attendance_sessions s\n ON l.sessionid = s.id\n WHERE l.studentid = {$userid}\n AND s.courseid = {$course->id}\n AND s.sessdate >= {$course->startdate}"); $maxgrade = 0; if ($logs) { $stat_grades = records_to_menu(get_records('attendance_statuses', 'courseid', $course->id), 'id', 'grade'); foreach ($logs as $log) { $ids = array_flip(explode(',', $log->statusset)); // $grades = array_intersect_key($stat_grades, $ids); // require PHP 5.1.0 and higher $grades = local_array_intersect_key($stat_grades, $ids); //temporary solution, for support PHP 4.3.0 which minimal requirement for Moodle 1.9.x $maxgrade += max($grades); } } return $maxgrade; }