通过SQL重置Moodle课程



我帮助维护一个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

显然要先在开发服务器上进行备份和测试。

最新更新