我想用PHP創建一個論壇到Moodle課程(由用戶指定)。通過外部PHP在Moodle創建論壇
我試過尋找它的網絡,但我還沒有找到任何東西,即使在Moodle的webservices(我找不到函數來創建一個論壇)。
的想法是選擇課程(一個在他/她會學習),選擇「單元」,插入一個標題和內容,並提交(該用戶其餘選項可以是默認選項)。
我可以從數據庫檢索所需的所有數據,但是我無法創建任何論壇。我已經嘗試通過SQL添加它,但我還沒有能夠也沒有。
希望這裏有人能幫助我!
謝謝你的時間。
我想用PHP創建一個論壇到Moodle課程(由用戶指定)。通過外部PHP在Moodle創建論壇
我試過尋找它的網絡,但我還沒有找到任何東西,即使在Moodle的webservices(我找不到函數來創建一個論壇)。
的想法是選擇課程(一個在他/她會學習),選擇「單元」,插入一個標題和內容,並提交(該用戶其餘選項可以是默認選項)。
我可以從數據庫檢索所需的所有數據,但是我無法創建任何論壇。我已經嘗試通過SQL添加它,但我還沒有能夠也沒有。
希望這裏有人能幫助我!
謝謝你的時間。
如果要直接建立一個論壇,然後你需要做以下步驟 -
插入記錄(如果不存在)或更新記錄到mdl_course_section與下面的值,並得到sectionid 當然= courseid,可見= 1,序列=的moduleId(逗號seprated),
更新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);
不幸的是,我沒有50分置評,因此從Jitendra的出色答卷增編進爲「答案」。在Moodle 2.4上,add_mod_to_section()已被廢棄,所以應該更改爲:
$sectionid = course_add_cm_to_section ($courseid, $mod->coursemodule, $sectionid, null);
非常感謝您的回答!讓我們看看它是否符合我的需求! – Unapedra
@Adracat您的歡迎。如果有其他問題讓我知道。 –
你能幫我把表格直接註冊一門課程嗎?我想mdl_enrol,mdl_user_enrolments,mdl_role_assignments和mdl_context,最後一張表,我不明白什麼樣的記錄包含。謝謝 – Diego