Magento CE-1.9で改良されたフォールバックを理解する
この記事は公開から 1年以上が経過しています。現在の最新情報との整合性については弊社では一切の責任を負いかねます。
Magento CE-1.9ではフォールバック機構に改良が加えられています。
もちろん、1.8までのフォールバック機構も利用できますが、新たに実装された仕組みを知っておくと、テーマのカスタマイズ・開発がやりやすくなります。
フォールバックとは
フォールバックは、Magentoのテンプレートやスキンをカスタマイズする上で欠かせない要素です。1つのテーマはテンプレートとスキンから構成されますが、更に細かく見ていくと、
- テンプレートファイル
- レイアウトXML
- ロケールCSV
- 画像
- CSS
- JSファイル
といった要素から成り立っています。
これらは非常に多くのファイルから構成されているため、カスタムテーマを作成する際に、すべてのファイルに目を通すことは非常に大変な作業になります。
そこで、フォールバックの出番です。
フォールバックは、今使用しているテーマに存在しないファイルを自動的に親テーマから探して使用するという機能です。
つまり、フォールバックがあることによって、Magentoのテーマカスタマイズは、必要なファイルだけをカスタマイズすれば済むようになっているのです。
フォールバックの制約
良いことばかりのように思えるフォールバックですが、制約もあります。
1.8までのフォールバックは、今使用しているテーマを起点にして、最大2階層までしか利用できませんでした。
最大2階層、のうち1階層は、管理画面のデザイン設定で指定する標準テーマなので、「mytheme」というデザインパッケージで、「themeA」というテーマを利用しながら、標準テーマを「default」とした場合は、以下のような流れでフォールバックが動作します。
mytheme/themeA -> mytheme/default -> base/default
このように今使用しているテーマを起点にして、最終的にはbase/defaultという、すべての基本になるテーマが適用される構造になっています。
このため、何かのテーマをベースにカスタマイズする際は、元々のテーマをまるごとコピーしてカスタマイズするなどしなければなりませんでした。
1.9でのフォールバック
1.9でのフォールバックは、「theme.xml」という新たな設定ファイルを用いることで、テーマに対する親テーマを任意に指定できるようになりました。
この仕組みは、本来Magento2で導入される予定だったものなのですが、Magento1.xにも反映されたようです。
theme.xmlとは
theme.xmlは、「app/design/frontend/パッケージ名/テーマ名/etc/」 に配置される、テーマ専用の設定ファイルです。
以下のように記述すると、そのテーマの親テーマを明示的に指定することができます。
このファイルがそもそも存在しない場合は、1.8までと同じ動きをします。
default/default
theme.xmlでテーマ固有のレイアウト定義を定義する
theme.xmlは、単に親テーマを指定するだけではありません。
そのテーマ固有の定義を記述したレイアウトXMLを指定することができます。
定義したい場合は、以下のように記述します。
default/default mytheme.xml
mytheme_update.xmlは普通のレイアウトXMLなので、ごく普通に定義すればOKです。
ただし、この定義はフォールバック対象外です。そのテーマ限定のものなので、他のテーマに影響することはありません。
このようにMagento CE-1.9ではフォールバック機構に改良が加えられ、親テーマ・子テーマという概念が導入されています。
うまく使いこなして、カスタマイズ作業の効率をアップさせたいものです。
- お知らせ (34)
- Magento Open Source (169)
- Adobe Commerce (86)
- Magentoトピックス (349)
- Magentoバージョンアップ (11)
- OroCommerce (1)
- AkeneoPIM (16)
- Shopware (26)
- 世界のプライバシー保護規制 (11)
- OroCRM (14)
- Typo3 (9)
- イベント (27)
- Mage-OS (1)
- エクステンションリリース情報 (75)
- Mautic (1)