我帮助维护一个moodle环境(1.9.7版本),每个学期我们都需要对所有课程进行默认重置,但是有近 500 课程,每个课程都有一个论坛和两到四个小测验,这样做非常繁琐,需要很长时间。
我一直在到处寻找执行质量/批量课程重置的方法,但到目前为止没有任何工作。例如下面的代码:
好的,我明白了,但是要非常小心。如果你不知道你正在做的事情不使用这个代码,会对你造成很大的伤害吗DB。将"默认"课程重置为属性中的所有课程id数组。<?php require('../config.php'); require_once('reset_form.php'); $courseids = array(8,9,11); foreach ($courseids as &$value) { $data->MAX_FILE_SIZE = 8097152; $data->reset_start_date = 1251781200; $data->reset_events = 1; $data->reset_logs = 1; $data->reset_notes = 1; $data->reset_roles = Array(5); $data->mform_showadvanced_last = 0; $data->reset_roles_local = 1; $data->reset_gradebook_grades = 1; $data->reset_assignment_submissions = 1; $data->reset_forum_all = 1; $data->id = $value; $status = reset_course_userdata($data); } ?>
有人知道执行默认重置时使用哪些SQL指令吗?我非常感谢你的帮助。
恐怕仅用SQL很难进行重置。重置代码也调用每个模块中的函数,所以它们可以做自己的事情。
看起来你是在正确的轨道上重置批量。
我建议升级。Moodle 1.9.7现在非常老,不受支持。升级路由为:
- 升级到最新1.9,即1.9.19+ https://download.moodle.org/releases/legacy/
- 升级到2.2 https://docs.moodle.org/22/en/Upgrading_to_Moodle_2.2
- 升级到2.9 https://docs.moodle.org/29/en/Upgrading
显然要先在开发服务器上进行备份和测试。