Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Drupal テーマ開発入門講座 第3回 ベーステーマとサブテーマ
Search
アクイアジャパン Acquia Japan
April 06, 2022
Programming
0
250
Drupal テーマ開発入門講座 第3回 ベーステーマとサブテーマ
https://www.acquia.com/jp/events/webinars/drupal-theming-development-vol3
アクイアジャパン Acquia Japan
April 06, 2022
Tweet
Share
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
57
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
110
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
39
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
63
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
18
DrupalCon Lille 2023 総まとめウェビナー
acquiajp
0
41
コンテンツ設計手法で変更に強いアプリケーションを実現する〜ローコードによるWebアプリのバックエンド実装 #CNDF2023
acquiajp
0
330
DrupalCon Pittsburgh 2023 総まとめウェビナー
acquiajp
0
77
Acquia製品概要&Site Studioデモのご紹介
acquiajp
0
75
Other Decks in Programming
See All in Programming
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
120
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
1.6k
Remix on Hono on Cloudflare Workers
yusukebe
1
290
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
Macとオーディオ再生 2024/11/02
yusukeito
0
370
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
920
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
230
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
540
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
190
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
330
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
Featured
See All Featured
Designing for Performance
lara
604
68k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Optimizing for Happiness
mojombo
376
70k
Navigating Team Friction
lara
183
14k
Agile that works and the tools we love
rasmusluckow
327
21k
Automating Front-end Workflow
addyosmani
1366
200k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
890
A designer walks into a library…
pauljervisheath
204
24k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Why Our Code Smells
bkeepers
PRO
334
57k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Transcript
ୈ3ճ ϕʔεςʔϚͱαϒςʔϚ Drupal ςʔϚ ։ൃೖߨ࠲
Drupal ςʔϚ։ൃೖߨ࠲γϦʔζ – Drupalʹ͓͚ΔʮςʔϚʯͱɺWebαΠτͷݟͨΛ୲͏ػೳͰ͢ɻຊΣϏφʔγϦʔ ζͰɺDrupalͷςʔϚ։ൃʹؔ͢ΔجૅࣝΛղઆ͠·͢ɻ – DrupalͷϑϩϯτΤϯυपΓʹ͍ͭͯମܥతʹֶͼ͍ͨํɺࣗͰΧελϜςʔϚΛ࡞ΕΔ Α͏ʹͳΓ͍ͨํɺΞΫΠΞೝఆσϕϩούʔࢼݧΛࢦ͢ํʹ͓͢͢ΊͰ͢ɻ – DrupalΛҰ௨Γૢ࡞ͨ͜͠ͱ͕͋ΔํΛରͱ͍ͯ͠·͢ɻ·ͩDrupalΛ৮ͬͨ͜ͱ͕ແ͍
ํɺॳ৺ऀ͚DrupalνϡʔτϦΞϧಈըʢຊޠʣΛઌʹݟ͓ͯ͘ͱΑΓཧղ͕ਂ·Γ ·͢ɻ
ΞδΣϯμ 1. ςʔϚͷܧঝʹ͍ͭͯ 2. ϕʔεςʔϚΛ༻͢Δ 3. ࿅श
ςʔϚͷܧঝʹ͍ͭͯ
ςʔϚΛܧঝͯ͠ޮతʹςʔϚ։ൃΛߦ͏ – ίϯτϦϏϡʔτςʔϚΛΧελϚΠζ͍ͨ͠߹ɾɾ – ॻ͖͑ͯ͠·͏ͱɺΞοϓσʔτͷࡍʹมߋ͕ࣦΘΕͯ͠· ͍·͢ʂ – ϕʔεςʔϚͱαϒςʔϚͷΈΛ͑ɺϑΝΠϧΛॻ͖ ͑Δ͜ͱͳ͘ΧελϚΠζ͕ՄೳʹͳΓ·͢ɻ
– BootstrapͷσβΠϯϑϨʔϜϫʔΫΛ༻͢Δ߹ɾɾ – ඞཁͳߏ͕Έࠐ·Εɺ͙͢ʹΧελϚΠζʹऔΓΉ͜ͱ͕Ͱ ͖ΔελʔλʔςʔϚ͕ଟެ։͞Ε͍ͯ·͢ɻ
ϕʔεςʔϚͱαϒςʔϚ – ϕʔεςʔϚ – αϒςʔϚͷͱͳΔςʔϚͰ͢ɻ – ελʔλʔςʔϚͱݺΕ·͢ɻ – αϒςʔϚ
– ͋ΔϕʔεςʔϚΛݩʹ࡞ΒΕͨςʔϚΛαϒςʔϚͱݺͼ·͢ɻ – *.info.yml ͷ base theme ΩʔͰϕʔεςʔϚΛࢦఆ͠·͢ɻ – ྫʣbase theme: stable – ϕʔεςʔϚ͕࣋ͭελΠϧςϯϓϨʔτͳͲͷҰ෦ͷߏΛܧঝ͠ ͳ͕ΒΧελϚΠζͰ͖·͢ɻ – αϒςʔϚผͷαϒςʔϚͷࢠʹ͢Δ͜ͱ͕ՄೳͰ͢ɻ
ςʔϚͷ༏ઌॱҐ αϒςʔϚ > ϕʔεςʔϚ > ίΞ ςʔϚϑΝΠϧͷ༻࣍ͷΑ͏ʹ༏ઌ͞Ε·͢ɻ ※શͯͷϦιʔε͕ܧঝ͞ΕΔΘ͚Ͱ͋Γ·ͤΜɻ
αϒςʔϚ͕ܧঝ͢ΔϦιʔε – *.theme – *.breakpoints.yml – ςϯϓϨʔτϑΝΠϧ(*.html.twig) – εΫϦʔϯγϣοτ –
ը૾ – CSS – JavaScript ϕʔεςʔϚʹ*.libraries.yml ͕ଘࡏ͢Δ߹ɺܧঝ͞Ε·͢ɻ
αϒςʔϚ͕ܧঝ͠ͳ͍Ϧιʔε – *.info.yml – ϕʔεςʔϚ͕༻͞Ε͍ͯΔ͔Ͳ͏͔ʹݶΒͣɺશͯͷςʔϚʹ *.info.yml͕ඞ ཁͰ͢ɻ – Ϧʔδϣϯ –
ϕʔεςʔϚͷϦʔδϣϯΛར༻͍ͨ͠߹ɺ*.info.ymlʹϦʔδϣϯઃఆΛί ϐʔ͢Δ͜ͱͰߦ͍·͢ɻ – ColorϞδϡʔϧ – logo.svg – favicon.ico
ࢀߟ) ColorϞδϡʔϧͱ ରԠ͢ΔςʔϚͷΧϥʔε ΩʔϚΛมߋͰ͖ΔΑ͏ʹ ͳΓ·͢ɻ
ϕʔεςʔϚͷࢦఆํ๏ name: Marucha type: theme description: '·ΔͷͨΊͷΧελϜςʔϚ' core_version_requirement: ^8 ||
^9 base theme: classy *.info.yml ͷbase themeΩʔʹʹ͍ͨ͠ςʔϚͷϚγϯ໊Λࢦఆ͢Δ͜ͱͰϕʔ εςʔϚΛࢦఆ͠·͢ɻ ྫʣϕʔεςʔϚʹίΞͷClassyςʔϚΛ༻͢Δ߹
αϒςʔϚͷαϒςʔϚ – αϒςʔϚผͷαϒςʔϚͷࢠʹ͢Δ͜ͱ͕ՄೳͰ͢ɻ – ͜ͷܧঝͷνΣʔϯʹ੍ݶ͋Γ·ͤΜɻ ThemeA ThemeB ThemeC ThemeF ࢠ
ࢠ ࢠ ThemeD ThemeE ࢠ ࢠ
BartikΛϕʔεςʔϚʹࢦఆͯ͠ΈΑ͏ – *.info.ymlͰBartikΛϕʔεςʔϚʹࢦఆ͠Α͏ – Bartikͱಉ͡ϦʔδϣϯΛ༻͢ΔʹͲ͏͢Εྑ͍͔ – ͲΜͳϦιʔε͕Bartik͔Βܧঝ͞Ε͍ͯΔ͔֬ೝ͠Α͏ – ϨΠΞτΛ͍ͬͯ͡ΈΑ͏ ԋश
※BartikϕʔεςʔϚʹద͞ͳ͍ͷͰɺຊ൪αΠτͰBartikΛϕʔεςʔϚʹ ར༻͢Δͷ߇͑·͠ΐ͏ɻ
ϕʔεςʔϚΛ༻͢Δ
ίΞςʔϚΛϕʔεςʔϚʹར༻͢Δ – Classy – Stable͕ϕʔεςʔϚͱͯ͠ࢦఆ͞Ε͓ͯΓɺStableΛ֦ுͯ͠ɺϞμϯͳϨΠΞτΛ࣮ݱ͢ ΔͨΊʹཱͭଟ͘ͷΫϥε͕༻ҙ͞Ε͍·͢ɻ – ΧελϜςʔϚΛ࡞͢ΔࡍͷϕʔεςʔϚͱͯ͠ར༻Ͱ͖·͢ɻ –
Stable – Classyಉ༷ɺΧελϜςʔϚΛ࡞͢ΔࡍͷϕʔεςʔϚͱͯ͠ར༻Ͱ͖·͢ɻ࠷খݶͷCSSΫ ϥεͰΑΓΫϦʔϯͳΞϓϩʔνΛऔΓ͍ͨ߹ʹબ͞Ε·͢ɻ – StableͱผʹɺDrupal 9͔ΒStable 9(stable9)ͱ͍͏ίΞςʔϚ͕༻ҙ͞Ε·ͨ͠ɻStable͔Β ͍͔ͭ͘ͷมߋ͕Ճ͑ΒΕ͍ͯ·͢ɻStableDrupal 10Ͱআ͞ΕΔ༧ఆͰ͢ɻ – Stark – ओʹಈ࡞֬ೝɺτϥϒϧγϡʔςΟϯάΛతͱͯ͠ఏڙ͞Ε·͢ɻCSSઃఆ͞Ε͍ͯ·ͤ Μɻ
ίϛϡχςΟͰఏڙ͞ΕΔϕʔεςʔϚͷྫ https://www.drupal.org/project/project_theme ͔Β୳͢͜ͱ͕Ͱ͖·͢ɻ – Barrio – Bootstrapόʔδϣϯ4/5ʹରԠͨ͠ϕʔεςʔϚɻ – Radix
– Bootstrapόʔδϣϯ4/5ɺSassɺES6, BrowserSync͕Έࠐ·ΕͨϕʔεςʔϚɻ – W3CSS Theme – W3.CSSϑϨʔϜϫʔΫΛར༻ͨ͠ϕʔεςʔϚɻ
ࢀߟ) Drupal 10ͰͷςʔϚ։ൃ • Classyͷஔ͖͑Λతͱͯ͠ɺ৽͍͠ΧελϜςʔϚͷ࡞ϓϩηεͱϕʔεςʔϚΛܭը • ελʔλʔΩοτςʔϚαϒςʔϚͷϕʔεςʔϚͱͯ͠ػೳ͢ΔͷͰͳ͘ɺςʔϚΛ৽͘͠࡞ ͢Δࡍʹίϐʔ͞ΕΔςʔϚͱͯ͠ػೳ͢Δ • ςʔϚΛίϐʔ͢ΔͨΊͷίϚϯυΛDrupalίΞͰఏڙ
◦ $ php core/scripts/drupal generate-theme mytheme ςʔϚ։ൃͷͨΊͷελʔλʔΩοτ͕ొ https://www.drupal.org/about/core/blog/new-starterkit-will-change-how-you-create-themes-in-drupal-10 https://www.drupal.org/project/drupal/issues/3050384
࿅श
࿅श1 ʮελʔλʔςʔϚʯͷઆ໌ͱͯ͠ਖ਼͍͠ͷΛ2ͭબΜͰ͍ͩ͘͞ɻ 1. αϒςʔϚ͕ґଘ͢ΔςʔϚɻ 2. ClassyΛجʹͨ͠ΧελϚΠζՄೳͳςʔϚɻ 3. ΧελϜςʔϚΛ࡞͢Δࡍʹඞͣ༻͢ΔςʔϚɻ 4. ϕʔεςʔϚͷผ໊ɻ
࿅श1 ʮελʔλʔςʔϚʯͷઆ໌ͱͯ͠ਖ਼͍͠ͷΛ2ͭબΜͰ͍ͩ͘͞ɻ 1. αϒςʔϚ͕ґଘ͢ΔςʔϚɻ 2. ClassyΛجʹͨ͠ΧελϚΠζՄೳͳςʔϚɻ 3. ΧελϜςʔϚΛ࡞͢Δࡍʹඞͣ༻͢ΔςʔϚɻ 4. ϕʔεςʔϚͷผ໊ɻ
1, 4
࿅श2 αϒςʔϚ͕ܧঝ͠ͳ͍ͷԿͰ͔͢ʁ2ͭબ͍ͯͩ͘͠͞ɻ 1. ελΠϧγʔτ 2. JavaScript 3. *.info.yml 4. logo.svg
5. ςϯϓϨʔτϑΝΠϧ
࿅श2 αϒςʔϚ͕ܧঝ͠ͳ͍ͷԿͰ͔͢ʁ2ͭબ͍ͯͩ͘͠͞ɻ 1. ελΠϧγʔτ 2. JavaScript 3. *.info.yml 4. logo.svg
5. ςϯϓϨʔτϑΝΠϧ 3, 4
࿅श3 αϒςʔϚͰϕʔεςʔϚͷϦʔδϣϯΛ༻͢ΔʹͲ͏͢Εྑ͍Ͱ͔͢ʁ 1. ϦʔδϣϯαϒςʔϚʹܧঝ͞ΕΔͨΊɺԿ͠ͳͯ͘ྑ͍ɻ 2. αϒςʔϚଆͷ*.info.ymlͰɺϕʔεςʔϚͱಉ͡ϦʔδϣϯΛఆٛ͢Δඞཁ ͕͋Δɻ 3. αϒςʔϚଆͷ*.info.ymlͰɺregionΩʔʹϕʔεςʔϚͷϚγϯ໊Λࢦఆ͢ Δඞཁ͕͋Δɻ
࿅श3 αϒςʔϚͰϕʔεςʔϚͷϦʔδϣϯΛ༻͢ΔʹͲ͏͢Εྑ͍Ͱ͔͢ʁ 1. ϦʔδϣϯαϒςʔϚʹܧঝ͞ΕΔͨΊɺԿ͠ͳͯ͘ྑ͍ɻ 2. αϒςʔϚଆͷ*.info.ymlͰɺϕʔεςʔϚͱಉ͡ϦʔδϣϯΛఆٛ͢Δඞཁ ͕͋Δɻ 3. αϒςʔϚଆͷ*.info.ymlͰɺregionΩʔʹϕʔεςʔϚͷϚγϯ໊Λࢦఆ͢ Δඞཁ͕͋Δɻ
2
࿅श4 αϒςʔϚͰϕʔεςʔϚΛೝࣝͤ͞Δํ๏࣍ͷ͏ͪͲΕͰ͔͢ʁ 1. αϒςʔϚͷϚγϯ໊Λɺ{ϕʔεςʔϚͷϚγϯ໊}-subtheme ͱ໋໊͢Δ͜ͱͰ ೝࣝͤ͞Δɻ 2. ϕʔεςʔϚͷσΟϨΫτϦʹαϒςʔϚ༻ͷσΟϨΫτϦΛ࡞͠ɺͦ͜Ͱ ςʔϚΛ࡞͢Δɻ 3.
ϕʔεςʔϚͷ*.info.ymlϑΝΠϧͰαϒςʔϚΛࢦఆ͢Δɻ 4. αϒςʔϚͷ*.info.ymlϑΝΠϧͰϕʔεςʔϚΛࢦఆ͢Δɻ
࿅श4 αϒςʔϚͰϕʔεςʔϚΛೝࣝͤ͞Δํ๏࣍ͷ͏ͪͲΕͰ͔͢ʁ 1. αϒςʔϚͷϚγϯ໊Λɺ{ϕʔεςʔϚͷϚγϯ໊}-subtheme ͱ໋໊͢Δ͜ͱͰ ೝࣝͤ͞Δɻ 2. ϕʔεςʔϚͷσΟϨΫτϦʹαϒςʔϚ༻ͷσΟϨΫτϦΛ࡞͠ɺͦ͜Ͱ ςʔϚΛ࡞͢Δɻ 3.
ϕʔεςʔϚͷ*.info.ymlϑΝΠϧͰαϒςʔϚΛࢦఆ͢Δɻ 4. αϒςʔϚͷ*.info.ymlϑΝΠϧͰϕʔεςʔϚΛࢦఆ͢Δɻ 4
ຊͷΞδΣϯμऴྃ
ΞδΣϯμ 1. ςʔϚͷܧঝʹ͍ͭͯ 2. ϕʔεςʔϚΛ༻͢Δ 3. ࿅श
None