MagentoのレイアウトXMLを知る〜actionタグ〜
この記事は公開から 1年以上が経過しています。現在の最新情報との整合性については弊社では一切の責任を負いかねます。
MagentoのレイアウトXMLには、actionタグというblockのpublicメソッドを呼び出せるタグがあります。
publicメソッドにはいろいろな種類がありますが、基本的なルールと、属性について説明します。
actionタグを記述できる場所
actiontタグは以下の2種類のタグの子要素としてのみ記述できます。
- block
- reference
他のタグの子要素に記述しても動作しないので注意してください。
利用できる属性
actionタグには固定で定義されている以下の属性があります。
- method
- ifconfig
- json
それぞれ特有の機能があるので、個別に説明します。
method
method属性は、actionタグで指定するメソッド名を記述します。
親要素のblockクラスに定義されているpublicメソッドであれば、呼び出し可能です。
但し、定義されている引数によってはレイアウトXML上で表現が難しいものがあります。
レイアウトXML上で指定できるのは、文字列または数値が引数が現実的なところでしょう。
ifconfig
ifconfig属性は管理画面の「システム>設定」画面で設定できる設定項目を判断基準として、メソッドの実行を判断するために使用します。
ifconfig属性に特定の設定パス(設定画面の項目の値を保存している、core_config_dataテーブルの列です)を指定することで、管理画面から特定のブロックの振る舞いを制御することも可能です。
ifconfig属性に指定する値は、core_config_dataテーブルの、path列を調べることでわかりますが、他にも設定画面の入力項目のnameを調べることでもわかります。
json
json属性はあまり使われていない属性です。
この属性に半角スペース区切りで、次に説明するメソッドの引数名を指定すると、引数の値をjsonデコードします。
とはいえ現状あまり使われていない機能なので、使う機会はあまりないでしょう。
メソッドの引数を記述する方法
メソッドの引数を指定するには、メソッドの定義をまず確認する必要があります。
というのも、引数をタグで指定するのですが、このときタグ名とメソッドの定義に書かれている引数の名称を揃えないといけないからです。
もし、タグ名と引数の名称が一致しない場合は、その引数は定義されていないことになり、省略できない引数の場合は未定義としてエラーになります。
例えば、CSSやJavaScriptファイルをHTMLヘッダとして追加する場合は、headブロックのactionを呼び出します。
以下の例を見てください。
skin_css css/styles-ie.css lt IE 8
この例では、addItemメソッドを定義し、
- type
- name
- params
- if
という引数のタグを定義しています。
paramsタグは空タグですが、その他のタグにはすべて値が設定されています。
actionタグのメソッドに引数をあたえる場合は、このように引数1つ1つをタグとして記述する事が必要です。
- お知らせ (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)