Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Drupal テーマ開発入門講座 第2回 シンプルなカスタムテーマを作ってみよう
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
アクイアジャパン Acquia Japan
March 23, 2022
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Drupal テーマ開発入門講座 第2回 シンプルなカスタムテーマを作ってみよう
https://www.acquia.com/jp/events/webinars/drupal-theming-development-vol2
アクイアジャパン Acquia Japan
March 23, 2022
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
240
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
290
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
140
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
250
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
61
DrupalCon Lille 2023 総まとめウェビナー
acquiajp
0
120
コンテンツ設計手法で変更に強いアプリケーションを実現する〜ローコードによるWebアプリのバックエンド実装 #CNDF2023
acquiajp
0
410
DrupalCon Pittsburgh 2023 総まとめウェビナー
acquiajp
0
110
Acquia製品概要&Site Studioデモのご紹介
acquiajp
0
150
Other Decks in Programming
See All in Programming
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.4k
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
130
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
620
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
R8 の設定見直しでアプリサイズ削減
andpad
0
140
Jetpack Compose Mechanisms
skydoves
2
370
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
910
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
100
すこし踏み込む CancellationToken
htkym
2
1.6k
APNsからLive Activityを開始する話
yumnumm
0
150
速習iPhone Duo対応
yuukiw00w
2
960
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
270
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
310
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
390
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Code Review Best Practice
trishagee
74
20k
HDC tutorial
michielstock
2
940
Design in an AI World
tapps
1
350
We Have a Design System, Now What?
morganepeng
55
8.4k
The SEO identity crisis: Don't let AI make you average
varn
0
580
Transcript
Drupal ςʔϚ ։ൃೖߨ࠲ ୈ2ճ γϯϓϧͳΧελϜςʔϚ Λ࡞ͬͯΈΑ͏
Drupal ςʔϚ։ൃೖߨ࠲γϦʔζ – Drupalʹ͓͚ΔʮςʔϚʯͱɺWebαΠτͷݟͨΛ୲͏ػೳͰ͢ɻຊΣϏφʔγϦʔ ζͰɺDrupalͷςʔϚ։ൃʹؔ͢ΔجૅࣝΛղઆ͠·͢ɻ – DrupalͷϑϩϯτΤϯυपΓʹ͍ͭͯମܥతʹֶͼ͍ͨํɺࣗͰΧελϜςʔϚΛ࡞ΕΔ Α͏ʹͳΓ͍ͨํɺΞΫΠΞೝఆσϕϩούʔࢼݧΛࢦ͢ํʹ͓͢͢ΊͰ͢ɻ – DrupalΛҰ௨Γૢ࡞ͨ͜͠ͱ͕͋ΔํΛରͱ͍ͯ͠·͢ɻ·ͩDrupalΛ৮ͬͨ͜ͱ͕ແ͍
ํɺॳ৺ऀ͚DrupalνϡʔτϦΞϧಈըʢຊޠʣΛઌʹݟ͓ͯ͘ͱΑΓཧղ͕ਂ·Γ ·͢ɻ
ΞδΣϯμ 1. ΧελϜςʔϚΛ࡞Ζ͏ 2. *.info.ymlϑΝΠϧͷ࡞ 3. CSS/JSϑΝΠϧΛՃ͠Α͏ 4. ςϯϓϨʔτϑΝΠϧΛ࡞͠Α͏ 5.
ςʔϚʹϦʔδϣϯΛఆٛ͠Α͏ 6. ࿅श
ΧελϜςʔϚΛ࡞Ζ͏
खॱ 1. *.info.ymlͷ࡞ 2. CSSɺJSͷՃ 3. ςϯϓϨʔτϑΝΠϧͷՃ 4. Ϧʔδϣϯͷఆٛ ΧελϜςʔϚͷ࡞εςοϓ
Drupal͕ςʔϚΛͲͷΑ͏ʹѻ͏͔Λֶश͢ΔͨΊʹɺΧελϜςʔϚΛ࡞͢ΔͨΊͷ େ·͔ͳྲྀΕΛհ͠·͢ɻ υΩϡϝϯτϧʔτԼʹɺthemes/custom/marucha/ ͱ͍͏σΟϨΫτϦΛ࡞͠ɺ͜͜ ͰςʔϚͷ࡞Λߦ͍ͬͯ͘͜ͱͱ͠·͢ɻ ιʔείʔυͪ͜Β→ https://github.com/hmaruyama/my-drupal9-theming/tree/vol2
*.info.ymlϑΝΠϧͷ࡞
– ςʔϚͷ໊લઆ໌ͳͲɺςʔϚʹؔ͢ΔϝλใΛهड़͢ΔͨΊͷϑΝΠϧͰ͢ɻ – ඞਢ(ςʔϚͰ།ҰͷඞਢϑΝΠϧͰ͢)ɻ – ͜ͷϑΝΠϧ͑͋͞ΕɺDrupalΧελϜςʔϚΛదͳςʔϚͱͯ͠ೝࣝͰ͖·͢ɻ – YMLܗࣜͷϑΝΠϧͳͷͰɺΠϯσϯτλϒͰͳ͘εϖʔε2ͭͰߦ͏ඞཁ͕͋Γ· ͢ɻ *.info.ymlϑΝΠϧͱ
your Drupal project roo t └── web (document root ) └── theme s └── custo m └── maruch a └── marucha.info.yml
marucha.info.ymlΛ࡞͠Α͏ name: Marucha type: theme description: '·ΔͷͨΊͷΧελϜςʔϚ' core_version_requirement: ^8 ||
^9 base theme: false ඞਢ ςʔϚͷϥϕϧ໊ ඞਢ ֦ுػೳͷछผΛࣔ͢ ςʔϚͷઆ໌Λࣔ͢ ରԠ͢ΔίΞόʔδϣϯ ඞਢ ϕʔεςʔϚͷࢦఆ
ࢀߟ) *.info.ymlϑΝΠϧͰఆٛՄೳͳKey-ValueϖΞ https://www.drupal.org/docs/theming- drupal/defining-a-theme-with-an-infoyml- file
ΧελϜςʔϚΛσϑΥϧτʹઃఆ – *.info.ymlϑΝΠϧΛదʹ༻ҙ͢Δ͚ͩͰɺ DrupalςʔϚΛೝࣝͯ͘͠Ε·͢ɻ – Drupalཧϝχϡʔ > ςʔϚ > ΞϯΠϯε
τʔϧࡁΈςʔϚ ʹɺΧελϜςʔϚ͕ද ࣔ͞Ε͍ͯΔ͔֬ೝ͠·͢ɻ – දࣔ͞Ε͍ͯͨΒɺαΠτͷσϑΥϧτςʔ Ϛʹઃఆ͓͖ͯ͠·͢ɻ
ΧελϜςʔϚ͕ਖ਼͘͠ద༻͞Ε͍ͯΔ͔֬ೝ – αΠτͷτοϓϖʔδʹҠಈͯ͠ɺ ←ͷΑ͏ͳݟͨͷϖʔδ͕ݱΕ͍ͯͨΒOKͰ͢ɻ – CSSJavaScriptϑΝΠϧҰద༻͞Ε͍ͯͳ͍ ͷͰɺ͜ͷ࣌Ͱऐ͍͠ϨΠΞτʹͳ͍ͬͯ ·͢ɻ
– ͔͜͜ΒCSSJSΛՃ͍͖ͯ͠·͢ʂ
CSS/JSϑΝΠϧΛՃ͠Α͏
ΞηοτϥΠϒϥϦͷཧํ๏ – DrupalͰςϯϓϨʔτʹCSSJSͷURLΛຒΊࠐΉͷͰͳ͘ɺΞηο τϥΠϒϥϦͱݺΕΔ෦ͷγεςϜʹొ͢ΔܗͰߦΘΕ·͢ɻ – ͜ΕʹΑΓɺγεςϜ෦ͰDrupal͕CSSͱJSͷѹॖΩϟογϡɺϩʔ υ͢Δॱ൪ΛೖΕସ͑ΔॲཧΛߦ͏͜ͱ͕Ͱ͖·͢ɻ
ΞηοτϥΠϒϥϦͷՃํ๏ 1. ಡΈࠐΈ͍ͨCSS/JSϑΝΠϧΛ४උ͠·͢ɻ 2. *.libraries.yml ͰΞηοτϥΠϒϥϦΛఆٛ͠·͢ɻ 3. ΞηοτϥΠϒϥϦΛಡΈࠐΈ·͢ɻ a. શͯͷϖʔδͰݺͼग़͢
- *.info.ymlʹఆٛ b. ಛఆͷTwigςϯϓϨʔτ - *.html.twigʹఆٛ c. ಛఆͷϒϩοΫɺϊʔυ - *.themeʹఆٛ https://www.drupal.org/docs/theming-drupal/adding- stylesheets-css-and-javascript-js-to-a-drupal-theme
CSSɾJSϑΝΠϧͷ४උ maruch a ɹ ᵓ── cs s ɹ │ └──
styles.cs s ɹ ᵓ── j s ɹ │ └── script.j s ɹ └── marucha.info.yml – ςʔϚσΟϨΫτϦԼʹ cssɺjsσΟϨΫτϦΛ࡞͠·͢ɻ – ֤σΟϨΫτϦʹϑΝΠϧΛஔ͠ ͓͖ͯ·͢ɻ a { color: red; } h1 { color: blue; } console.log('JS͕ಡΈࠐ·Ε·ͨ͠ɻ'); marucha/css/styles.css marucha/js/script.js
marucha.libraries.ymlΛ࡞͠Α͏ global-styling: version: 1.x css: theme: css/styles.css: {} global-scripts: version:
1.x js: js/script.js: {}
ఆٛͨ͠ΞηοτϥΠϒϥϦΛςʔϚʹՃ͢Δ name: Marucha type: theme description: '·ΔͷͨΊͷΧελϜςʔϚ' core_version_requirement: ^8 ||
^9 base theme: false libraries: - marucha/global-styling - marucha/global-scripts – ࣍ʹɺ*.libraries.ymlͰఆٛͨ͠ΞηοτϥΠϒϥϦΛͲ͜Ͱݺͼग़͔͢Λࢦఆ͠·͢ɻ – *.info.ymlͷlibrariesΩʔͰΞηοτϥΠϒϥϦΛࢦఆ͢ΔͱɺαΠτશମͰಡΈࠐ·Ε Δ͜ͱʹͳΓ·͢ɻ
ΞηοτϥΠϒϥϦ͕ద༻͞Ε͍ͯΔ͔֬ೝ – αΠτͷτοϓϖʔδʹҠಈͯ͠ɺ ←ͷΑ͏ͳݟͨͷϖʔδ͕ݱΕ͍ͯͨΒOKͰ ͢ɻ – ϨΠΞτ͕มߋ͞Ε͍ͯͳ͔ͬͨΒɺΩϟο γϡΫϦΞఆٛϑΝΠϧʹλΠϙ͕ͳ͍͔֬ೝ ͍ͯͩ͘͠͞ɻ
ϦϯΫ͕৭ʹͳ͍ͬͯΔ H1λάͷจࣈ͕੨৭ʹͳͬͯ ͍Δ ϒϥβͷ։ൃऀπʔϧΛ։͍ͯɺ ʮJS͕ಡΈࠐ·Ε·ͨ͠ʯͱ͍͏ ϩά͕දࣔ͞Ε͍ͯΔ
ࢀߟ) SMACSSͱ – Scalable and Modular Architecture for CSS –
CSSઃܭख๏ͷҰͭɻCSSΛ5ͭͷΧςΰϦʹྨͯ͠هड़͍ͯ͘͜͠ͱͰɺίʔυͷϝϯςφϯεੑΛ্ͤ͞·͢ɻ CSSઃܭख๏ଞʹBEMOOCSS͕༗໊Ͱ͢ɻ – 5ͭͷྨ – Base — HTMLཁૉͷελΠϦϯά – Layout — άϦουγεςϜΛؚΉϖʔδϨΠΞτͷελΠϦϯά – Component — ࠶ར༻ՄೳͳUIཁૉͷελΠϦϯά ※ SMACSSͰModuleͱݺΕΔ – State — ϚεΦʔόʔͳͲͷΫϥΠΞϯτଆͷίϯϙʔωϯτมߋͷελΠϦϯά – Theme — ίϯϙʔωϯτͷࢹ֮తͳελΠϦϯά – DrupalͰSMACSSΛ༻͍ͯCSSΛྨ͠·͢ɻ – Base, Layout, Component, State, Themeͷॱ൪ͰಡΈࠐΉΑ͏ʹͳ͍ͬͯ·͢ɻ
ςϯϓϨʔτϑΝΠϧΛ࡞͠Α͏
ςϯϓϨʔτϑΝΠϧͱ – Drupal 8Ҏ߱ɺDrupalTwigΛςϯϓϨʔτΤ ϯδϯʹ࠾༻͍ͯ͠·͢ɻ – ໋໊نଇ௨ΓͷϑΝΠϧ໊Λ༩͠ɺطଘͷί ϯϙʔωϯτΛ্ॻ͖͢ΔܗͰ࡞͠·͢ɻ – ೖΕࢠঢ়ʹςϯϓϨʔτϑΝΠϧ͕ଘࡏ͠·
͢ɻ – ൚༻తͳςϯϓϨʔτΑΓ۩ମతͳςϯϓ ϨʔτͰ্ॻ͖Ͱ͖·͢ɻ https://www.drupal.org/docs/theming-drupal/ twig-in-drupal
ࢀߟ) ςϯϓϨʔτΤϯδϯͱ – ςϯϓϨʔτͱݺΕΔܗͱɺ͋ΔσʔλϞσϧͰදݱ͞ΕΔೖྗσʔλΛ߹͠ɺՌυΩϡϝϯτΛग़ྗ͢Διϑτ ΣΞ - wikipedia – PHPք۾ͰΑ͘ར༻͞ΕΔςϯϓϨʔτΤϯδϯ
– Twig (Symfonyඪ४) – Blade (Laravelඪ४) – Smarty – ͳͥςϯϓϨʔτΤϯδϯΛ༻͢Δͷʁ – ViewͱϩδοΫͷ – XSS߈ܸͷճආʢࣗಈΤεέʔϓॲཧʣ - શͯͷHTMLΛTwigςϯϓϨʔτͰग़ྗ͢Δ͜ͱ͕·͍͠Ͱ͢ɻWriting secure code for Drupal ࢀর – Drupal 8Ҏલ(ver 4.7 ~ 7.x)ͰʮPHPTemplateʯ͕ςϯϓϨʔτΤϯδϯͱͯ͠࠾༻͞Ε͍ͯ·ͨ͠ɻ
ςϯϓϨʔτΛ৮Δલʹɾɾɾ – ςϯϓϨʔτ։ൃΛߦ͏લʹɺTwigͷσόοάΛ༗ޮԽ͢Δ͜ͱΛ͓קΊ͠·͢ɻ※ຊ൪ڥ Ͱແޮʹ͍ͯͩ͘͠͞ – web/sites/default/services.yml ϑΝΠϧͰdebugมΛtrueʹมߋ͢Δ͜ͱͰ༗ޮԽ͞Ε·͢ɻ – services.yml͕ଘࡏ͠ͳ͍߹ɺ
default.services.ymlΛίϐʔͯ͠ ϑΝΠϧΛ࡞͍ͯͩ͘͠͞ɻ ..(লུ).. twig.config: debug: true ..(লུ).. web/sites/default/services.yml
Twigͷσόοά ςϯϓϨʔτϑΝΠϧ໊ީิ * Ͱͳ͘ x ͕༻தͷςϯϓ ϨʔτϑΝΠϧ ༻தͷςϯϓϨʔτϑΝΠ ϧͷॴ ΩϟογϡΫϦΞΛߦͬͨΒɺDrupalα
ΠτͰϒϥβͷ։ൃऀίϯιʔϧΛ։ ͍ͯݟ·͢ɻ
$ cp web/core/modules/block/templates/block.html.twig web/themes/custom/marucha/ templates/block--marucha-page-title.html.twig ..(লུ).. <div{{ attributes }}> <div{{
attributes.addClass('my-class') }}> # my-classΫϥεΛՃ {{ title_prefix }} {% if label %} ..(লུ).. ςϯϓϨʔτΛ্ॻ͖͠Α͏ web/themes/custom/marucha/templates/block--marucha-page-title.html.twig
Ճͨ͠ςϯϓϨʔτϑΝΠϧ͕༻͞Ε͍ͯΔ͔֬ೝ ༻͢ΔςϯϓϨʔτ͕ block.html.twig͔Βblock- marucha-page-title.html.twigʹม ߋ͞Εͨ my-classΫϥε͕Ճ͞Εͨ
ςʔϚʹϦʔδϣϯΛఆٛ͠Α͏
– ϒϩοΫςʔϚͷϦʔδϣϯʹஔ͞Ε· ͢ɻ – ϦʔδϣϯςʔϚ͝ͱʹఆٛ͞Ε·͢ɻ – ςʔϚ͝ͱʹಠࣗͷϦʔδϣϯΛఆٛͰ͖·͢ɻ – ςʔϚͰϦʔδϣϯΛఆٛ͠ͳͯ͘ɺDrupalͷ σϑΥϧτϦʔδϣϯΛ༻͢Δ͜ͱͰ͖·
͢ɻ Ϧʔδϣϯͱ BartikςʔϚͷϦʔδϣϯ https://www.drupal.org/docs/user_guide/en/block-regions.html
Ϧʔδϣϯͷఆٛํ๏ 1. *.info.ymlͰϦʔδϣϯΛఆٛ͠·͢ɻ 2. page.html.twigΛฤूͯ͠ɺఆٛͨ͠ϦʔδϣϯΛஔ͠·͢ɻ https://www.drupal.org/docs/theming- drupal/adding-regions-to-a-theme
ࠓͷϦʔδϣϯΛݟͯΈΑ͏ – ࠓͷ࣌ͰɺʮMaruchaʯΧελϜςʔϚ Ͱ༻ՄೳͳϦʔδϣϯ࣍ͷ௨ΓͰ͢ɻ – *.info.ymlͰϦʔδϣϯΛఆ͍ٛͯ͠ͳ͍ͷ ͰɺDrupalͷσϑΥϧτϦʔδϣϯ͕༻ ͞Ε͍ͯ·͢ɻ
– ςʔϚͷ*.info.ymlͰϦʔδϣϯ͕એݴ͞Ε͍ͯͳ͍߹ɺDrupal࣍ͷϦʔδϣϯΛσ ϑΥϧτͰηοτ͠·͢ɻ – Left sidebar (sidebar_first) – Right sidebar
(sidebar_second) – Content (content) – Header (header) – Primary menu (primary_menu) – Secondary menu (secondary_menu) – Footer (footer) – Highlighted (highlighted) – Help (help) – Breadcrumb (breadcrumb) – Page top (page_top) – Page bottom (page_bottom) σϑΥϧτϦʔδϣϯ https://www.drupal.org/docs/theming-drupal/adding- regions-to-a-theme#default_regions
– ςʔϚͷ*.info.ymlͰϦʔδϣϯ͕એݴ͞Ε͍ͯͳ͍߹ɺDrupal࣍ͷϦʔδϣϯΛσ ϑΥϧτͰηοτ͠·͢ɻ – Left sidebar (sidebar_first) – Right sidebar
(sidebar_second) – Content (content) – Header (header) – Primary menu (primary_menu) – Secondary menu (secondary_menu) – Footer (footer) – Highlighted (highlighted) – Help (help) – Breadcrumb (breadcrumb) – Page top (page_top) – Page bottom (page_bottom) σϑΥϧτϦʔδϣϯ https://www.drupal.org/docs/theming-drupal/adding- regions-to-a-theme#default_regions ςʔϚଆͰҰͭͰϦʔδϣϯΛ ఆٛͨ͠ΒɺσϑΥϧτϦʔδϣ ϯແޮʹͳΔʂ ʢ˞ඇදࣔϦʔδϣϯΛআ͘ʣ
ඇදࣔϦʔδϣϯ(Hidden regions)ͱ – ࣍ͷೋͭͷϦʔδϣϯʮHidden regionsʯͱݺΕɺϒϩοΫϨΠΞτϖʔ δͰදࣔ͞Ε·ͤΜɻ – Page top (page_top)
– Page bottom (page_bottom) – ඇදࣔϦʔδϣϯ page.html.twig Ͱͳ͘ html.html.twig Ͱݺͼͩ͞Ε·͢ɻ – *.info.ymlͰఆٛͰ͖·͕͢ɺఆٛ͠ͳͯ͘DrupalଆͰ༻ҙ͞Ε·͢ɻ – Ϟδϡʔϧ͕ඇදࣔϦʔδϣϯʹґଘ͍ͯ͠Δ߹͕͋ΔͷͰɺhtml.html.twig ΛΧελϚΠζ͢ΔࡍʹɺඇදࣔϦʔδϣϯΛআ͠ͳ͍Α͏ʹ͍ͯͩ͘͠͞ɻ
ςʔϚʹϦʔδϣϯΛఆٛͯ͠ΈΑ͏ – *.info.yml ʹ regions ΩʔͰ3ͭͷϦʔ δϣϯΛఆٛ͠·͢ɻ – My Header
(my_header) – My Content (my_content) – My Footer (my_footer) – ϦʔδϣϯͷϚγϯ໊ӳࣈͰ͋ Δඞཁ͕͋Γ·͢ɻΞϯμʔείΞΛ ؚΊΒΕ·͢ɻ name: Marucha type: theme description: '·ΔͷͨΊͷΧελϜςʔϚ' core_version_requirement: ^8 || ^9 base theme: false libraries: - marucha/global-styling - marucha/global-scripts regions: my_header: 'My Header' my_content: 'My Content' my_footer: 'My Footer'
ఆٛͨ͠ϦʔδϣϯΛςϯϓϨʔτʹՃ͠Α͏ $ cp web/core/modules/system/templates/page.html.twig web/themes/custom/marucha/ templates/ <header> {{ page.my_header }}
</header> <main> {{ page.my_content }} </main> <footer> {{ page.my_footer }} </footer> web/themes/custom/marucha/templates/page.html.twig
ϒϩοΫϨΠΞτը໘Ͱɺ*.info.ymlͰఆ ٛͨ͠Ϧʔδϣϯ͕දࣔ͞Ε͍ͯΔ͔֬ ೝ͠·͢ɻ ϦʔδϣϯΛ৽ͨʹఆٛ͢Δ͜ͱʹΑͬ ͯɺϒϩοΫͷஔ͕Ϧηοτ͞Ε·͢ɻ ϒϩοΫϨΠΞτը໘Ͱɺదٓඞཁͳ ϒϩοΫΛϦʔδϣϯʹઃஔ͠·͢ɻ ఆٛͨ͠Ϧʔδϣϯ͕ө͞Ε͍ͯΔ͔֬ೝ
࿅श
࿅श1 *.info.ymlͰඞͣࢦఆ͢Δඞཁͷ͋ΔΛ͔࣍Β2ͭબ͍ͯͩ͘͠͞ɻ 1. name 2. description 3. regions 4. type
5. logo
࿅श1 *.info.ymlͰඞͣࢦఆ͢Δඞཁͷ͋ΔΛ͔࣍Β2ͭબ͍ͯͩ͘͠͞ɻ 1. name 2. description 3. regions 4. type
5. logo 1, 4
*.libraries.ymlͰఆٛͨ͠ΞηοτϥΠϒϥϦΛαΠτશମͰಡΈࠐΉʹͲ͏͢Εྑ͍Ͱ͔͢ʁ 1. *.libraries.ymlͰΞηοτϥΠϒϥϦΛదʹఆٛ͢Δ͚ͩͰɺσϑΥϧτͰαΠτશମͰಡΈ ࠐ·ΕΔΑ͏ʹͳΔͨΊɺԿ͠ͳͯ͘ྑ͍ɻ 2. *.info.ymlʹɺlibrariesΩʔͰΞηοτϥΠϒϥϦΛࢦఆͯ͠ಡΈࠐΉɻ 3. html.html.twig ϑΝΠϧʹɺattach_libraryؔΛ༻ͯ͠ಡΈࠐΉɻ 4.
*.themeͰϓϦϓϩηεؔΛ༻ͯ͠ಡΈࠐΉɻ ࿅श2
*.libraries.ymlͰఆٛͨ͠ΞηοτϥΠϒϥϦΛαΠτશମͰಡΈࠐΉʹͲ͏͢Εྑ͍Ͱ͔͢ʁ 1. *.libraries.ymlͰΞηοτϥΠϒϥϦΛదʹఆٛ͢Δ͚ͩͰɺσϑΥϧτͰαΠτશମͰಡΈ ࠐ·ΕΔΑ͏ʹͳΔͨΊɺԿ͠ͳͯ͘ྑ͍ɻ 2. *.info.ymlʹɺlibrariesΩʔͰΞηοτϥΠϒϥϦΛࢦఆͯ͠ಡΈࠐΉɻ 3. html.html.twig ϑΝΠϧʹɺattach_libraryؔΛ༻ͯ͠ಡΈࠐΉɻ 4.
*.themeͰϓϦϓϩηεؔΛ༻ͯ͠ಡΈࠐΉɻ ࿅श2 2
ʮarticleʯίϯςϯπλΠϓͷΈʹөͤ͞ΔʹɺͲͷςϯϓϨʔτϑΝΠϧΛΦʔ όʔϥΠυ͢Δ͖Ͱ͔͢ʁ 1. node.html.twig 2. html.html.twig 3. node--article.html.twig 4. node--2.html.twig
5. node--article--teaser.html.twig ࿅श3
ʮarticleʯίϯςϯπλΠϓͷΈʹөͤ͞ΔʹɺͲͷςϯϓϨʔτϑΝΠϧΛΦʔ όʔϥΠυ͢Δ͖Ͱ͔͢ʁ 1. node.html.twig 2. html.html.twig 3. node--article.html.twig 4. node--2.html.twig
5. node--article--teaser.html.twig ࿅श3 3
ΧελϜςʔϚͰDrupal͕༻ҙ͢ΔσϑΥϧτϦʔδϣϯ͕༻͞ΕΔͷͲΜͳ໘Ͱ͔͢ɻ 1. *.info.ymlʹϦʔδϣϯ͕ఆٛ͞Ε͍ͯͳ͍߹ɻ 2. *.info.ymlͷbase themeΩʔͷ͕falseͷ߹ɻ 3. *.info.ymlͷbase themeΩʔʹҙͷϕʔεςʔϚ͕ࢦఆ͞Ε͍ͯΔ߹ɻ 4.
*.info.ymlͷregionsΩʔʹtrueΛࢦఆͨ͠߹ɻ 5. ৗʹσϑΥϧτϦʔδϣϯ͕༻͞ΕΔɻ 6. Drupalཧը໘ͷςʔϚݻ༗ͷઃఆϖʔδͷઃఆ߲ͰɺʮσϑΥϧτϦʔδϣϯΛ༻ ͢ΔʯʹνΣοΫ͕ೖ͍ͬͯΔ߹ɻ ࿅श4
ΧελϜςʔϚͰDrupal͕༻ҙ͢ΔσϑΥϧτϦʔδϣϯ͕༻͞ΕΔͷͲΜͳ໘Ͱ͔͢ɻ 1. *.info.ymlʹϦʔδϣϯ͕ఆٛ͞Ε͍ͯͳ͍߹ɻ 2. *.info.ymlͷbase themeΩʔͷ͕falseͷ߹ɻ 3. *.info.ymlͷbase themeΩʔʹҙͷϕʔεςʔϚ͕ࢦఆ͞Ε͍ͯΔ߹ɻ 4.
*.info.ymlͷregionsΩʔʹtrueΛࢦఆͨ͠߹ɻ 5. ৗʹσϑΥϧτϦʔδϣϯ͕༻͞ΕΔɻ 6. Drupalཧը໘ͷςʔϚݻ༗ͷઃఆϖʔδͷઃఆ߲ͰɺʮσϑΥϧτϦʔδϣϯΛ༻ ͢ΔʯʹνΣοΫ͕ೖ͍ͬͯΔ߹ɻ ࿅श4 1
ຊͷΞδΣϯμऴྃ
ΞδΣϯμ 1. ΧελϜςʔϚΛ࡞Ζ͏ 2. *.info.ymlϑΝΠϧͷ࡞ 3. CSS/JSϑΝΠϧΛՃ͠Α͏ 4. ςϯϓϨʔτϑΝΠϧΛ࡞͠Α͏ 5.
ςʔϚʹϦʔδϣϯΛఆٛ͠Α͏ 6. ࿅श
None