0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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以降で利用できます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?