function geogebra_after_add_or_update($geogebra, $mform) { global $DB; if ($mform->get_data()->filetype === GEOGEBRA_FILE_TYPE_LOCAL) { $filename = geogebra_set_mainfile($geogebra); $geogebra->url = $filename; $result = $DB->update_record('geogebra', $geogebra); } if ($geogebra->timedue) { $event = new stdClass(); if ($event->id = $DB->get_field('event', 'id', array('modulename' => 'geogebra', 'instance' => $geogebra->id))) { $event->name = $geogebra->name; $event->description = format_module_intro('geogebra', $geogebra, $geogebra->coursemodule); $event->timestart = $geogebra->timedue; $calendarevent = calendar_event::load($event->id); $calendarevent->update($event); } else { $event = new stdClass(); $event->name = $geogebra->name; $event->description = format_module_intro('geogebra', $geogebra, $geogebra->coursemodule); $event->courseid = $geogebra->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'geogebra'; $event->instance = $geogebra->id; $event->eventtype = 'due'; $event->timestart = $geogebra->timedue; $event->timeduration = 0; calendar_event::create($event); } } else { $DB->delete_records('event', array('modulename' => 'geogebra', 'instance' => $geogebra->id)); } // get existing grade item geogebra_grade_item_update($geogebra); return true; }
/** * Removes all grades from gradebook * @param int $courseid * @param string optional type */ function geogebra_reset_gradebook($courseid) { global $CFG, $DB; $params = array('courseid' => $courseid); $sql = "SELECT j.*, cm.idnumber as cmidnumber, j.course as courseid\n FROM {geogebra} j, {course_modules} cm, {modules} m\n WHERE m.name='geogebra' AND m.id=cm.module AND cm.instance=j.id AND j.course=:courseid "; if ($geogebras = $DB->get_records_sql($sql, $params)) { foreach ($geogebras as $geogebra) { geogebra_grade_item_update($geogebra, 'reset'); } } }