三重大学版Moodle 1.9.4+ (20090318) を使っていて、コースのリストアをしようとしたのですが、リストア画面の一番最後の「このコースをリストアする!」というボタンを押した後、サーバからの返事がないままになってしまいました。
CentOS5.2をサーバに使っているのですが、サーバのApacheのログを見たところ、こんなエラーがありました。
[Thu Mar 26 18:41:29 2009] [error] [client XXX.XXX.XXX.XXX]
PHP Notice: Undefined property: stdClass::$id in /moodle-dir/lib/dmllib.php on line 437,
referer: http://hogehoge.jp/moodle/backup/restore.php
で、lib/dmlib.php の該当箇所を見たところ、次のような処理が書かれていました。これは本家にも、最近まで使っていた三重大版1.9.2 (20080723) にもない処理でしたので、たぶん三重大版1.9.4(もしくは1.9.3)だけの処理だと思うのですが…
// fukuyama: record hook if $table == course
// <----------------------------------
if ($table == 'course') {
if (isset($CFG->obsoleted_courses_dir)) {
$record->obsoletecourse = 0;
if (file_exists($CFG->obsoleted_courses_dir.'/'.$record->id)) {
$record->obsoletecourse = 1;
}
}
}
// ---------------------------------->
この部分を削除するとリストアは成功します。
この処理に対応する部分が、ファイルの最後の方にもあるので、どうしたらよいものやら迷っています。