Download - Moodle Tokyo Cafe #12 Developer's
今話をしている人について不破 崇行 ( ふわ たかゆき )今年の 5 月に横浜へ引っ越しました
4 月まで札幌にいました。日本ムードル協会 元理事 ( 〜 2013)
会員管理担当理事でしたMoodle プラグイン「マミライン」作者です。
今日の目標Moodle の内部的な動きを理解
プラグインのインストーラからいきましょう。「ブロック」の動きについて理解
どういう処理をしてるのかを見てみましょう「あー、こうやって実装すればいいんだ」と思
えるようになりましょう。
デベロッパー視点で見る MOODLE
Apr 12, 2023
5Copyright© atWare,Inc. All rights reserved.
実装で使用している言語などPHP
5.4.x 以上推奨ですCSS
2.7 から Bootstrap を使用したテーマが標準になりました。
レスポンシブ対応Javascript
yahoo.com( アメリカ ) が公開している YUI Framework を使っています
が、 jQuery へ徐々に移行している状態
Apr 12, 2023
6Copyright© atWare,Inc. All rights reserved.
開発者モード「サイト管理」 -> 「開発」
Apr 12, 2023
7Copyright© atWare,Inc. All rights reserved.
デバッグ設定
Apr 12, 2023
8Copyright© atWare,Inc. All rights reserved.
ページ下にずらずら出てくる
Apr 12, 2023
9Copyright© atWare,Inc. All rights reserved.
開発で特に重要な値contextid
ページに割り振られるユニークな IDcontext の取得方法は状況に応じて色々変わるcontext:: クラスを主に使用するget_context() は 2.7 から廃止 ( 削除されました )2.6 までは一応使えるけど「非推奨」
Apr 12, 2023
10Copyright© atWare,Inc. All rights reserved.
キャッシュMoodle 本体でキャッシュを持っている
DB に書き込む形で確保 ブラウザで持っているキャッシュとは別
言語ストリングをキャッシュしているので注意プラグイン開発中に、途中で言語ファイルを書
き換えた場合はキャッシュを削除する管理者設定でキャッシュさせないことができる
プラグインの種類ブロック (block)モジュール (mod)クイズタイプ (qtype)ローカル (local)管理者プラグイン (admin)
大きく分けると 3 つになります。
モジュール (mod)
モジュール (mod)”Activity”( 活動 ) と” Resource”( リソー
ス ) の 2 つがあります
モジュール名 中身 種類
mod_quiz 小テスト Activity( 活動 )
mod_assign 提出課題 Activity( 活動 )
mod_forum フォーラム Activity( 活動 )
mod_url URL リンク Activity( 活動 )
モジュールの特徴評点が出来る
(Grade” 評定”にアクセスできる )
モジュールの特徴ページを持たせる
モジュールのコツ生徒側のアクション ( 受講や提出など ) が大き
い場合ページ遷移が多い場合「受講」 (attempt) というアクションがある
場合
いずれかに該当する場合は mod での開発をおすすめします。
ブロック (block)トップ ( コース ) ページの左右に付随「ウィジェット」的存在
ブロック (block) の特徴 学生の目にとまりやすい
注意を引きつけるのに便利 条件をつけて表示できる
締め切りが近づいたらおしらせするとか
パーミッションで表示を切り替える事ができる 教員ロールを持っているユーザにだけ表示させるなど
何かと自由度が高い Moodle で 2番目ぐらいに自由で型破りなことが出来る
お手軽に作れる 今日のターゲットはこれです!
ブロックの実例お知らせ系Moodle 上の更新情報RSS リーダー
学校HP の RSS やニュースサイト
ブロックの実例Sharing CartMoodle では出来ない「コースをまたいだ」教材のコピーが出来る
コピーしたいコースにブロックを追加
ブロックの実例マミライン
実装例 : 「かぶせもの」ポップアップでウィンドウを作って「かぶせ
る」方法Moodle からある程度切り離す
ウィンドウを作って表示させる
Apr 12, 2023
23Copyright© atWare,Inc. All rights reserved.
「かぶせもの」のメリット使いたい API だけを選んで使えるMoodle のテーマを無視できる
テーマを読み込まないように出来る デザインを自由に設定出来る
Apr 12, 2023
24Copyright© atWare,Inc. All rights reserved.
MOODLE-API について
Apr 12, 2023
25Copyright© atWare,Inc. All rights reserved.
API?Moodle 本体の機能として、 API を用意して
います。プラグインは API を使用して Moodle と通信
をして動作しています。
Apr 12, 2023
26Copyright© atWare,Inc. All rights reserved.
HTML タグを出力html_writerhtml タグを生成するクラス
セキュリティ的な観点から、 html_writer の利用を推奨します。エスケープ処理を Moodle 側でやってくれる
echo html_writer::tag(‘div’, ‘ あいうえお’ );
これは
echo ‘<div> あいうえお </div>’;
と等価
Apr 12, 2023
27Copyright© atWare,Inc. All rights reserved.
グローバル変数によるアクセスグローバル変数から Moodle API にアクセス
$DB, $OUTPUT, $PAGE, $USER などなど。
global $DB;
$data = $DB->get_records(‘mdl_users’, array(///));
でデータベースからデータを取得できる
Apr 12, 2023
28Copyright© atWare,Inc. All rights reserved.
次回はどうする ?block_cafe_attend ブロックに機能をどんど
ん追加する方向で話を進めていきましょう!
次回はデータベースへの接続へDB を定義する xml ファイルSQL を書かずに DB へ接続してデータを取得しよう 出欠情報を記録できれば OK