/** * Removes all grades from gradebook * @param int $courseid * @param string optional type */ function forum_reset_gradebook($courseid, $type = '') { global $CFG; $type = $type ? "AND f.type='{$type}'" : ''; $sql = "SELECT f.*, cm.idnumber as cmidnumber, f.course as courseid\n FROM {$CFG->prefix}forum f, {$CFG->prefix}course_modules cm, {$CFG->prefix}modules m\n WHERE m.name='forum' AND m.id=cm.module AND cm.instance=f.id AND f.course={$courseid} {$type}"; if ($forums = get_records_sql($sql)) { foreach ($forums as $forum) { forum_grade_item_update($forum, 'reset'); } } }
/** * Removes all grades from gradebook * * @global object * @global object * @param int $courseid * @param string $type optional */ function forum_reset_gradebook($courseid, $type='') { global $CFG, $DB; $wheresql = ''; $params = array($courseid); if ($type) { $wheresql = "AND f.type=?"; $params[] = $type; } $sql = "SELECT f.*, cm.idnumber as cmidnumber, f.course as courseid FROM {forum} f, {course_modules} cm, {modules} m WHERE m.name='forum' AND m.id=cm.module AND cm.instance=f.id AND f.course=? $wheresql"; if ($forums = $DB->get_records_sql($sql, $params)) { foreach ($forums as $forum) { forum_grade_item_update($forum, 'reset'); } } }
/** * Update grades by firing grade_updated event * * @param object $forum null means all forums * @param int $userid specific user only, 0 mean all */ function forum_update_grades($forum = null, $userid = 0, $nullifnone = true) { global $CFG; if ($forum != null) { require_once $CFG->libdir . '/gradelib.php'; if ($grades = forum_get_user_grades($forum, $userid)) { grade_update('mod/forum', $forum->course, 'mod', 'forum', $forum->id, 0, $grades); } else { if ($userid and $nullifnone) { $grade = new object(); $grade->userid = $userid; $grade->rawgrade = NULL; grade_update('mod/forum', $data->course, 'mod', 'forum', $forum->id, 0, $grade); } } } else { $sql = "SELECT f.*, cm.idnumber as cmidnumber\n FROM {$CFG->prefix}forum f, {$CFG->prefix}course_modules cm, {$CFG->prefix}modules m\n WHERE m.name='forum' AND m.id=cm.module AND cm.instance=f.id"; if ($rs = get_recordset_sql($sql)) { if ($rs->RecordCount() > 0) { while ($forum = rs_fetch_next_record($rs)) { forum_grade_item_update($forum); if ($forum->assessed) { forum_update_grades($forum, 0, false); } } } rs_close($rs); } } }