スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[moodle]rebuild_course_cache($courseid=0, $clearonly=false)

パス:/www/moodle/course/lib.php

概要:
キャッシュされた一覧を再生成します(もちろんデータベースに保存する)。
再生成したcourseはglobal $COURSEへ出力されます。

//@function
function rebuild_course_cache($courseid=0, $clearonly=false);

@param int $courseid
- 再生成する対象のid、空ならすべてに対して行います。
@param boolean $clearonly
- modinfoフィールドを空にします、これは自動的な再生成中にも行われます。
//function内構造の概要
function rebuild_course_cache($courseid=0, $clearonly=false) {
global $COURSE;

//modinfoフィールドを空にする処理
if ($clearonly) {
//$courseidに指定されたコースのrecordsetを取得する
$courseselect = empty($courseid) ? "" : "id = $courseid";
set_field_select('course', 'modinfo', null, $courseselect);
// $COURSEも更新します。(空にする)
if ($courseid == $COURSE->id) {
$COURSE->modinfo = null;
}
// modinfoのchacheを空にする
$reset = 'reset';
get_fast_modinfo($reset);
return;
}

//コースid、または全件検索によるデータの取得処理
if ($courseid) {
$select = "id = '$courseid'"; //select文に、idを指定する
} else {
$select = ""; //指定なし
@set_time_limit(0); // this could take a while! MDL-10954
}

//recordsetを取得する(データ内:$rs->id,$rs->fullname mdl_courseのtableより取得)
if ($rs = get_recordset_select("course", $select,'','id,fullname')) {
while($course = rs_fetch_next_record($rs)) {
$modinfo = serialize(get_array_of_activities($course->id));
if (!set_field("course", "modinfo", $modinfo, "id", $course->id)) {
notify("Could not cache module information for course '" . format_string($course->fullname) . "'!");
}
// update cached global COURSE too ;-)
if ($course->id == $COURSE->id) {
$COURSE->modinfo = $modinfo;
}
}
rs_close($rs);
}
// reset the fast modinfo cache
$reset = 'reset';
get_fast_modinfo($reset);
}
このエントリーをはてなブックマークに追加

tag : moodle version 1.9.19+

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。