/** * Update a module. * * It includes: * - capability and other checks * - update the module * * @param object $module * @return object the updated module info * @throws moodle_exception if current user is not allowed to update the module */ function update_module($moduleinfo) { global $DB, $CFG; require_once $CFG->dirroot . '/course/modlib.php'; // Check the course module exists. $cm = get_coursemodule_from_id('', $moduleinfo->coursemodule, 0, false, MUST_EXIST); // Check the course exists. $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST); // Some checks (capaibility / existing instances). list($cm, $context, $module, $data, $cw) = can_update_moduleinfo($cm); // Retrieve few information needed by update_moduleinfo. $moduleinfo->modulename = $cm->modname; if (!isset($moduleinfo->scale)) { $moduleinfo->scale = 0; } $moduleinfo->type = 'mod'; // Update the module. list($cm, $moduleinfo) = update_moduleinfo($cm, $moduleinfo, $course, null); return $moduleinfo; }
} else { print_error('noformdesc'); } $mformclassname = 'mod_' . $module->name . '_mod_form'; $mform = new $mformclassname($data, $cw->section, $cm, $course); $mform->set_data($data); if ($mform->is_cancelled()) { if ($return && !empty($cm->id)) { redirect("{$CFG->wwwroot}/mod/{$module->name}/view.php?id={$cm->id}"); } else { redirect(course_get_url($course, $cw->section, array('sr' => $sectionreturn))); } } else { if ($fromform = $mform->get_data()) { if (!empty($fromform->update)) { list($cm, $fromform) = update_moduleinfo($cm, $fromform, $course, $mform); } else { if (!empty($fromform->add)) { $fromform = add_moduleinfo($fromform, $course, $mform); } else { print_error('invaliddata'); } } if (isset($fromform->submitbutton)) { if (empty($fromform->showgradingmanagement)) { redirect("{$CFG->wwwroot}/mod/{$module->name}/view.php?id={$fromform->coursemodule}"); } else { $returnurl = new moodle_url("/mod/{$module->name}/view.php", array('id' => $fromform->coursemodule)); redirect($fromform->gradingman->get_management_url($returnurl)); } } else {