直接フォーラムを作成したい場合は、次の手順を実行する必要があります -
- 新しいレコードを mdl_forumテーブルに挿入し、挿入された ID を取得します
- 次の値でmdl_course_moduleテーブルに新しいレコードを挿入します course=courseid,module=7(フォーラムの場合、moodle 2.9 ではフォーラム ID は 9)、instance=fourmid,visible=1,showavailability=1
存在しない場合はレコードを挿入するか、レコードを次の値でmdl_course_sectionに更新し、sectionid course = courseid、visible = 1、sequence = moduleid(カンマ区切り)、を取得します。
mdl_course_moduleテーブルを更新し、sectionid を更新します
最後にmoodle couresキャッシュを再構築します
これは、新しい fourm を作成するための moodle コードです。
$forum = new stdClass();
$forum->course = $courseid;
$forum->type = "general";
$forum->timemodified = time();
$forum->id = $DB->insert_record("forum", $forum);
if (! $module = $DB->get_record("modules", array("name" => "forum"))) {
echo $OUTPUT->notification("Could not find forum module!!");
return false;
}
$mod = new stdClass();
$mod->course = $courseid;
$mod->module = $module->id;
$mod->instance = $forum->id;
$mod->section = 0;
if (! $mod->coursemodule = add_course_module($mod) ) { // assumes course/lib.php is loaded
echo $OUTPUT->notification("Could not add a new course module to the course '" . $courseid . "'");
return false;
}
if (! $sectionid = add_mod_to_section($mod) ) { // assumes course/lib.php is loaded
echo $OUTPUT->notification("Could not add the new course module to that section");
return false;
}
$DB->set_field("course_modules", "section", $sectionid, array("id" => $mod->coursemodule));
include_once("$CFG->dirroot/course/lib.php");
rebuild_course_cache($courseid);