Posted at

Moodleのmodプラグインで活動完了を実装するには

More than 1 year has passed since last update.

Moodleの活動モジュールを開発する場合に、活動完了を実装する場合のノウハウです。


閲覧すれば活動完了のチェックを自動的につけるようにする


まずは「条件を満たした場合に、活動完了を表示する」を選択できるようにする

Moodleの活動(リソース)モジュールを開発する際に、完了トラッキングの設定で「条件を満たした場合に、活動完了を表示する」を選択できるようにするには、以下のように設定します。

20170118_175142#00.png


  1. lib.phpを開く。

  2. modname_supports($feature)でFEATURE_COMPLETION_TRACKS_VIEWSでtrueを返すように変更します。


lib.php

function modname_supports($feature)

{

switch ($feature) {
case FEATURE_MOD_ARCHETYPE: return MOD_ARCHETYPE_RESOURCE;
case FEATURE_GROUPS: return false;
case FEATURE_GROUPINGS: return false;
case FEATURE_MOD_INTRO: return true;
case FEATURE_COMPLETION_TRACKS_VIEWS: return true; // falseからtrueにする
case FEATURE_GRADE_HAS_GRADE: return false;
case FEATURE_GRADE_OUTCOMES: return false;
case FEATURE_BACKUP_MOODLE2: return true;
case FEATURE_SHOW_DESCRIPTION: return true;

default:
return null;
}
}



自動的にチェックするための実装

また、「完了するには学生はこの活動を閲覧する必要があります」をチェックした時に、Modを表示すれば自動的にチェックされるようにするには、以下も実装します。

20170118_175228#00.png


  1. lib.phpにmodname_view()関数を実装します。

  2. その中でcompletion_infoクラスのインスタンスを作成して、set_module_viewed()メソッドを呼びます


lib.php

function modname_view($instance, $course, $cm, $context) {

// Completion.
$completion = new \completion_info($course);
$completion->set_module_viewed($cm);
}

3.view.phpからmodname_view()を呼びます。

これにより、活動(リソース)モジュールの画面を表示すると、自動的にチェックマークがつくようになります。

20170118_180252#00.png


注意

この機能はMoodle3.0以降で利用できます。