/**
 * Update grades by firing grade_updated event
 *
 * @param object $elluminate null means all elluminates
 * @param int $userid specific user only, 0 mean all
 */
function elluminate_update_grades($elluminate = null, $userid = 0, $nullifnone = true)
{
    global $CFG;
    if (!function_exists('grade_update')) {
        //workaround for buggy PHP versions
        require_once $CFG->libdir . '/gradelib.php';
    }
    if ($elluminate != null) {
        if ($grades = elluminate_get_user_grades($elluminate, $userid)) {
            foreach ($grades as $k => $v) {
                if ($v->rawgrade == -1) {
                    $grades[$k]->rawgrade = null;
                }
            }
            elluminate_grade_item_update($elluminate, $grades);
        } else {
            elluminate_grade_item_update($elluminate);
        }
    } else {
        /*$sql = "SELECT a.*, cm.idnumber as cmidnumber, a.course as courseid
          FROM {elluminate} a
          INNER JOIN {course_modules} cm ON cm.instance = a.id
          INNER JOIN {modules} m ON m.id = cm.module
          WHERE m.name='elluminate'";*/
        $params = array('a.id', 'cm.module', 'elluminate');
        $sql = "SELECT a.*, cm.idnumber as cmidnumber, a.course as courseid\n\t\t\tFROM {elluminate} a\n\t\t\tINNER JOIN {course_modules} cm ON cm.instance = ?\n\t\t\tINNER JOIN {modules} m ON m.id = ?\n\t\t\tWHERE m.name=?";
        $rs = $DB->get_recordset_sql($sql, $params);
        foreach ($rs as $elluminate) {
            if ($elluminate->grade != 0) {
                elluminate_update_grades($elluminate);
            } else {
                elluminate_grade_item_update($elluminate);
            }
        }
        $rs->close();
    }
}
        $ugrade = key($grades);
    } else {
        $ugrade = $elluminate->grade;
    }
    if (!($grade = $DB->get_record('elluminate_attendance', array('elluminateid' => $elluminate->id, 'userid' => $USER->id)))) {
        $grade = new stdClass();
        $grade->elluminateid = $elluminate->id;
        $grade->userid = $USER->id;
        $grade->grade = $ugrade;
        $grade->timemodified = time();
        $DB->insert_record('elluminate_attendance', $grade);
        elluminate_update_grades($elluminate, $USER->id);
    } else {
        $grade->attended = $ugrade;
        $DB->update_record('elluminate_attendance', $grade);
        elluminate_update_grades($elluminate, $USER->id);
    }
}
if (!empty($cm)) {
    $cmid = $cm->id;
} else {
    $cmid = 0;
}
add_to_log($elluminate->course, 'elluminate', 'view meeting', 'loadmeeting.php?id=' . $elluminate->id, $elluminate->id, $cmid, $USER->id);
if (empty($elluminate->meetingid)) {
    elluminate_group_instance_check($elluminate, $cm->id);
}
$modinsession = false;
if ($ismoderator) {
    $modinsession = elluminate_is_participant($elluminate->id, $USER->id, true);
}
                    elluminate_update_grades($meeting, $userid);
                }
            } else {
                $ea = new Object();
                $ea->userid = $userid;
                $ea->elluminateid = $meeting->id;
                $ea->grade = $meeting->grade;
                $DB->insert_record('elluminate_attendance', $ea);
                elluminate_update_grades($meeting, $userid);
            }
        } else {
            if ($ea = $DB->get_record('elluminate_attendance', array('userid' => $userid, 'elluminateid' => $meeting->id))) {
                if (!empty($ea->grade)) {
                    $ea->grade = 0;
                    $DB->update_record('elluminate_attendance', $ea);
                    elluminate_update_grades($meeting, $userid);
                }
            }
        }
    }
}
$strattendancefor = get_string('attendancefor', 'elluminate', stripslashes($meeting->name));
$strelluminates = get_string('modulenameplural', 'elluminate');
$strelluminate = get_string('modulename', 'elluminate');
/// Print header.
$navigation = build_navigation($strattendancefor, $cm);
print_header_simple(format_string($meeting->name), "", $navigation, "", "", true, '');
/// Get a list of user IDs for students who are allowed to participate in this meeting.
$userids = array();
// Get meeting participants.
if ($meeting->sessiontype == 0) {
/**
 * Update grades by firing grade_updated event
 *
 * @param object $elluminate null means all elluminates
 * @param int $userid specific user only, 0 mean all
 */
function elluminate_update_grades($elluminate = null, $userid = 0, $nullifnone = true)
{
    global $CFG;
    if (!function_exists('grade_update')) {
        //workaround for buggy PHP versions
        require_once $CFG->libdir . '/gradelib.php';
    }
    if ($elluminate != null) {
        if ($grades = elluminate_get_user_grades($elluminate, $userid)) {
            foreach ($grades as $k => $v) {
                if ($v->rawgrade == -1) {
                    $grades[$k]->rawgrade = null;
                }
            }
            elluminate_grade_item_update($elluminate, $grades);
        } else {
            elluminate_grade_item_update($elluminate);
        }
    } else {
        $sql = "SELECT a.*, cm.idnumber as cmidnumber, a.course as courseid\n\t\t\t\t\t\t\t\t                      FROM {$CFG->prefix}elluminate a\n\t\t\t\t\t\t\t\t                      INNER JOIN {$CFG->prefix}course_modules cm ON cm.instance = a.id\n\t\t\t\t\t\t\t\t\t                  INNER JOIN {$CFG->prefix}modules m ON m.id = cm.module\n\t\t\t\t\t\t\t\t\t                  WHERE m.name='elluminate'";
        if ($rs = get_recordset_sql($sql)) {
            while ($elluminate = rs_fetch_next_record($rs)) {
                if ($elluminate->grade != 0) {
                    elluminate_update_grades($elluminate);
                } else {
                    elluminate_grade_item_update($elluminate);
                }
            }
            rs_close($rs);
        }
    }
}