Drupal, Group, Quiz, Webform を
利用したeラーニングサイト
「SQT」
株式会社シナジークエスト
白根健司
はじめに
導入と自己紹介
祝辞と謝辞
• DrupalCamp DEN 2022 Osaka Online ご開催
誠におめでとうございます。
• 運営スタッフの皆様のご尽力に敬意と感謝を表します。
当社について
• 株式会社シナジークエスト
https://synergyquest.jp/
• IT 技術者向け研修企画、教材開発、講師派遣
• 技術資料・書籍等の翻訳
• Drupal を利用したWebサイト構築
自己紹介
• 白根健司(しらねけんじ)
• https://twitter.com/bkenro
• https://www.facebook.com/bkenro
• Drupal 4.6 の頃からユーザー
• 運営サイト
• shirane lab(ブログ)
• https://www.white-root.com/
• Drush コマンドヘルプ(日本語訳)
• https://www.white-root.com/drush-commands
• Drupal さっぽろ(活動休止中)
• https://drupalsapporo.net/
Drupal 関連の執筆
• 『Drupal 9 Web 開発をはじめるための薄い本』
• 第9章「Migrate入門」
• 『Drupal 9 Web 開発ことはじめ』
• 第8章「テーマを開発してみよう」
• 第12章「Migrate入門」
• 『Drupal 9 おいしいレシピ集』
• 第4章「Drushとサイトエイリアスで楽々サイト管理」
• 『Drupal 9 おいしいレシピ集2』
• 第6章「インストールプロファイルを作ってみよう」
著=Drupal Meetup 豊田支部
Drupal 9
おいしいレシピ集
著=Drupal Meetup 豊田支部
第1章 GitLab.comで手軽に始めるCI環境構築
第2章 オンプレミスで自分だけのCI環境構築
第3章 モジュール開発でCI実践
第4章 Drushとサイトエイリアスで楽々サイト管理
第5章 Groupモジュールで会員限定サイトを構築
第6章 JamstackでヘッドレスDrupalを爆速構築
第7章 Webformで簡単フォーム作成
第8章 MauticとDrupalで行う自動連携
【目次】
Drupal 9
おいしいレシピ集2
著=Drupal Meetup 豊田支部
第1章 settings.php 探訪
第2章 Webform をアンケート収集に活用しよう
第3章 Feedsモジュールの活用と
Drupal から記事配信まで
第4章 Geofield モジュールで位置情報を可視化
第5章 Drupal で理解する OAuth 2.0
第6章 インストールプロファイルを作ってみよう
【目次】
本日の内容
2020 年春ころから…
• 新型コロナ感染症の広がり
• 緊急事態宣言・まん延防止等重点措置
• 業務のリモート化要請
• 各種集合研修の開催を見合わせる動き
• リモート研修/eラーニングに対するニーズの高まり
こうした課題に Drupal 7 ベースの内製システムで対処した話
リモート研修に対応するには
そのために何が必要だったか
リモート研修における課題
物理的に人が集まる事で可能だったことが全然できない…
例)
• 会場での教材配布
• 理解度の把握(表情、行動、場の空気…)
• アンケート(紙)
Zoom/Teams 等で接続して従来と同じ説明をするだけでは、
研修クォリティを確保できないことを実感。
これら3つの課題について、
Drupal で取り組んだ内容を
以下、ご紹介します。
リモートにはリモートの道具が必要
• ストレージ共有
• テキストチャット
• ビデオ会議
1. 教材の提供
2. 理解度のチェック
3. フィードバック収集
サイトの提供機能
リモート研修サポートシステム
教材を閲覧する
教材を作成/編集する
確認テストを受験する
システム管理者
講師
匿名ユーザー
講座受講者
フィードバックを送信する
ログインする
1. 教材提供
どのような形態の研修教材をどのようにして提供するか
教材配布に関する課題(1)
• インターネット上で教材を共有/配布したい
• しかし、誰でも見える状態は困る
• 利用者の種別によってアクセスを制御したい
• 受講者は閲覧のみ、講師は編集/削除も可能 等
• 所属先に基づくアクセス制御がしたい
• 「〇〇講座」の受講者だけが、その教材を閲覧できる
• 「△△団体」の職員だけが、同社向け資料を閲覧できる
→ 認証
ベースのアクセス制御
→ 認可
ベースのアクセス制御
→ 所属
ベースのアクセス制御
認証/認可は Drupal core で
• ログイン機能:ユーザー名とパスワードによる認証
• ロールと権限:ユーザーが属するロール単位で認可
認証
Authentication
認可
Authorization
OK
ロール設定
ところで
認証/認可といえば…
Drupal 9
おいしいレシピ集2
著=Drupal Meetup 豊田支部
第1章 settings.php 探訪
第2章 Webform をアンケート収集に活用しよう
第3章 Feedsモジュールの活用と
Drupal から記事配信まで
第4章 Geofield モジュールで位置情報を可視化
第5章 Drupal で理解する OAuth 2.0
第6章 インストールプロファイルを作ってみよう
【目次】
所属管理は Group モジュールで
• Group モジュール
• https://www.drupal.org/project/group
• グループの種類ごとにグループタイプを定義
• 例)
講座グループ:特定の講座を受講している人のグループ
顧客グループ:特定の企業団体に所属している人のグループ
• グループごとに権限やロールを設定できる
• 例)
講座グループ内の「講師」ロール、「受講者」ロール
顧客グループ内の「育成担当」ロール、「一般社員」ロール
Group モジュールによるアクセス制御
Drupal入門講座
(講座グループ)
ほげほげ社
(顧客グループ)
Drupal 虎の巻
ほげほげ社外秘
コーディング規約
OK
OK
Aさん Bさん
Cさん
Dさん
認証・認可の関門はパスした上で…
グループタイプの設定
グループ内でロール別の権限設定
ところで
Group モジュールといえば…
Drupal 9
おいしいレシピ集
著=Drupal Meetup 豊田支部
第1章 GitLab.comで手軽に始めるCI環境構築
第2章 オンプレミスで自分だけのCI環境構築
第3章 モジュール開発でCI実践
第4章 Drushとサイトエイリアスで楽々サイト管理
第5章 Group モジュールで会員限定サイトを構築
第6章 JamstackでヘッドレスDrupalを爆速構築
第7章 Webformで簡単フォーム作成
第8章 MauticとDrupalで行う自動連携
【目次】
教材配布に関する課題(2)
• 多様な形態の教材コンテンツを統一的に管理したい
• 説明スライド(見て聴く教材)
• 実習時や復習時の参照資料(読む教材)
• メディア(画像、音声、動画)への対応
教材メディアはコンテンツタイプで
• 教材用のコンテンツタイプを定義する
• 各種メディア用のフィールドを追加する
• 説明スライド(HTML)
• 参照資料(HTML)
• 画像
• 説明音声
• 説明動画(YouTube 参照)
教材用のコンテンツタイプを定義
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
プライベートファイルで管理
• アップロード先に「プライベートファイル」を使用
• 添付先ノードと同じアクセス制限がかかる
• 多様な教材ファイルへのアクセスを Drupal で統合管理できる
教材中の画像URLを
コピーして別利用しようとしても
・・・
認証(ログイン)
認可(必要なロール)
所属(グループ)
の条件を満たした状態でないと
閲覧できない
(ログインフォームにリダイレクト)
2. 理解度のチェック
理解度の把握に関する課題
• 普通の集合研修なら "探り" を入れられる:
• 「いまので意味伝わりましたかね、この説明でわかる?」
• 「じゃぁ、〇〇だとどうなるだろうか。わかる人います?」
こうした対話で察知できた情報が
リモートでは極端に少なくなってしまう…
説明が伝わったか、理解してもらえたか、を
チェックする手段が仕組みとして欲しい…
Quiz モジュールの利用
• Quiz モジュール
• https://www.drupal.org/project/quiz
• 知識と理解度をチェックするテストを作成
• 多肢選択問題
• 短文(語句)入力問題
• 語句と説明のマッチング問題
• (文章入力問題)
• フィードバック(解答/解説)
• 教材資料のどこに正答の情報があるかを提供
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
エンティティ参照で教材と紐付け
テスト問題と教材との対応付けをどうするか?
• 教材も Quiz のテストも Drupal のノード エンティティ
• エンティティ参照フィールドで簡単に関連を設定できる
ファイル教材ノード
タイトル
概要説明
説明スライド ファイル
資料ページ ファイル
説明音声ファイル
確認テスト
タイトル
テストの説明
設問
タイトル
問題文
選択肢[]
*
1
講座ノード
タイトル
概要説明
*
<<entity>>
<<entity>>
<<entity>> <<entity>>
この部分は Quiz モジュールが提供
Views で結合して一覧表示
ファイル教材
Quiz 問題
3. フィードバック収集
アンケート用紙が持つ柔軟性と融通性に迫るには
フィードバック収集に関する課題
研修終了後に回収する紙アンケートの代替手段が必要
• 受講者全員からの回収を確認したい
• 用途や利用者別に用意したい
• 特定の講座受講者用
• 特定の組織メンバー専用
• 質問事項を柔軟に調整したい
• 既存のフォームを流用したい
Webform でサクッとフォーム作成
• Webform モジュール
• https://www.drupal.org/project/webform
• Drupal の定番フォーム作成機能
• 柔軟で高機能
• 簡単な操作性で講師自ら作成可
• 送信状況はリアルタイムで確認可
• 結果はサイト上で直接共有
• Excel ファイルとして DL 可能
インストールするだけで、
すぐに使える超便利モジュール
Webform Share でテンプレート化
• Webform share モジュール
• https://www.drupal.org/project/webform_share
既存のフォーム定義をコード化、
新しいフォーム作成時に取り込み
出発点として利用できる
ところで
定番モジュール Webform といえば…
Drupal 9
おいしいレシピ集
著=Drupal Meetup 豊田支部
第1章 GitLab.comで手軽に始めるCI環境構築
第2章 オンプレミスで自分だけのCI環境構築
第3章 モジュール開発でCI実践
第4章 Drushとサイトエイリアスで楽々サイト管理
第5章 Groupモジュールで会員限定サイトを構築
第6章 JamstackでヘッドレスDrupalを爆速構築
第7章 Webform で簡単フォーム作成
第8章 MauticとDrupalで行う自動連携
【目次】
Drupal 9
おいしいレシピ集2
著=Drupal Meetup 豊田支部
第1章 settings.php 探訪
第2章 Webform を
アンケート収集に活用しよう
第3章 Feedsモジュールの活用と
Drupal から記事配信まで
第4章 Geofield モジュールで位置情報を可視化
第5章 Drupal で理解する OAuth 2.0
第6章 インストールプロファイルを作ってみよう
【目次】
カスタマイズ
標準では用意されていない機能の作り込み
標準では用意されていない機能
• 現在ログインしているユーザーの…
• 受講講座の各単元のテスト実施状況を視覚的に示したい
• 受講各講座の単元消化(テスト完了)状況をグラフ表示したい
• 育成担当者が自社社員の学習進捗を把握可能にしたい
受講講座の単元別テスト実施状況
受講している各講座の
単元消化 (テスト完了) 状況
Views フィールドプラグインを書く
• Views のフィールドを自作
• PHP コードを書けるなら、
どのような出力も自由自在
アクセスハンドラを書く
• カスタムのアクセス制御も独自ハンドラで対応
例)
• ノード以外の
エンティティへの
アクセスを制御する
• 顧客グループ所属で
育成担当ロールなら
同じグループ内の
全員のテスト結果を
閲覧可能にする
…
Drupal と内製システム
今回の機能要件と実現方法
機能要件 使用ソフトウェア 実施内容 種別
認証ベースのアクセス制御 Drupal コア ほぼなし 設定
認可ベースのアクセス制御 Drupalコア 独自ロールの追加 設定
所属ベースのアクセス制御
(ノード エンティティ)
Group モジュール
Group Node モジュール
独自グループの定義と設定 設定
教材メディアの統一管理 Drupal コア コンテンツタイプ定義 設定
単元毎の理解度チェック Quiz モジュール ほぼなし(モジュール設定) 設定
教材と理解度テストの紐づけ Drupal コア コンテンツタイプ定義 設定
フィードバック収集 Webform モジュール 独自フォームの定義 設定
既存フォームの再利用 Webform Share モジュール ほぼなし 設定
単元別の進捗状況表示 Views プラグイン実装 独自プラグイン開発 開発
講座別の進捗状況表示 Views プラグイン実装 独自プラグイン開発 開発
所属ベースのアクセス制御
(ノード以外のエンティティ)
自作モジュール 独自モジュール開発 開発
サービス利用か外注か内製か?
外部サービス利用上の留意点
• 提供者の思惑で用意された舞台の上で演じる
• 一定の制約を受け入れることで便益を享受する構造
• 最後は提供者の都合が優先される
• 各社とも最終的には自社の利益を目的に活動している
外注/内製の難点
• ゼロから作ると大きなコストと時間がかかる
OSS で内製という選択肢
内製システムの Drupal 活用には…
• サイト構築のノウハウ
• 具体的な実践情報が足りない・・・
例)「逆引き!Drupal サイト構築」
「Drupal 実践サイト構築パターン集」
• 国内向けリソース
• 例)
• 「Views プラグインの書き方」
• 国内向けのディストリビューション(半完成品)
Drupal 9
おいしいレシピ集2
著=Drupal Meetup 豊田支部
第1章 settings.php 探訪
第2章 Webform をアンケート収集に活用しよう
第3章 Feedsモジュールの活用と
Drupal から記事配信まで
第4章 Geofield モジュールで位置情報を可視化
第5章 Drupal で理解する OAuth 2.0
第6章 インストールプロファイルを作ってみよう
【目次】
本日のまとめ
• 内製システムに Drupal が果たせる力は大きい
• Drupal core でかなりのことができる
• 拡張モジュールを追加すると、さらに高度なことも可能になる
• Drupal 開発の知識があればどこまでも…
• 内製の強みは業務ドメインの知識
1. Drupal のエキスパートが業務を学ぶか
2. 業務のエキスパートが Drupal を使いこなすか
• Drupal 9 おいしいレシピ集と続編の2、買ってください!
SQT について
• eラーニング教材として
一部コンテンツを公開中
• 実際に触っていただけます
(要ユーザー登録)
https://sqt.jp
ご視聴ありがとうございました

More Related Content

PPTX
CMSMix Sapporo vol.3 (Drupal の回)
PPTX
D8でコンテンツをレイアウトする手法について
PPTX
Drupal のコア要素を知る ~構築を支える道具立て~
PPTX
Drupalテーマとthemingの基礎
PPTX
Drupal勉強会@さっぽろ/おたる ご紹介
PDF
日本語ではじめるDrupal Console
PDF
WordPress基礎講座5 テーマ作成基礎知識
PPTX
ウェブから情報をあつめる
CMSMix Sapporo vol.3 (Drupal の回)
D8でコンテンツをレイアウトする手法について
Drupal のコア要素を知る ~構築を支える道具立て~
Drupalテーマとthemingの基礎
Drupal勉強会@さっぽろ/おたる ご紹介
日本語ではじめるDrupal Console
WordPress基礎講座5 テーマ作成基礎知識
ウェブから情報をあつめる

What's hot (20)

PDF
マークアップ講座 01b HTML
PDF
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
PDF
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
PDF
WordPress実践 導入からカスタマイズまで
PDF
WordPressテーマ作成
KEY
Cmsインサイド 120801 公開版
PDF
WordPressテーマ Foundation for WordPress の紹介
KEY
ブログの枠を超える?ためのWordPressカスタマイズ入門
PDF
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
PDF
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
PDF
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
PDF
ゼロからつくるWord pressテーマ第5回 後編
PDF
What's new! TwentyThirteen + WordPress3.6
PDF
日本語ではじめるDrupal Console in Sapporo
PDF
ゼロからつくるWord pressテーマ第5回
PDF
WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!
PDF
ゼロからつくるWord pressテーマ第6回
PDF
HTML仕様書を読んでみよう
PDF
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
PDF
DrupalとMySQL
マークアップ講座 01b HTML
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPress実践 導入からカスタマイズまで
WordPressテーマ作成
Cmsインサイド 120801 公開版
WordPressテーマ Foundation for WordPress の紹介
ブログの枠を超える?ためのWordPressカスタマイズ入門
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
ゼロからつくるWord pressテーマ第5回 後編
What's new! TwentyThirteen + WordPress3.6
日本語ではじめるDrupal Console in Sapporo
ゼロからつくるWord pressテーマ第5回
WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!
ゼロからつくるWord pressテーマ第6回
HTML仕様書を読んでみよう
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
DrupalとMySQL
Ad

Similar to Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」 (20)

PPTX
卒論執筆・スライド作成のポイント
PDF
Data Scientist Workbench 入門
PDF
作る人から作りながら運用する人になっていく
PPTX
超スモールなサービスの開発と運用をしてみた.pptx
PDF
2014 01-11-tdc-6th-anniversary
PPTX
論文に関する基礎知識2016
PDF
Azure Boards and Azure Test Plans inside out.
PDF
Apache CloudStack Documentation
PDF
DevOps on Azure Kubernetes
PDF
実はとても面白い...Documentation library
PDF
アジャイル開発&TFS導入
PDF
Osc2010 Slide
KEY
WordPress中級者への道!テンプレートタグはどう動くのか!?
PPTX
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
PDF
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
PDF
4時間まったりWordPressテーマ作成講座
PPTX
共通語彙の構築の基本的な考え方と方法 〜研究データのために語彙・スキーマを作るには〜
PDF
実践のためのスクラムガイド
PDF
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
PDF
サイドプロジェクトで使う Azure DevOps
卒論執筆・スライド作成のポイント
Data Scientist Workbench 入門
作る人から作りながら運用する人になっていく
超スモールなサービスの開発と運用をしてみた.pptx
2014 01-11-tdc-6th-anniversary
論文に関する基礎知識2016
Azure Boards and Azure Test Plans inside out.
Apache CloudStack Documentation
DevOps on Azure Kubernetes
実はとても面白い...Documentation library
アジャイル開発&TFS導入
Osc2010 Slide
WordPress中級者への道!テンプレートタグはどう動くのか!?
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
4時間まったりWordPressテーマ作成講座
共通語彙の構築の基本的な考え方と方法 〜研究データのために語彙・スキーマを作るには〜
実践のためのスクラムガイド
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
サイドプロジェクトで使う Azure DevOps
Ad

Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」