Magento的Module layout update

在Magento中xml是模块配置的利器,有时开发一个Magento的模块时,需要添加模块的layout update。

添加前台的layout XML需要在模块的config.xml添加frontend节点。

<frontend><layout><updates><name><file>name.xml</file></name></updates></layout></frontend> 

添加后台的layout xml需要在config.xml添加adminhtml节点

<adminhtml><layout><updates><name><file>name.xml</file></name></updates></layout></adminhtml> 

需要注意的是name.xml的位置,Magento 查找layout文件的顺序为

/app/design/frontend/default/default/layout/name.xml
/app/design/frontend/base/default/layout/name.xml

推荐放在

/app/design/frontend/default/default/layout/name.xml</```
即可。

在name.xml文件中可以修改页面的布局。

<layout><customer_account_create><reference name="head"><action method="addItem" ifconfig="customer/address/enabled"><type>skin_js</type><name>js/name.js</name><params></params></action></reference></customer_account_create></layout>
“`

在这个name.xml中向head添加了一段js。神奇的地方在于可以在xml里自定义加载条件,如ifconfig属性。

Magento解析到该模块的layout xml时会判断ifconfig属性的值为true or false。根据ifconfig的值来决定是否执行addItem方法。

换成php语言的逻辑如下:

if(customer/address/enabled == true){
//exe addItem method
//add name.js to head
}

注意name.js的路径和name.xml的类似,同样是从查找顺序为:

/skin/frontend/default/default/js/name.js
/skin/frontend/base/default/js/name.js

发表评论

电子邮件地址不会被公开。 必填项已用*标注