モジュール (開発者)
提供:MoodleDocs
活動モジュールは、'mod'ディレクトリ内にあります。それぞれのモジュールは、別々のサブディレクトリに分かれていて、次の必須要素を含みます (+ 各モジュール特有のスクリプト):
- mod.html - 本モジュールのインスタンスを生成・更新するためのフォーム
- version.php - メタ情報を定義し,アップグレード用コードを提供
- icon.gif - モジュールを表す 16x16 のアイコン
- db/ - (各データベース形式毎の)必要な全てのDBテーブルとデータを生成するSQLコード
- index.php - コース内の全てのインスタンス一覧を表示するページ
- view.php - 特定のインスタンスを表示するページ
- lib.php - 本モジュールで定義されるあらゆる全ての関数はここに書く。例えばモジュール名が widget である場合,以下の関数が必須:
- widget_install() - モジュールのインストール中に呼び出される
- widget_add_instance() - widget の新しいインスタンスを追加するためのコード
- widget_update_instance() - すでに存在するインスタンスを更新するためのコード
- widget_delete_instance() - インスタンスを削除するためのコード
- widget_user_outline() - 特定のインスタンスに対するユーザの貢献のサマリを返す
- widget_user_complete() - 特定のインスタンスに対するユーザの貢献の詳細を表示する
- 必須ではないが,使用可能なその他の関数:
- widget_delete_course() - すべてのインスタンスが削除された後に残る残骸をすべてきれいに消すコード
- widget_process_options() - モジュール設定のフォームデータの前処理を行うコード
- widget_reset_course_form() と widget_delete_userdata() - コースのリセット 機能を実装するのに用いられる
- モジュール同士の衝突を避けるために,すべてのモジュール関数の名前には頭に widget_ を付け,モジュール内で定義されるすべての定数の名前には頭に WIDGET_ を付けなければならない。
- config.html - (任意) 全インスタンスに共通の設定を指定・更新するためのフォーム
- 最後に,各モジュールにはそれぞれの言語ファイルが含まれている。
重要: 新たなモジュールを作るときは,そのモジュール名には番号や特殊な文字を含めないように!
また,あなたが作る活動モジュールが,グループやメタコースを適切にサポートするようにしてください。
関連情報
- Tracker issue [https://tracker.moodle.org/browse/CONTRIB-52 CONTRIB-52 Improvements to make NEWMODULE really useful] - including download link for new module template supporting roles, formslib etc. (unfinished)
- http://download.moodle.org/plugins16/mod/NEWMODULE.zip - new module template for versions of Moodle prior to 1.7. Please follow the README instructions inside the zip.
- Using Moodle Activity modules forum
- Using Moodle A new resource type: where do I put the language strings? フォーラムでのディスカッション
- Using Moodle New Module Template Code for Moodle 1.7 フォーラムでのディスカッション