22. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■手順5)MoodleのModフォルダにコピーする
■手順6)管理者にてMoodleにログイン、プラグインのインストール
■手順7)最低限の動作を確認できたら、PHPのコードを記述(スライドパズル埋込)
■手順8)完成!
Part2 : 各種プラグインの開発例
3. 活動モジュール開発のポイント⑤
Page. 22
・Modフォルダに「slidepuzzle」を戻す
・管理者でログインしプラグインをインストール。
・コースに「スライドパズル」を配置(エラーでない)
・素材(画像・音楽・スクリプト)を配置
・view.php内に「スライドパズル」を埋め込む
MoodleのMod
フォルダにコピー
「Moodleデータベー
スを更新」を押して
インストールする
コースに活動モジュールの
追加から「スライドパズル」
を配置してみる
view.phpにスライドパズル用のHTMLソースを埋め込む
※スライドパズルそのものはMoodleと関係なくHTML5で作成
「スライドパズル」
の完成(遊べます)
23. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■プラグイン「活動モジュール」の構成
moodle/mod フォルダ内にプラグインをフォルダごと置く
Part2 : 各種プラグインの開発例
3. 活動モジュール開発のポイント⑥
Page. 23
フォルダ/ファイル 説明/役割
backup/moodle2/xxx.php コースのバックアップ・リストア時の処理
db/access.php、install.xml DBのテーブル定義、権限、ログ処理等
lang/言語 /プラグイン名.php 言語定義ファイル(en や ja)を配置する
pix/各種画像等、icon.png 各種画像、プラグインのアイコン
index.php 活動モジュールの共通ページ(管理向け)
lib.php 活動モジュールの共通処理
mod_form.php 活動モジュールの設定画面
view.php メイン画面のプログラム
version.php プラグイン(活動モジュール)の定義
24. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■活動モジュールの共通処理(lib.php、locallib.php)
コースへの追加・削除時等のプラグインで定義された振る舞いを記述する
● モジュールの追加・変更・削除イベント(Moodle本体から呼ばれる)
function モジュール名_add_instance (モジュール情報)
function モジュール名_update_instance (モジュール情報)
function モジュール名_delete_instance (モジュールのID)
● その他のイベント(こちらも記述があればMoodle本体から呼ばれる)
function モジュール名_complete
⇒ 受講者が完了させたときの処理
function モジュール名_cron
⇒ スケジューリング処理
function モジュール名_extend_navigation
⇒ ナビゲーションの処理(独自メニューを追加等)
Part2 : 各種プラグインの開発例
3. 活動モジュール開発のポイント⑦
Page. 24
25. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■メインプログラム(view.php)
●活動モジュールのメイン画面(講師や受講者がコース内で閲覧する画面)
⇒ 記述内容は自由だが、ある程度流れが決まっている。
プログラムの流れ
1)Moodleの設定(config.php)、ライブラリ(lib.php)の読み込み
2)コース内モジュールIDの取得とモジュール・コース情報のロード
3)ログイン・権限チェック
4)ページURL・タイトル・ヘッダー情報のセットと出力
5)モジュール独自の処理と出力(ここがメイン)
6)フッター情報の出力
Part2 : 各種プラグインの開発例
3. 活動モジュール開発のポイント⑧
Page. 25
・echo $OUTPUT->header(); から
echo $OUTPUT->footer();の間に記述
・HTMLを埋め込んでも良い
(スライドパズルの場合はHTMLを埋込み
クライアントJavaScriptで動作させる)