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 テーマ開発入門講座 第7回 テーマ設定のカスタマイズ
Search
アクイアジャパン Acquia Japan
June 29, 2022
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Drupal テーマ開発入門講座 第7回 テーマ設定のカスタマイズ
https://www.acquia.com/jp/events/webinars/drupal-theming-development-vol7
アクイアジャパン Acquia Japan
June 29, 2022
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
240
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
280
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
140
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
240
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
57
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
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
700
不幸な GC
chencmd
0
900
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
140
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
130
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
110
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
450
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
300
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
200
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
6k
ソフトウェアラスタライザ
fadis
1
800
Featured
See All Featured
Music & Morning Musume
bryan
47
7.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
The Art of Programming - Codeland 2020
erikaheidi
57
14k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
Mobile First: as difficult as doing things right
swwweet
225
10k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Scaling GitHub
holman
464
140k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Transcript
ୈ7ճ ςʔϚઃఆͷΧελϚΠζ Drupal ςʔϚ ։ൃೖߨ࠲
Drupal ςʔϚ։ൃೖߨ࠲γϦʔζ – Drupalʹ͓͚ΔʮςʔϚʯͱɺWebαΠτͷݟͨΛ୲͏ػೳͰ͢ɻຊΣϏφʔγϦʔ ζͰɺDrupalͷςʔϚ։ൃʹؔ͢ΔجૅࣝΛղઆ͠·͢ɻ – DrupalͷϑϩϯτΤϯυपΓʹ͍ͭͯମܥతʹֶͼ͍ͨํɺࣗͰΧελϜςʔϚΛ࡞Ε ΔΑ͏ʹͳΓ͍ͨํɺΞΫΠΞೝఆσϕϩούʔࢼݧΛࢦ͢ํʹ͓͢͢ΊͰ͢ɻ – DrupalΛҰ௨Γૢ࡞ͨ͜͠ͱ͕͋ΔํΛରͱ͍ͯ͠·͢ɻ·ͩDrupalΛ৮ͬͨ͜ͱ͕ແ
͍ํɺॳ৺ऀ͚DrupalνϡʔτϦΞϧಈըʢຊޠʣΛઌʹݟ͓ͯ͘ͱΑΓཧղ͕ਂ ·Γ·͢ɻ
1. ςʔϚݻ༗ͷઃఆ 2. ςʔϚઃఆΛΧελϚΠζ͢Δ 3. ςʔϚͷઃఆΛ༻͢Δ 4. ςʔϚΠϯετʔϧ࣌ʹॳظΛηοτ͢Δ 5. ࿅श
ΞδΣϯμ
ςʔϚݻ༗ͷઃఆ
– ςʔϚͷΠϯετʔϧ – ςʔϚͷΞϯΠϯετʔϧ – σϑΥϧτςʔϚͷΓସ͑ – ৽͍͠ςʔϚͷՃ ʢUpdate
ManagerϞδϡʔϧͰఏڙʣ ※ςʔϚͷՃϞδϡʔϧಉ༷ɺcomposerͰߦ͏ํ๏͕ਪ ͞Ε͍ͯ·͢ɻ – ݸʑͷςʔϚݻ༗ͷઃఆ ཧϝχϡʔʮςʔϚʯͰͰ͖Δ͜ͱ
ݸʑͷςʔϚݻ༗ͷઃఆ ηΫγϣϯλϒͷʮઃఆʯ(/admin/appearance/settings)͔Βɺ ֤ςʔϚ͝ͱʹݻ༗ͷઃఆ͕ߦ͑Δϖʔδ͕༻ҙ͞Ε͍ͯ·͢ɻ
σϑΥϧτͰ༻ҙ͞Ε͍ͯΔઃఆ߲ – ϖʔδཁૉͷදࣔͷઃఆ – ϩΰը૾ͷઃఆ – ͓ؾʹೖΓΞΠίϯͷઃఆ ʹؔͯ͠ɺΧελϜςʔϚଆ ͰԿ͠ͳͯ͘ɺσϑΥϧτ Ͱ༻ҙ͞Ε·͢ɻ
ίϯτϦϏϡʔτςʔϚͷςʔϚઃఆΛ͍ͯΈΑ͏ Bootstrap Barrioͷ߹ ςʔϚಠࣗͷઃఆ߲
ίϯτϦϏϡʔτςʔϚͷςʔϚઃఆΛ͍ͯΈΑ͏ W3CSSͷ߹ ςʔϚಠࣗͷઃఆ߲
ςʔϚઃఆͷΧελϚΠζ Drupal 8Ҏ߱Ͱɺ *.theme ϑΝΠϧ ·ͨ theme-settings.php ϑΝΠϧʹPHPؔΛՃ͢Δ͜ͱʹΑΓɺςʔϚઃఆͷϑΥʔϜ ΛมߋͰ͖·͢ɻ
ςʔϚઃఆΛΧελϚΠζ͢Δ
ςʔϚઃఆΛΧελϚΠζ͢Δํ๏ 1. ςʔϚσΟϨΫτϦʹ *.theme ϑΝΠϧ ͘͠ theme- settings.php ϑΝΠϧΛ༻ҙ͠·͢ɻ 2.
༻ҙͨ͠ϑΝΠϧͰ THEME_form_system_theme_settings_alterؔΛ࣮͠· ͢ɻ
<?php use Drupal\Core\Form\FormStateInterface; function marucha_form_system_theme_settings_alter(&$form, FormStateInterface $form_state) { $form['twitter_url'] =
array( '#type' => 'textfield', '#title' => t('Twitter URL'), '#description' => t(“TwitterΞΧϯτͷURLΛೖྗ͠·͢ɻ"), '#default_value' => theme_get_setting('twitter_url'), ); } γϯϓϧͳΧελϚΠζ theme-settings.php ઃఆϖʔδʹςΩετ ϑΟʔϧυ͕Ճ͞Ε· ͢ɻ
hook_form_system_theme_settings_alter() ͷ༷ – ςʔϚ͕ςʔϚݻ༗ͷઃఆϑΥʔϜΛมߋͰ͖ΔΑ͏ʹ͢ΔϑοΫؔͰ͢ɻ – ͜ͷϑοΫΛ༻͢ΔͱɺϑΥʔϜཁૉͷՃɺσϑΥϧτͷมߋɺϑΥʔ ϜཁૉͷআͳͲɺDrupalͷForm APIͰڐՄ͞Ε͍ͯΔํ๏ͰςʔϚݻ༗ͷઃ ఆϑΥʔϜΛมߋͰ͖·͢ɻ
– ؔ࿈υΩϡϝϯτ – function hook_form_system_theme_settings_alter (Drupal API) – function hook_form_FORM_ID_alter (Drupal API) – Introduction to Form API (Drupal Wiki) – Form and render elements (Drupal API)
ԋश ΧελϜςʔϚͷઃఆϖʔδʹςΩετϑΟʔϧυΛ1ͭՃͯ͠Έ Α͏ – theme-settings.php ϑΝΠϧͷ࡞ – ؔͷ࣮ ԋशͰ༻͢ΔιʔείʔυGithubʹ͋Γ·͢ɻ https://github.com/hmaruyama/my-drupal9-theming/tree/vol7
ςʔϚͷઃఆΛ༻͢Δ
theme_get_settingؔ – ςʔϚͷPHPϑΝΠϧͰɺtheme_get_setting ؔΛݺͼग़͢͜ ͱͰϢʔβʔ͕ςʔϚઃఆϖʔδͰઃఆͨ͠ΛऔಘͰ͖·͢ɻ theme_get_setting('twitter_url');
TwigςϯϓϨʔτͰઃఆΛ༻͢Δ ઃఆΛςϯϓϨʔτϑΝΠϧʹ͢ʹɺϓϦϓϩηεؔͰɺtheme_get_settingؔΛ༻ͯ͠ઃ ఆΛऔಘ͠ɺvariablesྻʹೖ͠·͢ɻ function marucha_preprocess_page(&$variables) { $variables['twitter_url'] = theme_get_setting('twitter_url'); }
marucha.theme ͦ͏͢Δ͜ͱͰɺtwigϑΝΠϧͰ௨ৗͷTwigมͱಉ͡Α͏ʹΞΫηεͰ͖·͢ɻ <li><a href="{{ twitter_url }}" target="_blank">Twitter</a></li> page.html.twig
ԋश ઃఆΛTwigςϯϓϨʔτͰ༻ͯ͠ΈΑ͏ – *.themeϑΝΠϧʹϓϦϓϩηεؔΛ࣮ – TwigςϯϓϨʔτͷฤू ԋशͰ༻͢ΔιʔείʔυGithubʹ͋Γ·͢ɻ https://github.com/hmaruyama/my-drupal9-theming/tree/vol7
ςʔϚΠϯετʔϧ࣌ʹ ॳظΛηοτ͢Δ
ςʔϚʹॳظΛηοτ͢Δ – ςʔϚઃఆʹɺॳظΛઃఆ͢Δ͜ͱ͕ՄೳͰ͢ɻ – ςʔϚσΟϨΫτϦʹ config/install/*.settings.yml ϑΝΠϧΛ࡞͠ɺ͜ͷ தͰՃ͢ΔϑΥʔϜཁૉͷॳظΛΩʔόϦϡʔܗࣜͰηοτ͠·͢ɻ – ͜ͷॳظςʔϚͷΠϯετʔϧ࣌ʹө͞Ε·͢ɻ
logo: use_default: false # ςʔϚͷϩΰը૾Λ༻͠ͳ͍ twitter_url: 'https://twitter.com' # Twitter URLͷσϑΥϧτ config/install/marucha.settings.yml
ԋश ΧελϜςʔϚͷςʔϚઃఆʹॳظΛηοτͯ͠ΈΑ͏ – config/install/*.settings.yml ϑΝΠϧΛ࡞ – ςʔϚΛ࠶Πϯετʔϧͯ͠ɺॳظ͕ηοτ͞ΕΔ͔֬ೝ ԋशͰ༻͢ΔιʔείʔυGithubʹ͋Γ·͢ɻ https://github.com/hmaruyama/my-drupal9-theming/tree/vol7
࿅श
ΧελϜςʔϚͰςʔϚઃఆΛΧελϚΠζ͢ΔࡍʹɺͲͷϑΝΠϧʹϑοΫؔ Λهड़Ͱ͖·͔͢ʁ2ͭબ͍ͯͩ͘͠͞ɻ 1. *.theme 2. src/Form/SettigsForm.php 3. index.php 4. theme-settings.php
࿅श1
ΧελϜςʔϚͰςʔϚઃఆΛΧελϚΠζ͢ΔࡍʹɺͲͷϑΝΠϧʹϑοΫؔ Λهड़Ͱ͖·͔͢ʁ2ͭબ͍ͯͩ͘͠͞ɻ 1. *.theme 2. src/Form/SettigsForm.php 3. index.php 4. theme-settings.php
࿅श1 ਖ਼ղɿ1, 4
ςʔϚݻ༗ͷઃఆʹॳظΛ༻ҙ͢ΔࡍʹɺඞཁͳϑΝΠϧ࣍ͷ͏ͪͲΕ Ͱ͔͢ʁ 1. *.settings.yml 2. config/install/*.settings.yml 3. config/schema/*.schema.yml 4. theme-settings.php
5. *.theme ࿅श2
ςʔϚݻ༗ͷઃఆʹॳظΛ༻ҙ͢ΔࡍʹɺඞཁͳϑΝΠϧ࣍ͷ͏ͪͲΕ Ͱ͔͢ʁ 1. *.settings.yml 2. config/install/*.settings.yml 3. config/schema/*.schema.yml 4. theme-settings.php
5. *.theme ࿅श2 ਖ਼ղɿ2
ຊͷΞδΣϯμऴྃ
1. ςʔϚݻ༗ͷઃఆ 2. ςʔϚઃఆΛΧελϚΠζ͢Δ 3. ςʔϚͷઃఆΛ༻͢Δ 4. ςʔϚΠϯετʔϧ࣌ʹॳظΛηοτ͢Δ 5. ࿅श
ΞδΣϯμ
None