0

PHP を使用して、(ユーザーが指定した) Moodle コースにフォーラムを作成したいと考えています。

私はそれをネットで検索しようとしましたが、Moodle Webサービスでも何も見つかりませんでした(フォーラムを作成する機能が見つかりません)。

アイデアは、ユーザーがコース(彼/彼女が勉強するコース) を選択し、「ユニット」を選択し、タイトルとコンテンツを挿入して送信することです (残りのオプションはデフォルトのものにすることができます)。 .

データベースから必要なすべてのデータを取得できますが、フォーラムを作成できませんSQL経由でも追加しようとしましたが、どちらもできませんでした。

ここの誰かが私を助けてくれることを願っています!

御時間ありがとうございます。

4

2 に答える 2

3

直接フォーラムを作成したい場合は、次の手順を実行する必要があります -

  1. 新しいレコードを mdl_forumテーブルに挿入し、挿入された ID を取得します
  2. 次の値でmdl_course_moduleテーブルに新しいレコードを挿入します course=courseid,module=7(フォーラムの場合、moodle 2.9 ではフォーラム ID は 9)、instance=fourmid,visible=1,showavailability=1
  3. 存在しない場合はレコードを挿入するか、レコードを次の値でmdl_course_sectionに更新し、sectionid course = courseid、visible = 1、sequence = moduleid(カンマ区切り)、を取得します。

  4. 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);
于 2012-12-07T11:33:52.603 に答える