Moodleの活動モジュールを開発する場合に、活動完了を実装する場合のノウハウです。
閲覧すれば活動完了のチェックを自動的につけるようにする
まずは「条件を満たした場合に、活動完了を表示する」を選択できるようにする
Moodleの活動(リソース)モジュールを開発する際に、完了トラッキングの設定で「条件を満たした場合に、活動完了を表示する」を選択できるようにするには、以下のように設定します。
- lib.phpを開く。
- 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を表示すれば自動的にチェックされるようにするには、以下も実装します。
- lib.phpにmodname_view()関数を実装します。
- その中で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()を呼びます。
これにより、活動(リソース)モジュールの画面を表示すると、自動的にチェックマークがつくようになります。
注意
この機能はMoodle3.0以降で利用できます。