SlideShare a Scribd company logo
1 of 28
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
開発初心者のための
Moodleプラグインの開発と利用
Time: 2015.2.21 09:30-11:00 Room: 5405
株式会社テクノウォーカー 山岡 茂治
7th Conference for Moodle Teachers and Developers
Moodle moot japan 2015
Page. 1
Part1:Moodleプラグイン開発の概要(40分)
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
Page. 2
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
発表内容 –Agenda- ※2部構成40分+40分
• Part1:Moodleプラグイン開発の概要(40分)
– はじめに(プラグイン開発について)
• Moodleのプラグイン開発についての概要と流れ
– XAMPP、エディタ、DBツールを使った開発環境の整備
• Moodleの開発環境を無償のツールで揃える方法
– PHPプログラミング基礎の基礎
• 初心者が最低限知っておくPHPの書き方、デバッグの仕方
– プラグインの開発方法
• プラグインの仕組みと構成、開発の手順を紹介
– プラグイン開発例(既存ブロックのコピー)
• HTMLブロックをコピーし、オリジナルのブロックを作成
Page. 3
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
発表内容 –Agenda- ※2部構成40分+40分
• Part2 : 各種プラグインの開発例(40分)
– ブロック開発のポイント
• Part1に続き、ブロック開発に必要なポイントの紹介
– テーマの開発とポイント
• Cleanテーマをコピーし、オリジナルを作成
テーマ開発の流れと開発に必要なポイントを紹介
– 活動モジュールの開発とポイント
• モジュールテンプレートをコピーし、オリジナル「15パズル」を作成
活動モジュール開発の流れと必要なポイントを紹介
– まとめ・質疑応答
• 弊社オリジナルの開発事例の紹介(ローカルプラグイン等)
• まとめと質疑応答
Page. 4
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■はじめに
moodle moot 2014 Okinawa に引き続き発表をさせて頂きます。
前回は、弊社サイトや事例を中心に紹介しましたが、今回はMoodleの
プラグイン開発に関する仕組みや開発手順の紹介です。
■開発をするにあたって必要なこと
① Moodleに関する基礎知識(コースやモジュール、ユーザーなどの概念)
② HTMLおよびPHP(プログラミング)の知識
③ 開発をするための環境・ツールの用意
④ やってみようという好奇心・やらなきゃいけない状況に追い込む
本日の発表では、プログラミングの知識が無くても
プラグイン開発の第一歩を踏み出せることが目標です
Part1:Moodleプラグイン開発の概要
1. はじめに(プラグイン開発について)①
Page. 5
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■Moodleの開発者向け情報
・Moodle.orgに(昔より)充実した情報 (但し英語です)
https://docs.moodle.org/dev/Main_Page
・弊社Moodle情報サイトにも今後開発者向け情報を掲載予定です。
http://www.twalker.co.jp/moodle/
Part1:Moodleプラグイン開発の概要
1. はじめに(プラグイン開発について)②
ページには以下の内容が掲載
●Overview
概要やロードマップなどの情報
●Plugin development
各種プラグイン開発の情報
●Core APIs
Moodleの内部APIについての情報
●Guidelines
開発についてのガイドライン
●Developer tools
開発ツールの紹介等
●Projects
Moodleの特定分野に関するプロジェクト
Page. 6
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■開発をするための環境1 Moodle本体の用意
当然ですが、Moodle本体が必要です。
Moodle本体を動かすには「Apache・PHP・MySQL」も必要です。
⇒ Moodle.org から XAMPP+Moodleをダウンロード
Part1:Moodleプラグイン開発の概要
2. XAMPP、エディタ、DBツールなどの開発環境の整備①
ダウンロード&Moodleセットアップ手順
① Moodle.orgの「Downloads」から、画面左下の「Latest release」をクリック
② 更に「Moodle installer package for xxx」をクリック
③「Download.zip」から、ZIPファイルをダウンロード
Page. 7
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■開発をするための環境1 Moodle本体の用意(続き)
Part1:Moodleプラグイン開発の概要
2. XAMPP、エディタ、DBツールなどの開発環境の整備②
Page. 8
ダウンロード&Moodleセットアップ手順
④ デスクトップやCドライブへZIPファイルを解凍
⑤ 解答したフォルダ内の Start Moodle.exe をWクリック
⑥ ブラウザを起動し http://localhost/ (またはlocalhost:8080)と入力
⑦ Moodleのセットアップを実行
※⑤にて、既に80番ポートが他のアプリケーション等で起動できない場合は
Apacheの動作ポートを80から8080等に変更します。
ServerApacheConfhttpd.conf をメモ帳で編集し
58行目付近のListen 80 を Listen 8080 に変更・保存します
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■開発をするための環境2 エディタ・DBツールの用意
高価な開発ツールもありますが、最初は以下のものがあれば十分です
●テキストエディタ
「EmEditor」 https://jp.emeditor.com/
「さくらエディタ」http://sakura-editor.sourceforge.net/
⇒ メモ帳だと少し物足りないが、色が付く程度の機能があれば良い
Part1:Moodleプラグイン開発の概要
2. XAMPP、エディタ、DBツールなどの開発環境の整備③
Page. 9
メモ帳で config.php を
開いたところ
EmEditorで config.php を
開いたところ
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■開発をするための環境2 エディタ・DBツールの用意
高価な開発ツールもありますが、最初は以下のものがあれば十分です
●DBツール
「A5:SQL Mk-2」http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/
⇒ matsubara様が開発・公開している無償のツールです。
リモートDB管理(SSH転送)、ER図の作成、SQLや定義書の生成など
Part1:Moodleプラグイン開発の概要
2. XAMPP、エディタ、DBツールなどの開発環境の整備④
Page. 10
※弊社の場合は XAMPP+
Visual Studio+PHP拡張機能
とEmEditor、A5:SQL Mk-2、
Subverion(ソース管理)に
て開発をしています
ホームページ(ソフト本体は
Vectorからダウンロード)
開発環境のMoodleDBに接続し、
Userテーブルを編集している画面
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■PHPのプログラミングについて
MoodleはPHPという言語で作られています。
PHPやプログラミングを知らなくても、以下のことだけ知っておく。
1)PHPの記述方法、コメント
⇒ プログラムの中身は知らなくても、書き方は理解しておきます
2)変数とは
⇒ 何らかのデータが入った箱(変数)の概念について理解しておく
3)echo と exit、var_dump
⇒ Moodleの動きを知るためで必要(途中で中身を見る・止める)
※もちろん、本格的に開発をするなら覚える必要はあります
( PHPについては、市販のテキストや講習会なども豊富です)
Part1:Moodleプラグイン開発の概要
3. PHPプログラミング基礎の基礎①
Page. 11
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
1)PHPの記述方法・コメント
●ファイル名は xxxxx.php とする
例)hello.php ⇒ PHPのプログラム(かもしれない)
●プログラムは <?php … ?> の … の部分に書く
<?php echo “こんにちは”; ?>
<?php
…(いろいろなプログラム処理)
?>
●HTML(ホームページの記述方法)と混在して記述する
例)<h1><?php echo $title; ?></h1>
● // または /* ~ */ でコメント
(コメント部分はプログラムは実行されない)
例)// echo “こんにちは”; ⇒ 実行されない
Part1:Moodleプラグイン開発の概要
3. PHPプログラミング基礎の基礎②
Page. 12
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
2)変数とは
・データを格納する「箱」 数学の方程式 x=1 と同じ、上書きされる
・PHPでは $名前 と指定する
・変数の中には、文字列、数値、日時、オブジェクト(機能の集まり)
などが格納される(これらをデータ型という)
Part1:Moodleプラグイン開発の概要
3. PHPプログラミング基礎の基礎③
Page. 13
ID: 2
Lastname: 山田
Email: xxxx@xxxxx
$count
$count = 1
1
$count
$count = 3
31
後の処理で上書きされる
$count = $count + 4
3 3 + 4
$count
上書きの前に、変数の値を
足しこんで格納(=7)
$count
1.23
$text
“あいう”
$date
“2014/4/1
12:34:56”
$USER
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
3)echoとexit、var_dump …プログラムのデバッグ(調査)に必要
● 中身を画面に表示させる
echo 文字列; または echo $変数;
● プログラムをその場で終了させる
exit; (と書くだけ)
●とにかく何が入っているかを見る
var_dump($変数);
Part1:Moodleプラグイン開発の概要
3. PHPプログラミング基礎の基礎④
Page. 14
例)
echo “<hr>”;
var_dump($PAGE);
exit;
/index.php の最終行 echo $OUTPUT->footer(); の処理の上に
$PAGE(ページ情報の格納した変数)に関する情報を出力した例
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■プラグインの開発方法
一般的?には以下のどちらかからスタート
① Moodle.org からテンプレートをダウンロードして利用する(第二部)
⇒ まっさらな状態から開発するため、手間はかかるが、
その分、自由に作成しやすい
② 既存のモジュールをコピーしてオリジナルにする(第一部)
⇒ 各種処理が自前で実装しなくて作業量が減るがモジュール名の
書き換え作業の漏れなども発生しやすい
■開発の流れ
1)目的・機能を決定し、プラグインの種類を決める
2)必要なデータ構造を考える(独自にデータを格納する場合)
続く
Part1:Moodleプラグイン開発の概要
4. プラグインの開発方法①
Page. 15
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■開発の流れ(続き)
3)プラグインのテンプレートまたは既存のプログラムをコピー
4)自動インストール用のデータ構造定義ファイル(XML)を用意する
5)プラグイン内のファイル名やプログラムの関数名などを書き換える
6)version.phpやlang/プラグイン名.phpなどの基本情報を書き換える
7)一旦Moodleへプラグインを配置し、正常登録できるか確認する
8)各プラグインの主要処理を記述する
9)ブラウザでMoodle上に配置されたプラグインの動作を確認する
10)8~9を繰り返しで完成させたら、7~9の動きをテスト
※通常のソフトウェア開発会社の場合は、工程管理の上で
要件定義書や設計書の作成など、体系的に組織して開発をお
こなっています。
Part1:Moodleプラグイン開発の概要
4. プラグインの開発方法②
Page. 16
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■Moodleのプラグインの種類(一例)
サイト管理 – プラグイン – プラグイン概要
※その他、数多くのプラグインが定義されている
開発するプラグインが、どの種類に該当するかによって、
ルール(規約)が異なります。プラグインの目的・機能を
明確にし、プラグインの種類に合わせて開発をおこないます
Part1:Moodleプラグイン開発の概要
4. プラグインの開発方法③
Page. 17
種類 内容
ブロック 画面左右に配置し、補助的な機能を提供
テーマ Moodle画面のデザインを提供する
活動モジュール コース内のコンテンツを提供する
ローカルプラグイン 独自の機能などを提供する
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■Moodleの主要APIと機能
Moodleの各種機能をプログラムから利用 ⇒ Moodle Core API
良く利用する主要API https://docs.moodle.org/dev/Core_APIs
Part1:Moodleプラグイン開発の概要
4. プラグインの開発方法④
Page. 18
APIの種類 内部表記 内容
権限チェック ログインや権限のチェック機能など
データ操作 $DB データベースの内容の取得・追加・更新・削除の機能
ファイル操作 ($file) 保存されたファイルの取得やファイルの格納
ログ操作 ($event) Moodleログの入出力機能
ページ $PAGE ヘッダーやフッターの設定をおこなう
出力 $OUTPUT ヘッダーやコンテンツの出力(レンダリングされる)
言語定義 $string[‘’] 言語ごとの表記定義
設定 $CFG Moodle本体やプラグイン設定の取得と更新
ユーザー $USER ログインしているユーザーの情報
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■ $CFG(表記固定) … Moodle本体やプラグイン設定の取得と更新
●$CFG->設定名 にてMoodleの設定が取得できる
例)echo $CFG->wwwroot; // MoodleのURL(http://localhost 等)
●各種モジュールの設定は、get_configを使って取得可能
$設定値 = get_config(モジュール名, 設定名);
●各種モジュールの設定は、set_configを使って設定可能
set_config(設定名, 初期値, モジュール名);
■ $USER(表記固定) … ログインしているユーザーの情報
●ログインしているユーザーのプロファイル情報を取得できる
$USER->id … ログインしているユーザーの内部ID
$USER->username … ユーザーのログイン名
$USER->preference … パスワード更新日時、ログイン失敗回数など
それぞれ困ったら var_dump で中身を探ってみると良いかも
※function ~ の中で使うには global $CFG, $USER の宣言が必要
Part1:Moodleプラグイン開発の概要
4. プラグインの開発方法⑤
Page. 19
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■ $PAGE(表記固定) … ヘッダーやフッターの設定をおこなう
●ページ情報の設定例
$PAGE->set_title(“ページタイトル”) … ページのタイトルを変更
$PAGE->set_pagelayout(“standard”) … テーマのレイアウトを変更
$PAGE->requires->js(“xxxxx.js”) … 独自のJSファイルをセット
■ $OUTPUT(表記固定) … ヘッダーやコンテンツの出力等
●Moodleで独自ページを生成する場合(ローカルプラグイン等)
echo $OUTPUT->header();
echo “HTMLなどのコンテンツ本体”;
echo $OUTPUT->footer();
※$PAGEや$OUTPUTは通常のプラグイン開発では
あまり意識しないことが多いです。独自のページを作る
場合などに用います。
Part1:Moodleプラグイン開発の概要
4. プラグインの開発方法⑥
Page. 20
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■ $DB(表記固定) … データベース(表)のデータの取得や更新
●データの取得(1件)
$結果 = $DB->get_record(モジュール名, 取得条件);
例)$course = $DB->get_record('course', array('id'=>2));
●データの取得(複数)
$結果 = $DB->get_records(モジュール名, 取得条件, 並び順);
●データの追加・更新・削除
$登録後ID = $DB->insert_record(モジュール名, $変数)
$DB->update_record(モジュール名, $変数)
$DB->delete_records(モジュール名, 条件)
例)$id = $DB->insert_record('book', $book);
●SQLの実行
$DB->execute(“SQL文”);
Part1:Moodleプラグイン開発の概要
4. プラグインの開発方法⑦
Page. 21
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■Moodleの主要関数
Moodle Core APIに含まれており、どこからも利用できる関数
良く利用する主要関数
●ログインチェック
require_login(); // 未ログインの場合にログインページへ
●セッションチェック
require_session(); // 想定されている操作か調べる(入力フォーム等)
●値(ユーザー入力値等)の取得
$結果 = required_param(名前, 値の種類); // 失敗時エラー
$結果 = optional_param(名前, 既定値, 値の種類); // 失敗時既定値
例)
$id = required_param(“id”, PARAM_INT);
$name = optional_param(“name”, PARAM_RAW);
echo $id;
echo $name;
※他にも多くの関数や機能がありますが、本日はここまで。
Part1:Moodleプラグイン開発の概要
4. プラグインの開発方法⑧
Page. 22
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■既存モジュールのコピーからブロックモジュールを作ってみる
簡単そう?(失礼!)なHTMLモジュールをコピーして作成
(ブロックのHTMLモジュールは実装も分かりやすく良い手本)
【オリジナルモジュールへの手順】
1)ブロックモジュール「html」をコピーして「hello」にする
2)モジュール名「html」の記述をすべて hello に変更する
3)ファイル名 block_html を全て block_hello に変更する
4)(大変なので)余計なファイル・コードを消す
5)MoodleのBlocksフォルダにコピーする
6)管理者にてMoodleにログイン、プラグインのインストール
7)最低限の動作を確認できたら、PHPのコードを記述
8)完成!
それでは実際にやってみます。
Part1:Moodleプラグイン開発の概要
5. プラグインの開発例(ブロックモジュール)①
Page. 23
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■手順1)「html」をコピーして「hello」にする
■手順2)「html」の記述をすべて hello に変更
■手順3)ファイル名 block_html を全て block_hello に変更
■手順4)(大変なので)余計なファイル・コードを消す
Part1:Moodleプラグイン開発の概要
5. プラグインの開発例(ブロックモジュール)②
Page. 24
・x_html_x.php などのファイル名を
すべて x_hello_x.phpにする
・Backup、DB、Testsフォルダを削除
・PHPプログラムの html を hello に
書き換える(エディタの一括置換)
Langフォルダ以外削除
ファイル名を変更
フォルダをコピーし、
リネームする
エディタの置換機能で
html ⇒ hello へ
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
■手順5)MoodleのBlocksフォルダにコピーする
■手順6)管理者にてMoodleにログイン、プラグインのインストール
■手順7)最低限の動作を確認できたら、PHPのコードを記述
■手順8)完成!
Part1:Moodleプラグイン開発の概要
5. プラグインの開発例(ブロックモジュール)③
Page. 25
・Blocksフォルダに「hello」を戻す
・管理者でログインするとプラグインのインストール
画面が表示される。プラグインをインストール。
・あいさつプラグインを配置してみる(エラーでない)
・block_hello.php内のget_contentsプログラムを修正
MoodleのBlocks
フォルダにコピー
「Moodleデータベー
スを更新」を押して
インストールする
ホームに「あいさつ」
を配置してみる
block_hello.phpの80行目付近に以下の行を追加
global $USER;
$this->content->text = “こんにちは $USER->username さん!”;
オリジナル「あいさつ」
ブロックの完成!
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
Page. 26
7th Conference for Moodle Teachers and Developers
Moodle moot japan 2015
■参考出典元・著作物利用
● Moodle.org(Moodle公式サイト)http://moodle.org/
ダウンロード、開発者向け情報を主に紹介。
● EmEditor(テキストエディタ)https://jp.emeditor.com/
Moodle開発ツールとして紹介。弊社で利用しているテキストエディタです。
● さくらエディタ(テキストエディタ)http://sakura-editor.sourceforge.net/
Moodle開発ツールとして紹介。弊社で利用しているテキストエディタです。
● A5:SQL Mk-2(matsubara様)
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/
Moodle開発ツールとして紹介。弊社で利用しているDB設計・監理ツールです。
● いらすとや様(かわいいフリー素材集) http://www.irasutoya.com/
京都・金閣寺のかわいいイラストをお借りしました。
● 甘茶の音楽工房様 http://amachamusic.chagasi.com/
スライドパズルの音楽に「小さなおもちゃ箱」「チョコレート大作戦」を
お借りしました。
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
Page. 27
内容に関するお問い合わせは、以下へお願い致します。
moot期間中は展示ブースにおります。お気軽にお声をおかけください。
ご静聴ありがとうございました
株式会社テクノウォーカー
担当: システム企画部 山岡 茂治
電話: 03-5155-1830(東京) 052-453-3393(名古屋)
メール: sol@twalker.co.jp
テクノウォーカーHP: http://www.twalker.co.jp
Moodle情報サイト: http://www.twalker.co.jp/moodle/
7th Conference for Moodle Teachers and Developers
Moodle moot japan 2015
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
7th Conference for Moodle Teachers and Developers
Page. 28

More Related Content

What's hot

【TRUNK】Power pointトレーニング
【TRUNK】Power pointトレーニング【TRUNK】Power pointトレーニング
【TRUNK】Power pointトレーニングRyo N
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜VirtualTech Japan Inc./Begi.net Inc.
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門Masahito Zembutsu
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 
凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Publicbonjin6770 Kurosawa
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き土岐 孝平
 
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
誰でも見やすいパワーポイントを作るための パワーポイントバイブル誰でも見やすいパワーポイントを作るための パワーポイントバイブル
誰でも見やすいパワーポイントを作るための パワーポイントバイブルJun Akizaki
 
PFD(Process Flow Diagram)の書き方紹介
PFD(Process Flow Diagram)の書き方紹介PFD(Process Flow Diagram)の書き方紹介
PFD(Process Flow Diagram)の書き方紹介Noriyuki Mizuno
 
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)Yoshiro Tokumasu
 
ReSharperを使ってみた
ReSharperを使ってみたReSharperを使ってみた
ReSharperを使ってみたytanno
 
『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由Takayuki Shimizukawa
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 

What's hot (20)

【TRUNK】Power pointトレーニング
【TRUNK】Power pointトレーニング【TRUNK】Power pointトレーニング
【TRUNK】Power pointトレーニング
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
誰にでもできるプレゼン入門 〜解脱プレゼンの極意〜
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
Google Colaboratoryの使い方
Google Colaboratoryの使い方Google Colaboratoryの使い方
Google Colaboratoryの使い方
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
UE4でPerforceと連携するための手順
UE4でPerforceと連携するための手順UE4でPerforceと連携するための手順
UE4でPerforceと連携するための手順
 
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
 
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
誰でも見やすいパワーポイントを作るための パワーポイントバイブル誰でも見やすいパワーポイントを作るための パワーポイントバイブル
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
 
PFD(Process Flow Diagram)の書き方紹介
PFD(Process Flow Diagram)の書き方紹介PFD(Process Flow Diagram)の書き方紹介
PFD(Process Flow Diagram)の書き方紹介
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
 
ReSharperを使ってみた
ReSharperを使ってみたReSharperを使ってみた
ReSharperを使ってみた
 
『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 

Viewers also liked

Moodleを有効活用する為のヒント
Moodleを有効活用する為のヒントMoodleを有効活用する為のヒント
Moodleを有効活用する為のヒントTakeshi Matsuzaki
 
Moodle情報サイトと無償管理ツールの紹介 for Moodle Moot 2014
Moodle情報サイトと無償管理ツールの紹介 for Moodle Moot 2014Moodle情報サイトと無償管理ツールの紹介 for Moodle Moot 2014
Moodle情報サイトと無償管理ツールの紹介 for Moodle Moot 2014Shigeharu Yamaoka
 
無料のオープンソースを使った モバイルラーニング実践
無料のオープンソースを使ったモバイルラーニング実践無料のオープンソースを使ったモバイルラーニング実践
無料のオープンソースを使った モバイルラーニング実践Takeshi Matsuzaki
 
数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats f...
数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats f...数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats f...
数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats f...Ryukoku University
 
Blockchain - Future Sync Vol5 Slide
Blockchain   -   Future Sync Vol5 SlideBlockchain   -   Future Sync Vol5 Slide
Blockchain - Future Sync Vol5 SlideKenichi Kurimoto
 
プロトスフィア提案書
プロトスフィア提案書プロトスフィア提案書
プロトスフィア提案書Kanji Syuto
 
Moodle によるe ラーニングシステムの概要と連動するストリーミングシステム教育ITソリューションEXPO5/18
Moodle によるe ラーニングシステムの概要と連動するストリーミングシステム教育ITソリューションEXPO5/18Moodle によるe ラーニングシステムの概要と連動するストリーミングシステム教育ITソリューションEXPO5/18
Moodle によるe ラーニングシステムの概要と連動するストリーミングシステム教育ITソリューションEXPO5/18アテイン株式会社
 
Webinar: Tin Can Basics: Collecting the Learning Experiences That Matter
Webinar: Tin Can Basics: Collecting the Learning Experiences That Matter Webinar: Tin Can Basics: Collecting the Learning Experiences That Matter
Webinar: Tin Can Basics: Collecting the Learning Experiences That Matter Rustici Software
 
Moodleを活用していると思われる大学のリスト
Moodleを活用していると思われる大学のリストMoodleを活用していると思われる大学のリスト
Moodleを活用していると思われる大学のリスト鈴鹿工業高等専門学校
 
HLSについて知っていることを話します
HLSについて知っていることを話しますHLSについて知っていることを話します
HLSについて知っていることを話しますMoriyoshi Koizumi
 
スタートアップを始める前に
スタートアップを始める前にスタートアップを始める前に
スタートアップを始める前にTakaaki Umada
 
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことSatoshi KOBAYASHI
 

Viewers also liked (17)

Moodleを有効活用する為のヒント
Moodleを有効活用する為のヒントMoodleを有効活用する為のヒント
Moodleを有効活用する為のヒント
 
Moodle3.1の概要
Moodle3.1の概要Moodle3.1の概要
Moodle3.1の概要
 
Moodle情報サイトと無償管理ツールの紹介 for Moodle Moot 2014
Moodle情報サイトと無償管理ツールの紹介 for Moodle Moot 2014Moodle情報サイトと無償管理ツールの紹介 for Moodle Moot 2014
Moodle情報サイトと無償管理ツールの紹介 for Moodle Moot 2014
 
無料のオープンソースを使った モバイルラーニング実践
無料のオープンソースを使ったモバイルラーニング実践無料のオープンソースを使ったモバイルラーニング実践
無料のオープンソースを使った モバイルラーニング実践
 
数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats f...
数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats f...数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats f...
数式自動採点eラーニングコンテンツの問題フォーマット変換ツールの開発 Automatic Conversion of Question Formats f...
 
Canvas lms
Canvas lmsCanvas lms
Canvas lms
 
Tin Can Moodle(e)
Tin Can Moodle(e)Tin Can Moodle(e)
Tin Can Moodle(e)
 
Blockchain - Future Sync Vol5 Slide
Blockchain   -   Future Sync Vol5 SlideBlockchain   -   Future Sync Vol5 Slide
Blockchain - Future Sync Vol5 Slide
 
Tin Can Moodle(j)
Tin Can Moodle(j)Tin Can Moodle(j)
Tin Can Moodle(j)
 
プロトスフィア提案書
プロトスフィア提案書プロトスフィア提案書
プロトスフィア提案書
 
Moodle によるe ラーニングシステムの概要と連動するストリーミングシステム教育ITソリューションEXPO5/18
Moodle によるe ラーニングシステムの概要と連動するストリーミングシステム教育ITソリューションEXPO5/18Moodle によるe ラーニングシステムの概要と連動するストリーミングシステム教育ITソリューションEXPO5/18
Moodle によるe ラーニングシステムの概要と連動するストリーミングシステム教育ITソリューションEXPO5/18
 
Webinar: Tin Can Basics: Collecting the Learning Experiences That Matter
Webinar: Tin Can Basics: Collecting the Learning Experiences That Matter Webinar: Tin Can Basics: Collecting the Learning Experiences That Matter
Webinar: Tin Can Basics: Collecting the Learning Experiences That Matter
 
Moodleを活用していると思われる大学のリスト
Moodleを活用していると思われる大学のリストMoodleを活用していると思われる大学のリスト
Moodleを活用していると思われる大学のリスト
 
Blockchain入門 20160416
Blockchain入門 20160416Blockchain入門 20160416
Blockchain入門 20160416
 
HLSについて知っていることを話します
HLSについて知っていることを話しますHLSについて知っていることを話します
HLSについて知っていることを話します
 
スタートアップを始める前に
スタートアップを始める前にスタートアップを始める前に
スタートアップを始める前に
 
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったこと
 

Similar to 開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015

Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストAtsuhiro Kubo
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019満徳 関
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門minazou67
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストAtsuhiro Kubo
 
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCampschoowebcampus
 
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCampschoowebcampus
 
クラウドでの大規模Moodleの構築方法とモデルケース
クラウドでの大規模Moodleの構築方法とモデルケースクラウドでの大規模Moodleの構築方法とモデルケース
クラウドでの大規模Moodleの構築方法とモデルケースShigeharu Yamaoka
 
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方Ozawa Kensuke
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
【de:code 2020】 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~
【de:code 2020】 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~【de:code 2020】 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~
【de:code 2020】 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~日本マイクロソフト株式会社
 
0からのプログラミング研修
0からのプログラミング研修0からのプログラミング研修
0からのプログラミング研修Jun Chiba
 
connpass特徴と開発の流れ
connpass特徴と開発の流れconnpass特徴と開発の流れ
connpass特徴と開発の流れIkeda Yosuke
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
Efsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshareEfsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshareTakahito Sugishita
 
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考えるMetroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考えるTakahito Sugishita
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-Hiroki Kondo
 
HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋
HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋
HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋Staffnet_Inc
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入You&I
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントMasaki NIWA
 

Similar to 開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015 (20)

Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
 
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
 
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
「非エンジニア向け 初めてのプログラミング体験講座」@CodeCamp
 
クラウドでの大規模Moodleの構築方法とモデルケース
クラウドでの大規模Moodleの構築方法とモデルケースクラウドでの大規模Moodleの構築方法とモデルケース
クラウドでの大規模Moodleの構築方法とモデルケース
 
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
【de:code 2020】 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~
【de:code 2020】 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~【de:code 2020】 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~
【de:code 2020】 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~
 
0からのプログラミング研修
0からのプログラミング研修0からのプログラミング研修
0からのプログラミング研修
 
connpass特徴と開発の流れ
connpass特徴と開発の流れconnpass特徴と開発の流れ
connpass特徴と開発の流れ
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
Efsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshareEfsta cod2012 master_for_slideshare
Efsta cod2012 master_for_slideshare
 
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考えるMetroアプリケーションのwin8/wp7の効率的ソース運用を考える
Metroアプリケーションのwin8/wp7の効率的ソース運用を考える
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
 
HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋
HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋
HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイント
 

Recently uploaded

リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドKen Fukui
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドKen Fukui
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドKen Fukui
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfyukisuga3
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドKen Fukui
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドKen Fukui
 

Recently uploaded (8)

リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
 

開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015

  • 1. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers 開発初心者のための Moodleプラグインの開発と利用 Time: 2015.2.21 09:30-11:00 Room: 5405 株式会社テクノウォーカー 山岡 茂治 7th Conference for Moodle Teachers and Developers Moodle moot japan 2015 Page. 1 Part1:Moodleプラグイン開発の概要(40分)
  • 2. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers Page. 2
  • 3. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers 発表内容 –Agenda- ※2部構成40分+40分 • Part1:Moodleプラグイン開発の概要(40分) – はじめに(プラグイン開発について) • Moodleのプラグイン開発についての概要と流れ – XAMPP、エディタ、DBツールを使った開発環境の整備 • Moodleの開発環境を無償のツールで揃える方法 – PHPプログラミング基礎の基礎 • 初心者が最低限知っておくPHPの書き方、デバッグの仕方 – プラグインの開発方法 • プラグインの仕組みと構成、開発の手順を紹介 – プラグイン開発例(既存ブロックのコピー) • HTMLブロックをコピーし、オリジナルのブロックを作成 Page. 3
  • 4. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers 発表内容 –Agenda- ※2部構成40分+40分 • Part2 : 各種プラグインの開発例(40分) – ブロック開発のポイント • Part1に続き、ブロック開発に必要なポイントの紹介 – テーマの開発とポイント • Cleanテーマをコピーし、オリジナルを作成 テーマ開発の流れと開発に必要なポイントを紹介 – 活動モジュールの開発とポイント • モジュールテンプレートをコピーし、オリジナル「15パズル」を作成 活動モジュール開発の流れと必要なポイントを紹介 – まとめ・質疑応答 • 弊社オリジナルの開発事例の紹介(ローカルプラグイン等) • まとめと質疑応答 Page. 4
  • 5. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■はじめに moodle moot 2014 Okinawa に引き続き発表をさせて頂きます。 前回は、弊社サイトや事例を中心に紹介しましたが、今回はMoodleの プラグイン開発に関する仕組みや開発手順の紹介です。 ■開発をするにあたって必要なこと ① Moodleに関する基礎知識(コースやモジュール、ユーザーなどの概念) ② HTMLおよびPHP(プログラミング)の知識 ③ 開発をするための環境・ツールの用意 ④ やってみようという好奇心・やらなきゃいけない状況に追い込む 本日の発表では、プログラミングの知識が無くても プラグイン開発の第一歩を踏み出せることが目標です Part1:Moodleプラグイン開発の概要 1. はじめに(プラグイン開発について)① Page. 5
  • 6. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■Moodleの開発者向け情報 ・Moodle.orgに(昔より)充実した情報 (但し英語です) https://docs.moodle.org/dev/Main_Page ・弊社Moodle情報サイトにも今後開発者向け情報を掲載予定です。 http://www.twalker.co.jp/moodle/ Part1:Moodleプラグイン開発の概要 1. はじめに(プラグイン開発について)② ページには以下の内容が掲載 ●Overview 概要やロードマップなどの情報 ●Plugin development 各種プラグイン開発の情報 ●Core APIs Moodleの内部APIについての情報 ●Guidelines 開発についてのガイドライン ●Developer tools 開発ツールの紹介等 ●Projects Moodleの特定分野に関するプロジェクト Page. 6
  • 7. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■開発をするための環境1 Moodle本体の用意 当然ですが、Moodle本体が必要です。 Moodle本体を動かすには「Apache・PHP・MySQL」も必要です。 ⇒ Moodle.org から XAMPP+Moodleをダウンロード Part1:Moodleプラグイン開発の概要 2. XAMPP、エディタ、DBツールなどの開発環境の整備① ダウンロード&Moodleセットアップ手順 ① Moodle.orgの「Downloads」から、画面左下の「Latest release」をクリック ② 更に「Moodle installer package for xxx」をクリック ③「Download.zip」から、ZIPファイルをダウンロード Page. 7
  • 8. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■開発をするための環境1 Moodle本体の用意(続き) Part1:Moodleプラグイン開発の概要 2. XAMPP、エディタ、DBツールなどの開発環境の整備② Page. 8 ダウンロード&Moodleセットアップ手順 ④ デスクトップやCドライブへZIPファイルを解凍 ⑤ 解答したフォルダ内の Start Moodle.exe をWクリック ⑥ ブラウザを起動し http://localhost/ (またはlocalhost:8080)と入力 ⑦ Moodleのセットアップを実行 ※⑤にて、既に80番ポートが他のアプリケーション等で起動できない場合は Apacheの動作ポートを80から8080等に変更します。 ServerApacheConfhttpd.conf をメモ帳で編集し 58行目付近のListen 80 を Listen 8080 に変更・保存します
  • 9. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■開発をするための環境2 エディタ・DBツールの用意 高価な開発ツールもありますが、最初は以下のものがあれば十分です ●テキストエディタ 「EmEditor」 https://jp.emeditor.com/ 「さくらエディタ」http://sakura-editor.sourceforge.net/ ⇒ メモ帳だと少し物足りないが、色が付く程度の機能があれば良い Part1:Moodleプラグイン開発の概要 2. XAMPP、エディタ、DBツールなどの開発環境の整備③ Page. 9 メモ帳で config.php を 開いたところ EmEditorで config.php を 開いたところ
  • 10. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■開発をするための環境2 エディタ・DBツールの用意 高価な開発ツールもありますが、最初は以下のものがあれば十分です ●DBツール 「A5:SQL Mk-2」http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/ ⇒ matsubara様が開発・公開している無償のツールです。 リモートDB管理(SSH転送)、ER図の作成、SQLや定義書の生成など Part1:Moodleプラグイン開発の概要 2. XAMPP、エディタ、DBツールなどの開発環境の整備④ Page. 10 ※弊社の場合は XAMPP+ Visual Studio+PHP拡張機能 とEmEditor、A5:SQL Mk-2、 Subverion(ソース管理)に て開発をしています ホームページ(ソフト本体は Vectorからダウンロード) 開発環境のMoodleDBに接続し、 Userテーブルを編集している画面
  • 11. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■PHPのプログラミングについて MoodleはPHPという言語で作られています。 PHPやプログラミングを知らなくても、以下のことだけ知っておく。 1)PHPの記述方法、コメント ⇒ プログラムの中身は知らなくても、書き方は理解しておきます 2)変数とは ⇒ 何らかのデータが入った箱(変数)の概念について理解しておく 3)echo と exit、var_dump ⇒ Moodleの動きを知るためで必要(途中で中身を見る・止める) ※もちろん、本格的に開発をするなら覚える必要はあります ( PHPについては、市販のテキストや講習会なども豊富です) Part1:Moodleプラグイン開発の概要 3. PHPプログラミング基礎の基礎① Page. 11
  • 12. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers 1)PHPの記述方法・コメント ●ファイル名は xxxxx.php とする 例)hello.php ⇒ PHPのプログラム(かもしれない) ●プログラムは <?php … ?> の … の部分に書く <?php echo “こんにちは”; ?> <?php …(いろいろなプログラム処理) ?> ●HTML(ホームページの記述方法)と混在して記述する 例)<h1><?php echo $title; ?></h1> ● // または /* ~ */ でコメント (コメント部分はプログラムは実行されない) 例)// echo “こんにちは”; ⇒ 実行されない Part1:Moodleプラグイン開発の概要 3. PHPプログラミング基礎の基礎② Page. 12
  • 13. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers 2)変数とは ・データを格納する「箱」 数学の方程式 x=1 と同じ、上書きされる ・PHPでは $名前 と指定する ・変数の中には、文字列、数値、日時、オブジェクト(機能の集まり) などが格納される(これらをデータ型という) Part1:Moodleプラグイン開発の概要 3. PHPプログラミング基礎の基礎③ Page. 13 ID: 2 Lastname: 山田 Email: xxxx@xxxxx $count $count = 1 1 $count $count = 3 31 後の処理で上書きされる $count = $count + 4 3 3 + 4 $count 上書きの前に、変数の値を 足しこんで格納(=7) $count 1.23 $text “あいう” $date “2014/4/1 12:34:56” $USER
  • 14. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers 3)echoとexit、var_dump …プログラムのデバッグ(調査)に必要 ● 中身を画面に表示させる echo 文字列; または echo $変数; ● プログラムをその場で終了させる exit; (と書くだけ) ●とにかく何が入っているかを見る var_dump($変数); Part1:Moodleプラグイン開発の概要 3. PHPプログラミング基礎の基礎④ Page. 14 例) echo “<hr>”; var_dump($PAGE); exit; /index.php の最終行 echo $OUTPUT->footer(); の処理の上に $PAGE(ページ情報の格納した変数)に関する情報を出力した例
  • 15. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■プラグインの開発方法 一般的?には以下のどちらかからスタート ① Moodle.org からテンプレートをダウンロードして利用する(第二部) ⇒ まっさらな状態から開発するため、手間はかかるが、 その分、自由に作成しやすい ② 既存のモジュールをコピーしてオリジナルにする(第一部) ⇒ 各種処理が自前で実装しなくて作業量が減るがモジュール名の 書き換え作業の漏れなども発生しやすい ■開発の流れ 1)目的・機能を決定し、プラグインの種類を決める 2)必要なデータ構造を考える(独自にデータを格納する場合) 続く Part1:Moodleプラグイン開発の概要 4. プラグインの開発方法① Page. 15
  • 16. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■開発の流れ(続き) 3)プラグインのテンプレートまたは既存のプログラムをコピー 4)自動インストール用のデータ構造定義ファイル(XML)を用意する 5)プラグイン内のファイル名やプログラムの関数名などを書き換える 6)version.phpやlang/プラグイン名.phpなどの基本情報を書き換える 7)一旦Moodleへプラグインを配置し、正常登録できるか確認する 8)各プラグインの主要処理を記述する 9)ブラウザでMoodle上に配置されたプラグインの動作を確認する 10)8~9を繰り返しで完成させたら、7~9の動きをテスト ※通常のソフトウェア開発会社の場合は、工程管理の上で 要件定義書や設計書の作成など、体系的に組織して開発をお こなっています。 Part1:Moodleプラグイン開発の概要 4. プラグインの開発方法② Page. 16
  • 17. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■Moodleのプラグインの種類(一例) サイト管理 – プラグイン – プラグイン概要 ※その他、数多くのプラグインが定義されている 開発するプラグインが、どの種類に該当するかによって、 ルール(規約)が異なります。プラグインの目的・機能を 明確にし、プラグインの種類に合わせて開発をおこないます Part1:Moodleプラグイン開発の概要 4. プラグインの開発方法③ Page. 17 種類 内容 ブロック 画面左右に配置し、補助的な機能を提供 テーマ Moodle画面のデザインを提供する 活動モジュール コース内のコンテンツを提供する ローカルプラグイン 独自の機能などを提供する
  • 18. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■Moodleの主要APIと機能 Moodleの各種機能をプログラムから利用 ⇒ Moodle Core API 良く利用する主要API https://docs.moodle.org/dev/Core_APIs Part1:Moodleプラグイン開発の概要 4. プラグインの開発方法④ Page. 18 APIの種類 内部表記 内容 権限チェック ログインや権限のチェック機能など データ操作 $DB データベースの内容の取得・追加・更新・削除の機能 ファイル操作 ($file) 保存されたファイルの取得やファイルの格納 ログ操作 ($event) Moodleログの入出力機能 ページ $PAGE ヘッダーやフッターの設定をおこなう 出力 $OUTPUT ヘッダーやコンテンツの出力(レンダリングされる) 言語定義 $string[‘’] 言語ごとの表記定義 設定 $CFG Moodle本体やプラグイン設定の取得と更新 ユーザー $USER ログインしているユーザーの情報
  • 19. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■ $CFG(表記固定) … Moodle本体やプラグイン設定の取得と更新 ●$CFG->設定名 にてMoodleの設定が取得できる 例)echo $CFG->wwwroot; // MoodleのURL(http://localhost 等) ●各種モジュールの設定は、get_configを使って取得可能 $設定値 = get_config(モジュール名, 設定名); ●各種モジュールの設定は、set_configを使って設定可能 set_config(設定名, 初期値, モジュール名); ■ $USER(表記固定) … ログインしているユーザーの情報 ●ログインしているユーザーのプロファイル情報を取得できる $USER->id … ログインしているユーザーの内部ID $USER->username … ユーザーのログイン名 $USER->preference … パスワード更新日時、ログイン失敗回数など それぞれ困ったら var_dump で中身を探ってみると良いかも ※function ~ の中で使うには global $CFG, $USER の宣言が必要 Part1:Moodleプラグイン開発の概要 4. プラグインの開発方法⑤ Page. 19
  • 20. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■ $PAGE(表記固定) … ヘッダーやフッターの設定をおこなう ●ページ情報の設定例 $PAGE->set_title(“ページタイトル”) … ページのタイトルを変更 $PAGE->set_pagelayout(“standard”) … テーマのレイアウトを変更 $PAGE->requires->js(“xxxxx.js”) … 独自のJSファイルをセット ■ $OUTPUT(表記固定) … ヘッダーやコンテンツの出力等 ●Moodleで独自ページを生成する場合(ローカルプラグイン等) echo $OUTPUT->header(); echo “HTMLなどのコンテンツ本体”; echo $OUTPUT->footer(); ※$PAGEや$OUTPUTは通常のプラグイン開発では あまり意識しないことが多いです。独自のページを作る 場合などに用います。 Part1:Moodleプラグイン開発の概要 4. プラグインの開発方法⑥ Page. 20
  • 21. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■ $DB(表記固定) … データベース(表)のデータの取得や更新 ●データの取得(1件) $結果 = $DB->get_record(モジュール名, 取得条件); 例)$course = $DB->get_record('course', array('id'=>2)); ●データの取得(複数) $結果 = $DB->get_records(モジュール名, 取得条件, 並び順); ●データの追加・更新・削除 $登録後ID = $DB->insert_record(モジュール名, $変数) $DB->update_record(モジュール名, $変数) $DB->delete_records(モジュール名, 条件) 例)$id = $DB->insert_record('book', $book); ●SQLの実行 $DB->execute(“SQL文”); Part1:Moodleプラグイン開発の概要 4. プラグインの開発方法⑦ Page. 21
  • 22. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■Moodleの主要関数 Moodle Core APIに含まれており、どこからも利用できる関数 良く利用する主要関数 ●ログインチェック require_login(); // 未ログインの場合にログインページへ ●セッションチェック require_session(); // 想定されている操作か調べる(入力フォーム等) ●値(ユーザー入力値等)の取得 $結果 = required_param(名前, 値の種類); // 失敗時エラー $結果 = optional_param(名前, 既定値, 値の種類); // 失敗時既定値 例) $id = required_param(“id”, PARAM_INT); $name = optional_param(“name”, PARAM_RAW); echo $id; echo $name; ※他にも多くの関数や機能がありますが、本日はここまで。 Part1:Moodleプラグイン開発の概要 4. プラグインの開発方法⑧ Page. 22
  • 23. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■既存モジュールのコピーからブロックモジュールを作ってみる 簡単そう?(失礼!)なHTMLモジュールをコピーして作成 (ブロックのHTMLモジュールは実装も分かりやすく良い手本) 【オリジナルモジュールへの手順】 1)ブロックモジュール「html」をコピーして「hello」にする 2)モジュール名「html」の記述をすべて hello に変更する 3)ファイル名 block_html を全て block_hello に変更する 4)(大変なので)余計なファイル・コードを消す 5)MoodleのBlocksフォルダにコピーする 6)管理者にてMoodleにログイン、プラグインのインストール 7)最低限の動作を確認できたら、PHPのコードを記述 8)完成! それでは実際にやってみます。 Part1:Moodleプラグイン開発の概要 5. プラグインの開発例(ブロックモジュール)① Page. 23
  • 24. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■手順1)「html」をコピーして「hello」にする ■手順2)「html」の記述をすべて hello に変更 ■手順3)ファイル名 block_html を全て block_hello に変更 ■手順4)(大変なので)余計なファイル・コードを消す Part1:Moodleプラグイン開発の概要 5. プラグインの開発例(ブロックモジュール)② Page. 24 ・x_html_x.php などのファイル名を すべて x_hello_x.phpにする ・Backup、DB、Testsフォルダを削除 ・PHPプログラムの html を hello に 書き換える(エディタの一括置換) Langフォルダ以外削除 ファイル名を変更 フォルダをコピーし、 リネームする エディタの置換機能で html ⇒ hello へ
  • 25. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers ■手順5)MoodleのBlocksフォルダにコピーする ■手順6)管理者にてMoodleにログイン、プラグインのインストール ■手順7)最低限の動作を確認できたら、PHPのコードを記述 ■手順8)完成! Part1:Moodleプラグイン開発の概要 5. プラグインの開発例(ブロックモジュール)③ Page. 25 ・Blocksフォルダに「hello」を戻す ・管理者でログインするとプラグインのインストール 画面が表示される。プラグインをインストール。 ・あいさつプラグインを配置してみる(エラーでない) ・block_hello.php内のget_contentsプログラムを修正 MoodleのBlocks フォルダにコピー 「Moodleデータベー スを更新」を押して インストールする ホームに「あいさつ」 を配置してみる block_hello.phpの80行目付近に以下の行を追加 global $USER; $this->content->text = “こんにちは $USER->username さん!”; オリジナル「あいさつ」 ブロックの完成!
  • 26. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers Page. 26 7th Conference for Moodle Teachers and Developers Moodle moot japan 2015 ■参考出典元・著作物利用 ● Moodle.org(Moodle公式サイト)http://moodle.org/ ダウンロード、開発者向け情報を主に紹介。 ● EmEditor(テキストエディタ)https://jp.emeditor.com/ Moodle開発ツールとして紹介。弊社で利用しているテキストエディタです。 ● さくらエディタ(テキストエディタ)http://sakura-editor.sourceforge.net/ Moodle開発ツールとして紹介。弊社で利用しているテキストエディタです。 ● A5:SQL Mk-2(matsubara様) http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/ Moodle開発ツールとして紹介。弊社で利用しているDB設計・監理ツールです。 ● いらすとや様(かわいいフリー素材集) http://www.irasutoya.com/ 京都・金閣寺のかわいいイラストをお借りしました。 ● 甘茶の音楽工房様 http://amachamusic.chagasi.com/ スライドパズルの音楽に「小さなおもちゃ箱」「チョコレート大作戦」を お借りしました。
  • 27. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers Page. 27 内容に関するお問い合わせは、以下へお願い致します。 moot期間中は展示ブースにおります。お気軽にお声をおかけください。 ご静聴ありがとうございました 株式会社テクノウォーカー 担当: システム企画部 山岡 茂治 電話: 03-5155-1830(東京) 052-453-3393(名古屋) メール: sol@twalker.co.jp テクノウォーカーHP: http://www.twalker.co.jp Moodle情報サイト: http://www.twalker.co.jp/moodle/ 7th Conference for Moodle Teachers and Developers Moodle moot japan 2015
  • 28. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 7th Conference for Moodle Teachers and Developers Page. 28