SlideShare a Scribd company logo
1 of 31
Drupal SAPPORO
オープンソース カンファレンス
2018 Hokkaido
2018年7月7日(土)
@札幌コンベンションセンター
16:10~16:55
Drupal SAPPORO
Drupal 8 テーマ入門
という予定でしたが、
あまりにも漠然としているので
対象もう少しを絞りまして…
Drupal SAPPORO
コンテンツのレイアウト
という視点から
Drupal 8 とテーマを眺めてみたいと思います
Drupal SAPPORO
自己紹介
• 白根健司(しらねけんじ)
• Drupal さっぽろ
• http://drupalsapporo.net/
• ※ 「Drupal さっぽろ」 で検索
• 札幌近郊の Drupal ユーザーによるローカルコミュニティ
• 月例の勉強会
• OSC Hokkaido 参加
• 温泉合宿(Drupal ONSEN)
Drupal SAPPORO
今日の内容
• テーマ作成ハンズオンについて
• 2つのレイアウト手法
• ページ内の各リージョンにブロックを配置する方法
• 単一のリージョン内でフィールドをレイアウトする方法
• umami プロファイルを利用したデモ
• エンティティ参照によるコンテンツ統合とレイアウト
• レイアウト関連 D8 コアモジュール
• Field Layout、Layout Builder(experimental)
• まとめ
Drupal SAPPORO
コンテンツ配置の2つの手法
Drupal SAPPORO
ブロックシステムの 「リージョン」 について
ページ
リージョン
リージョンの種類と
ページ内のレイアウトが
テーマによって定義される。
Drupal SAPPORO
「ブロック」 について
ヘルプ
ブロック
メインページコンテンツ
ブロック
ステータスメッセージ
ブロック
・・・
種々のモジュールにより
1まとまりのコンテンツが
ブロックとして出力される。
Drupal SAPPORO
ブロックシステムを利用したレイアウト手法
ヘルプ
ブロック
メインページコンテンツ
ブロック
スタータスメッセージ
ブロック
適切なリージョンに
ブロックを配置することで
コンテンツをレイアウトする。
Drupal SAPPORO
利用する機能=「ブロックレイアウト」
• 各ブロックの出力先となるリージョンを管理画面上で定義できる
Drupal SAPPORO
この手法については…
• CMSMix での Drupal 8 テーマ作成ハンズオンで解説
• https://www.slideshare.net/bkenro/cmsmix-sapporo-
vol3-drupal-81323508
• 今日は、これと違うレイアウト手法を見ていくことにします。
Drupal SAPPORO
Drupal のコンテンツは "fieldable"
• ノード
• Drupal システム上に蓄積されるコンテンツの単位
• コンテンツタイプで型と構造を定義
• 任意の数のフィールドを持てる
• ブロック (狭義)
• コアのブロックシステムを利用して定義される汎用ブロック
• ブロックタイプで型と構造を定義
• 任意の数のフィールドを持てる
・・・
Drupal SAPPORO
フィールドに基づくコンテンツの配置
メインページコンテンツ ブロック
「調理時間」 フィールド
「難易度」 フィールド
「調理手順」
フィールド
「材料」
フィールド
特定のブロック/リージョン内で
フィールドの出力コンテンツを
どう配置するか、という問題として
コンテンツのレイアウトを考える
Drupal SAPPORO
「ディスプレイモード」 について
• コンテンツエンティティに異なるプレゼンテーションを与える仕組み
• 次の2つがある:
・ ビューモード(表示用)
・ フォームモード(編集用)
• 詳しくはこちら:
• Display Modes, View Modes, and Form Modes
• https://www.drupal.org/docs/8/api/entity-api/display-modes-
view-modes-and-form-modes
Drupal SAPPORO
サンプル:umami プロファイルによるサイト
• umami プロファイルとは
• Drupal 8.5 で追加
• 料理雑誌を題材にしたデモサイト構築用インストールプロファイル
• umami テーマ、サンプルコンテンツ、各種構成が設定済みのサイトができる
Drupal SAPPORO
(参考) umami インストールプロファイルの使い方
• 場所:
• core/profiles/demo_umami/
• 隠しプロファイル属性を解除して使う
• インストール開始前に下記ファイルを編集:
• core/profiles/demo_umami/demo_umami.info.yml
• 6行目付近 hidden: true → hidden: false
• これにより、インストール時のプロファイルの選択肢として umami が表示される
• umami テーマ
• core/profiles/demo_umami/themes/umami
Drupal SAPPORO
Recipe コンテンツタイプ
• 料理レシピ用のコンテンツタイプ
• 内部名:recipe
• サンプルコンテンツあり
・・・
Drupal SAPPORO
Recipe ノードの例とレイアウト
layout__region--top-first
node__header
page-title
layout__region--bottom
layout__region--top-second
layout__region--bottom-secondlayout__region--bottom-first
Drupal SAPPORO
umami で定義されているビューモード
ノードの
全体表示用
Views の
コンテンツ表示用
Drupal SAPPORO
(参考) テンプレートの提案(suggestion)
• suggestion とは?
• コアをオーバーライドできるテンプレートファイル名の候補のこと
• 適用範囲などが異なる複数のテンプレート名の候補が存在する場合がある
• 優先順位が決まっている
• 優先順位の高い順に探索し、テーマ内で最初に見つかったものが適用される
• 具体的なファイル名の候補は下記を参照
• https://www.drupal.org/docs/8/theming/twig/twig-template-
naming-conventions
種々の条件に対応して
適用されるテンプレートの候補を
ファイル名パターンとして提示します
たとえば、ブロックのテンプレートなら・・・
Drupal SAPPORO
(参考) Twig テンプレートの命名規則
• テンプレートファイルの選択ルール
• 出力を構成する各パートごとに決められた命名規則に基づいて
該当するファイルが読み込まれ、実行される
• 命名規則の例
• HTML テンプレート
• HTML ページの基本構造を定義するテンプレート
• デフォルト: core/modules/system/templates/html.html.twig
• オーバーライド:
1. html-internalviewpath.html.twig
2. html--node--id.html.twig
3. html.html.twig
その他の例は下記資料を参照:
https://www.drupal.org/docs/8/theming/twig/twig-template-naming-conventions
Drupal SAPPORO
(参考) テンプレート名の候補の確認
• Twig デバッグを有効するとテンプレート名の候補を確認できる
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'html' -->
<!-- FILE NAME SUGGESTIONS:
* html--front.html.twig
* html--node.html.twig
x html.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/oscdemo/html.html.twig' -->
<!DOCTYPE html>
<html>
・・・
</html>
<!-- END OUTPUT from 'themes/cmsmix2/html.html.twig' -->
テンプレート ファイル名の提案の一覧と
現在使用されているテンプレートファイルが
コメントとして出力されるようになる。
現在のページ生成で使用された
候補ファイル名には x が表示される
Drupal SAPPORO
ビューモードと Twig テンプレートの対応
• ノードのテンプレート ファイル名:
• パターン: node--[type|nodeid]--[viewmode].html.twig
• ベーステンプレート: node.html.twig
• core/modules/node/templates/node.html.twig
• Recipe コンテンツタイプの full ビューモードの場合:
→ node--recipe--full.html.twig
コンテンツタイプ名 ビューモード名
Drupal SAPPORO
umami テーマのテンプレートを見ると…
recipe コンテンツタイプの
full ビューモード用テンプレート
Drupal SAPPORO
・・・
<article{{ attributes.addClass(classes) }}>
{{ title_prefix }}
<header class="node__header">
<h1 class="page-title">
{{ label }}
</h1>
{% if display_submitted %}
<div{{ author_attributes.addClass('node__submitted') }}>
{% trans %}<span class="by-author">by {{ author_name }}</span>
{{ created_date }}{% endtrans %}
{{ metadata }}
</div>
{% endif %}
{{ content.field_recipe_category }}
{{ content.field_tags }}
</header>
{{ title_suffix }}
<div{{ content_attributes.addClass('node__content') }}>
<div class="layout__region--top">
<div class="layout__region layout__region--top-first">
{{ content.field_image }}
</div>
・・・
node--receipe--full.html.twig
このテンプレートを編集することで
コンテンツブロック内のレイアウトを定義できる。
Drupal SAPPORO
エンティティ参照によるコンテンツの統合
• 参照元ノードのビューモードで表示を制御
• 参照先のコンテンツをテンプレート内で組み込む
Recipe コンテンツ
• 調理時間
• 難易度
• 材料
• 調理手順 …
Recipe category
タクソノミーターム
• アイコン画像
参照元のフィールドと参照先のフィールドを統合し、
Twig テンプレートでレイアウトを定義する
エンティティ
参照
Drupal SAPPORO
デモ
Drupal SAPPORO
Views での利用
• 例:フロントページ
• 表示フォーマット 「コンテンツ」
• ビューモードを指定する
Drupal SAPPORO
<article{{ attributes.addClass(classes) }}>
<div{{ content_attributes.addClass('node__content') }}>
{{ content.field_image }}
</div>
<div class="node__meta">
{{ content.field_difficulty }}
{{ title_prefix }}
{% if not page %}
<h2{{ title_attributes.addClass('node__title') }}>
<a class="node__link" href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{% endif %}
{{ title_suffix }}
<div class="read-more">
<a class="read-more__link" href="{{ url }}">{{ 'View'|t }}
{{ node.bundle }}</a>
</div>
</div>
</article>
node--highlighted-bottom.html
ビューモードのテンプレートで
Views の表示要素となる
ボックス内部のレイアウトを定義
Drupal SAPPORO
レイアウト関連の (試験的) コアモジュール
• 今回の手法をサポートするモジュールがコア入りする可能性
• そうなれば、この方法がデファクト標準になるかも?
Drupal SAPPORO
まとめ
• D8 コアによる2つのコンテンツのレイアウト手法:
• テーマで定義したリージョンにブロックを配置する方法
• 単一リージョン内でフィールド出力を配置する方法
• ディスプレイモード
• 1つのエンティティに異なるプレゼンテーションを与える手段
• ビューモード(表示用)とフォームモード(編集用)に分かれる
• 表示管理、Twig テンプレートはビューモードごとに定義できる
• エンティティ参照の利用
• エンティティの参照関係を利用してコンテンツを編成&レイアウトできる
• D8 コアのレイアウト関連モジュール
• Field Layout、Layout Builder:レイアウトのデファクト?

More Related Content

What's hot

Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Kenji Shirane
 
業務で使うIRC
業務で使うIRC業務で使うIRC
業務で使うIRConozaty
 
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜SFDG ROOKIES
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術Kiyokuni Kawachiya
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualYuji Kubota
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)Takanori Sejima
 
SPA時代のOGPとの戦い方
SPA時代のOGPとの戦い方SPA時代のOGPとの戦い方
SPA時代のOGPとの戦い方Yoichi Toyota
 
こんにちはIFLA LRM, さようならFRBR
こんにちはIFLA LRM, さようならFRBRこんにちはIFLA LRM, さようならFRBR
こんにちはIFLA LRM, さようならFRBRMaiko Kimura
 
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)Shigenori Ueda
 
JNR: Java Native Runtime
JNR: Java Native RuntimeJNR: Java Native Runtime
JNR: Java Native RuntimeYuichi Sakuraba
 
オンプレミスRDBMSをAWSへ移行する手法
オンプレミスRDBMSをAWSへ移行する手法オンプレミスRDBMSをAWSへ移行する手法
オンプレミスRDBMSをAWSへ移行する手法Amazon Web Services Japan
 
ディズニーランドとUSJ
ディズニーランドとUSJディズニーランドとUSJ
ディズニーランドとUSJNorihito Uchijima
 
MySQL負荷分散の方法
MySQL負荷分散の方法MySQL負荷分散の方法
MySQL負荷分散の方法佐久本正太
 
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?土岐 孝平
 
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)Shigenori Ueda
 
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスクエッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスクEiji Sasahara, Ph.D., MBA 笹原英司
 
DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所hdais
 

What's hot (20)

Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
 
業務で使うIRC
業務で使うIRC業務で使うIRC
業務で使うIRC
 
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)
 
SPA時代のOGPとの戦い方
SPA時代のOGPとの戦い方SPA時代のOGPとの戦い方
SPA時代のOGPとの戦い方
 
こんにちはIFLA LRM, さようならFRBR
こんにちはIFLA LRM, さようならFRBRこんにちはIFLA LRM, さようならFRBR
こんにちはIFLA LRM, さようならFRBR
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
 
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)
 
JNR: Java Native Runtime
JNR: Java Native RuntimeJNR: Java Native Runtime
JNR: Java Native Runtime
 
オンプレミスRDBMSをAWSへ移行する手法
オンプレミスRDBMSをAWSへ移行する手法オンプレミスRDBMSをAWSへ移行する手法
オンプレミスRDBMSをAWSへ移行する手法
 
ディズニーランドとUSJ
ディズニーランドとUSJディズニーランドとUSJ
ディズニーランドとUSJ
 
MySQL負荷分散の方法
MySQL負荷分散の方法MySQL負荷分散の方法
MySQL負荷分散の方法
 
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
 
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
 
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスクエッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
 
JDK 新しいリリースモデル解説 (ver. 2.2)
JDK 新しいリリースモデル解説 (ver. 2.2)JDK 新しいリリースモデル解説 (ver. 2.2)
JDK 新しいリリースモデル解説 (ver. 2.2)
 
DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所
 

Similar to D8でコンテンツをレイアウトする手法について

CMSMix Sapporo vol.3 (Drupal の回)
CMSMix Sapporo vol.3 (Drupal の回)CMSMix Sapporo vol.3 (Drupal の回)
CMSMix Sapporo vol.3 (Drupal の回)Kenji Shirane
 
Cmsインサイド 120801 公開版
Cmsインサイド 120801 公開版Cmsインサイド 120801 公開版
Cmsインサイド 120801 公開版株式会社RYUS
 
HTML5での制作、いつから始める?
HTML5での制作、いつから始める?HTML5での制作、いつから始める?
HTML5での制作、いつから始める?Fuminori Mori
 
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinigTom Hayakawa
 
WebAppDev勉強会 #4
WebAppDev勉強会 #4WebAppDev勉強会 #4
WebAppDev勉強会 #4Kohei Noda
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポートYou&I
 
日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in SapporoYoshikazu Aoyama
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminarAtushi Sugiyama
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?Shinichi Nishikawa
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座Shinichi Nishikawa
 
Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922Toshihiro Takehara
 
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
Drupalを活用した Linked Open Dataの実践的試行環境の構築Drupalを活用した Linked Open Dataの実践的試行環境の構築
Drupalを活用した Linked Open Dataの 実践的試行環境の構築Takanori Hayashi
 
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみたFuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみたtoshihirock
 
Drupal8を体験しよう Drupal8 & Docker
Drupal8を体験しよう Drupal8 & DockerDrupal8を体験しよう Drupal8 & Docker
Drupal8を体験しよう Drupal8 & Docker惠 紀野
 
concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)Katz Ueno
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」ericsagnes
 
芸術情報演習デザイン(Web) 第9回: CSSフレームワークを使う - 2 Twitter Bootstrapのカスタマイズ
芸術情報演習デザイン(Web)  第9回: CSSフレームワークを使う - 2 Twitter Bootstrapのカスタマイズ芸術情報演習デザイン(Web)  第9回: CSSフレームワークを使う - 2 Twitter Bootstrapのカスタマイズ
芸術情報演習デザイン(Web) 第9回: CSSフレームワークを使う - 2 Twitter BootstrapのカスタマイズAtsushi Tadokoro
 

Similar to D8でコンテンツをレイアウトする手法について (20)

CMSMix Sapporo vol.3 (Drupal の回)
CMSMix Sapporo vol.3 (Drupal の回)CMSMix Sapporo vol.3 (Drupal の回)
CMSMix Sapporo vol.3 (Drupal の回)
 
Cmsインサイド 120801 公開版
Cmsインサイド 120801 公開版Cmsインサイド 120801 公開版
Cmsインサイド 120801 公開版
 
HTML5での制作、いつから始める?
HTML5での制作、いつから始める?HTML5での制作、いつから始める?
HTML5での制作、いつから始める?
 
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig
 
WebAppDev勉強会 #4
WebAppDev勉強会 #4WebAppDev勉強会 #4
WebAppDev勉強会 #4
 
Drupal ISV 20160630
Drupal ISV 20160630Drupal ISV 20160630
Drupal ISV 20160630
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート
 
日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座
 
Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922
 
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
Drupalを活用した Linked Open Dataの実践的試行環境の構築Drupalを活用した Linked Open Dataの実践的試行環境の構築
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
 
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみたFuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
Drupal8を体験しよう Drupal8 & Docker
Drupal8を体験しよう Drupal8 & DockerDrupal8を体験しよう Drupal8 & Docker
Drupal8を体験しよう Drupal8 & Docker
 
concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
 
芸術情報演習デザイン(Web) 第9回: CSSフレームワークを使う - 2 Twitter Bootstrapのカスタマイズ
芸術情報演習デザイン(Web)  第9回: CSSフレームワークを使う - 2 Twitter Bootstrapのカスタマイズ芸術情報演習デザイン(Web)  第9回: CSSフレームワークを使う - 2 Twitter Bootstrapのカスタマイズ
芸術情報演習デザイン(Web) 第9回: CSSフレームワークを使う - 2 Twitter Bootstrapのカスタマイズ
 

D8でコンテンツをレイアウトする手法について

Editor's Notes

  1. 詳細は下記、およびDrupal本の巻末付録の翻訳 https://www.drupal.org/docs/8/theming/twig/twig-template-naming-conventions