SlideShare a Scribd company logo
1 of 17
Download to read offline
一歩進んだ Views の使い方
スタジオ・ウミ 山中
● Drupal 歴5年
● 最近はテーマ作成などフロントエンド中心
● モジュール作成したり顧客対応したりDrupalの保守したりもします
● 趣味はアニメを見たりゲームをしたり
ライブに行ったり楽器(クラリネット)を吹くこと
自己紹介- 山中 麻千子 🍵
2
自己紹介- スタジオ・ウミについて
● Drupal での開発経験は10年以上
● ディレクション、要件定義、デザイン、開発、
保守運用、Drupal導入サポート等
● Web サイト: https://www.studio-umi.jp/
● Drupal Dawn: https://drupaldawn.jp/
○ 国内の Drupal サイトを集めたギャラリーサイト
3
このセッションの
対象者
● Views をちょっとだけ
さわったことがある方
● コードをほとんど書かずに
Drupal で機能を構築したい方
● Drupal の凄さを知りたい方
4
Views とは?
● コンテンツの一覧などを作成できる機能を提供するモジュール
● SQL の組み立てから表示までコードを一切書かずに行うことができる
● Drupal 8からコアに取り込まれた
● ほぼすべての Drupal サイトで使われる、Drupalの根幹となるモジュール
5
● ただ単純に一覧をつくるためだけのモジュールではない
● SQL の組み立てから表示までを行う
= 様々な条件に応じたコンテンツを表示することができる
● 一歩進んだ Views の使い方をご紹介します!
○ フィルター / リレーションシップ / コンテクスチュアルフィルター
○ コントリビュートモジュールの追加で Views を拡張
● Drupal 8 ・ブロックの使い方がある程度知っていることを前提
Views は一覧を作るためのモジュール?
6
Views だけでできること
\ 一歩進んだ /
弊社ブログを実験台に
デモをしながら3つご説明します
7
● フィルターの条件を使用
● 検索フォームの項目として使いたい条件の設定で下記項目にチェック
このフィルターを訪問者へ表示し、変更できるようにする
● ちなみに、外部設置フォームをブロックで提供で
「はい」を選択すると検索フォームがブロックとして
使用可能
一覧ページに簡易的な検索フォームを追加
8
一覧ページに詳しい投稿者情報を表示
● リレーションシップを使用
● コンテンツカテゴリーの
コンテンツの投稿者 を追加
● 追加したいユーザーの情報を
フィールドから追加
( ユーザーカテゴリーで絞り込むとちょっと
探しやすくなります)
9
● コンテクスチュアルフィルターを使用
● コンテンツ カテゴリーの ID を追加し、
フィルター値が利用可能でない時の
デフォルトの値を指定 にチェックを入れタイプ を
URL から取得したコンテンツ ID に設定
今見ているページ*1
の情報を別ブロックに表示
*1
Node で作成されたページに限ります
10
● CSV / JSON への書き出し
● スライドショー
● ポップアップフォトギャラリー
● Google Map との連携
※ 別途 Google Map API キーの登録が必要
以上の4つをご紹介
モジュールの
追加で
Views を拡張
\ さらに Views を活用 /
11
CSV / JSON への書き出し
● CSV Serialization をインストール
○ コアモジュールの Serialization, RESTful Web Services も必要
● Views 作成時に REST エクスポート設定 が追加されるので選択
○ 既存の ビューに設定する場合は フォーマットにシリアライザー が追加されるので選択
● フォーマット シリアライザーの設定で CSV か JSON を選択
● その他追加したいフィールドを追加
12
● Slick Carousel, Blazy*3
, Slick views をそれぞれインストール
● モジュールに必要なライブラリを追加
○ Drupal ルートディレクトリ上に libraries ディレクトリを作成して追加
○ 詳しい追加方法は README ファイル を確認
● Views のフォーマットに
Slick Carousel が追加されるので選択
● その他スライドショーに関する設定を行う
スライドショー
*3
2018年11月現在では Drupal のセキュリティアドバイザリーポリシーの対象外のモジュールとなっているため、
セキュリティ面について十分にご考慮いただいた上でご利用ください。
13
ポップアップフォトギャラリー
● Colorbox をインストール
● モジュールに必要なライブラリを追加
○ drush が有効であれば drush で追加可能
○ 詳しい追加方法は README ファイル を確認
● Views の設定で対象の画像フィールドの
フォーマッターで Colorbox を選択
● サムネイル画像やグルーピングなどを設定
$ drush colorbox-plugin
14
Google Map との連携
● Geofield と Geofield Map*4
をインストール
○ Geofield モジュールは geoPHP ライブラリが必要なので Composer を使ってダウンロード
● Google Map API Key*5
を設定
● 地図のコンテンツタイプにフィールド Geofield を追加
○ フォームの表示設定でウィジェットを Geofield Map に設定
● Views でフィールドに作成した Geofield を追加後、フォーマットに
Geofield Google Map を選択して、マップに好きな設定をする。
$ composer require 'drupal/geofield’
*4
2018年11月現在では Drupal のセキュリティアドバイザリーポリシーの対象外のモジュールとなっているため、
セキュリティ面について十分にご考慮いただいた上でご利用ください。
*5
環境設定 » システム » Geofield Map settings のページの Gmap API Key で設定可能です。 Google Map API は別途取得ください。 15
このセッションで紹介した Views の使い方
全部プログラムコードを書いてません✌
(一部コンソールでの作業は必要ですが)
Views を使いこなせれば
できることが広がります!
16
\ ご清聴ありがとうございました /

More Related Content

What's hot

OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話Daichi Koike
 
DigdagはなぜYAMLなのか?
DigdagはなぜYAMLなのか?DigdagはなぜYAMLなのか?
DigdagはなぜYAMLなのか?Sadayuki Furuhashi
 
インタフェースの実装パターン
インタフェースの実装パターンインタフェースの実装パターン
インタフェースの実装パターンTakuya Ueda
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Kenji Shirane
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamSATOSHI TAGOMORI
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Tomohisa Kusukawa
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~JustSystems Corporation
 
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)Akihiro Suda
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?mori takuma
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐkwatch
 

What's hot (20)

Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
DigdagはなぜYAMLなのか?
DigdagはなぜYAMLなのか?DigdagはなぜYAMLなのか?
DigdagはなぜYAMLなのか?
 
インタフェースの実装パターン
インタフェースの実装パターンインタフェースの実装パターン
インタフェースの実装パターン
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: Bigdam
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
 
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
YJTC19 B-6 Yahoo! JAPANの巨大インフラの運用と展望 #yjtc
YJTC19 B-6 Yahoo! JAPANの巨大インフラの運用と展望 #yjtcYJTC19 B-6 Yahoo! JAPANの巨大インフラの運用と展望 #yjtc
YJTC19 B-6 Yahoo! JAPANの巨大インフラの運用と展望 #yjtc
 
goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
Java8でRDBMS作ったよ
Java8でRDBMS作ったよJava8でRDBMS作ったよ
Java8でRDBMS作ったよ
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 

Similar to 一歩進んだ Views の使い方

Webform の活用
Webform の活用Webform の活用
Webform の活用matcha_dev
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンスGuildWorks
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス増田 亨
 
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) 「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) Taku Yajima
 
DrupalとMySQL
DrupalとMySQLDrupalとMySQL
DrupalとMySQLyoyamasaki
 
sukusuku-scrum introduction
sukusuku-scrum introductionsukusuku-scrum introduction
sukusuku-scrum introductionNao Yamamoto
 
ディストリビューションを読む!ダイジェスト版
ディストリビューションを読む!ダイジェスト版ディストリビューションを読む!ダイジェスト版
ディストリビューションを読む!ダイジェスト版Tomotsugu Kaneko
 
What's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App PlatformWhat's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App Platform惠 紀野
 
WP-CFMではじめるWordPress構成管理
WP-CFMではじめるWordPress構成管理WP-CFMではじめるWordPress構成管理
WP-CFMではじめるWordPress構成管理Tomotsugu Kaneko
 
Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630Yasushi Osonoi
 
20180710 techplay
20180710 techplay20180710 techplay
20180710 techplayyucoss
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理You&I
 
ドメイン駆動設計勉強会発表
ドメイン駆動設計勉強会発表ドメイン駆動設計勉強会発表
ドメイン駆動設計勉強会発表shingo suzuki
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_opsume3_
 
確認・検討にちょっと役立つプラグイン
確認・検討にちょっと役立つプラグイン確認・検討にちょっと役立つプラグイン
確認・検討にちょっと役立つプラグインKawaji Masaki
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入You&I
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門webcampusschoo
 
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一schoowebcampus
 

Similar to 一歩進んだ Views の使い方 (20)

Webform の活用
Webform の活用Webform の活用
Webform の活用
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) 「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮)
 
DrupalとMySQL
DrupalとMySQLDrupalとMySQL
DrupalとMySQL
 
sukusuku-scrum introduction
sukusuku-scrum introductionsukusuku-scrum introduction
sukusuku-scrum introduction
 
Modeling Workshop
Modeling WorkshopModeling Workshop
Modeling Workshop
 
ディストリビューションを読む!ダイジェスト版
ディストリビューションを読む!ダイジェスト版ディストリビューションを読む!ダイジェスト版
ディストリビューションを読む!ダイジェスト版
 
What's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App PlatformWhat's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App Platform
 
WP-CFMではじめるWordPress構成管理
WP-CFMではじめるWordPress構成管理WP-CFMではじめるWordPress構成管理
WP-CFMではじめるWordPress構成管理
 
Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630
 
20180710 techplay
20180710 techplay20180710 techplay
20180710 techplay
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
 
ドメイン駆動設計勉強会発表
ドメイン駆動設計勉強会発表ドメイン駆動設計勉強会発表
ドメイン駆動設計勉強会発表
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 
確認・検討にちょっと役立つプラグイン
確認・検討にちょっと役立つプラグイン確認・検討にちょっと役立つプラグイン
確認・検討にちょっと役立つプラグイン
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門
 
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
 

一歩進んだ Views の使い方