/** * Update grades in central gradebook * * @category grade * @param object $scorm * @param int $userid specific user only, 0 mean all * @param bool $nullifnone */ function scorm_update_grades($scorm, $userid=0, $nullifnone=true) { global $CFG; require_once($CFG->libdir.'/gradelib.php'); require_once($CFG->libdir.'/completionlib.php'); if ($grades = scorm_get_user_grades($scorm, $userid)) { scorm_grade_item_update($scorm, $grades); // Set complete. scorm_set_completion($scorm, $userid, COMPLETION_COMPLETE, $grades); } else if ($userid and $nullifnone) { $grade = new stdClass(); $grade->userid = $userid; $grade->rawgrade = null; scorm_grade_item_update($scorm, $grade); // Set incomplete. scorm_set_completion($scorm, $userid, COMPLETION_INCOMPLETE); } else { scorm_grade_item_update($scorm); } }
/** * Update grades in central gradebook * * @param object $scorm null means all scormbases * @param int $userid specific user only, 0 mean all */ function scorm_update_grades($scorm = null, $userid = 0, $nullifnone = true) { global $CFG; if (!function_exists('grade_update')) { //workaround for buggy PHP versions require_once $CFG->libdir . '/gradelib.php'; } if ($scorm != null) { if ($grades = scorm_get_user_grades($scorm, $userid)) { grade_update('mod/scorm', $scorm->course, 'mod', 'scorm', $scorm->id, 0, $grades); } else { if ($userid and $nullifnone) { $grade = new object(); $grade->userid = $userid; $grade->rawgrade = NULL; grade_update('mod/scorm', $scorm->course, 'mod', 'scorm', $scorm->id, 0, $grade); } } } else { $sql = "SELECT s.*, cm.idnumber as cmidnumber\n FROM {$CFG->prefix}scorm s, {$CFG->prefix}course_modules cm, {$CFG->prefix}modules m\n WHERE m.name='scorm' AND m.id=cm.module AND cm.instance=s.id"; if ($rs = get_recordset_sql($sql)) { if ($rs->RecordCount() > 0) { while ($scorm = rs_fetch_next_record($rs)) { scorm_grade_item_update($scorm); scorm_update_grades($scorm, 0, false); } } rs_close($rs); } } }
/** * Update grades in central gradebook * * @global stdClass * @global object * @param object $scorm * @param int $userid specific user only, 0 mean all * @param bool $nullifnone */ function scorm_update_grades($scorm, $userid = 0, $nullifnone = true) { global $CFG, $DB; require_once $CFG->libdir . '/gradelib.php'; if ($grades = scorm_get_user_grades($scorm, $userid)) { scorm_grade_item_update($scorm, $grades); } else { if ($userid and $nullifnone) { $grade = new stdClass(); $grade->userid = $userid; $grade->rawgrade = NULL; scorm_grade_item_update($scorm, $grade); } else { scorm_grade_item_update($scorm); } } }