コースのリストアを行うとmdl_course_modulesのidnumberに$@NULL@$が入る

コースのリストアを行うとmdl_course_modulesのidnumberに$@NULL@$が入る

- 居間中 太郎 の投稿
返信数: 3

夜分遅くに失礼いたします。

コースのリストアを行った際に、mdl_course_modulesのidnumberに$@NULL@$という値が入ってしまいます。

特に、動作に支障はないのですが気持ちが悪いです。

どなたかこの件についてお詳しい方いらっしゃいましたら、ご解答いただきたいと存じ上げます。

よろしくお願いいたします。

(編集 Tatsuya Shirai - 最初の投稿日時 2010年 04月 9日(金曜日) 01:42)

2010/04/10に全般的日本語フォーラムから移動しました.

居間中 太郎 への返信

Re: コースのリストアを行うとmdl_course_modulesのidnumberに$@NULL@$が入る

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
Linuxをお使いでしたら、Moodleのホームディレクトリに入って、下記のようなコマンドを実行することで、自力で探せると思いますよ。笑顔

find . -name "*.php" -exec grep -Hn @NULL@ {} \;

具体的には、backup/backuplib.phpの425行目くらいに「$@NULL@$」を入れている部分があります。

//Return the start tag, the contents and the end tag
function full_tag($tag,$level=0,$endline=true,$content,$attributes=null) {

global $CFG;
//Here we encode absolute links
// MDL-10770
if (is_null($content)) {
$content = '$@NULL@$';
} else {
$content = backup_encode_absolute_links($content);
}
$st = start_tag($tag,$level,$endline,$attributes);

$co = xml_tag_safe_content($content);

$et = end_tag($tag,0,true);

return $st.$co.$et;
}


同じく、backup/backuplib.phpの675行目に、idnumberに「$@NULL@$」を入れている部分があります。

fwrite ($bf,full_tag("IDNUMBER",3,false,$course->idnumber));

Mitsuhiro Yoshida への返信

Re: コースのリストアを行うとmdl_course_modulesのidnumberに$@NULL@$が入る

- 居間中 太郎 の投稿
ご返信ありがとうございます。

恐縮ですが重ねてご質問させていただくと、idnumberに'$@NULL@$'が入っているとき、コースのリストアを行った際に、mdl_course_modulesのidnumberにNULLになります。

動作的にはこれで正しいのでしょうか。

よろしくお願いいたします。
居間中 太郎 への返信

Re: コースのリストアを行うとmdl_course_modulesのidnumberに$@NULL@$が入る

- 居間中 太郎 の投稿
本件について解決いたしました。

moodle/backup/lib.phpの574行目に

function backup_todb ($data, $addslashes=true) {
// MDL-10770
if ($data === '$@NULL@$') {
return null;
} else {
if ($addslashes) {
$data = addslashes($data);
}
return restore_decode_absolute_links($data);
}
}

という記述がありました。

皆様、ありがとうございました。