通过SQL重置Moodle课程

时间:2015-08-12 17:22:51

标签: php mysql sql sql-server moodle

我帮助维护moodle环境(版本1.9.7),每个学期我们需要对所有课程执行默认重置,但是每个学期都有 500个课程,每个课程有2到4个测验和这样做非常繁琐,需要很长时间。

我一直在寻找方法来执行 Mass / Bulk Course Reset 但到目前为止没有任何工作。例如this code

  

好的,我把它弄清楚了,但是非常顽皮。如果你不知道你是什么   正在做的不要使用这个代码,你可以对你做很多伤害   D B。这会将“默认”课程重置为所有课程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指令?我真的很感激任何帮助。

1 个答案:

答案 0 :(得分:1)

使用SQL我很难进行重置非常困难。重置代码也调用每个模块中的函数,因此它们可以自己做。

看起来你在正确的轨道上进行大量重置。

我建议升级。 Moodle 1.9.7现在很老了,不受支持。升级路线是:

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