在遵循magento的规则情况下,使用"local.xml"来重写或更新xml布局是最好的方法 这篇文章是针对那些还不知道“local.xml”方法的。如果你已经在使用它,那恭喜你。如果没有,你绝对应该使用它。 这个其实很简单:只使用一个文件时,就是local.xml,放置在你的主题文件夹layput下覆盖或更新主题所有设计的XML。 优点:
1. 仅仅只用一个文件就可以管理和更新magento主题的xml 缺点: 1. 目前我还没发现,除非你不是想把代码更清晰明了,以后修改主题不是你的事情. 如何使用local.xml文件.你需要做的就是创建一个插入你的主题文件夹里面并写入你的xml.由于magento是通过xmk文件读取的,所以它将首先搜索新创建的local.xml的变化并且重写和更新,然后再进入base文件夹里的.xml. 如何设置local.xml:
1. 在你的主题layout文件夹下创建local.xml文件 (app/frontend/default/your-theme/layout) <?xml version="1.0"?> <layout version="0.1.0"></layout> 3. 将要重写的xml结构放入,看下面的例子: 例子: 1. 从这个区域删除/添加javascript: <!-- Let’s remove sleight js for IE7--> <reference name="head"> <action method="removeItem"><type>js</type><name>lib/ds-sleight.js</name><params /><if>lt IE 7</if></action> </reference> <!-- Instead, add belated.js from your theme’s /js folder --> <action method="addItem"><type>skin_js</type><name>js/belated.js</name><params /><if>lt IE 7</if></action> 2. 仅仅只为这个category page添加一个layout,设置一个模板并添加一些javascript. <catalog_product_view translate="label"> <reference name="root"> <action method="setTemplate"> <template>page/1column.phtml</template> </action> </reference> <reference name="head"> <action method="addItem"><type>skin_js</type> <name>js/stereotabs.js</name></action> <action method="addItem"><type>skin_js</type> <name>js/shadowbox/shadowbox.js</name></action> </reference> </catalog_product_view> 3.从这个layput中移除指定的blocks(products compare, products viewed and related products) ,用 “remove” <default> <reference name="right"> <remove name="catalog.compare.sidebar" /> <remove name="left.reports.product.viewed" /> <remove name="catalog.product.related" /> </reference> 4. 从这个layput中移除指定的blocks(products compare, products viewed and related products), 用 method=”unsetChild” <!-- Removed the Newsletter from the left sidebar --> <action method="unsetChild"><name>left.newsletter</name></action> <action method="unsetChild"><name>tags_popular</name></action> </reference> </default> 当然local.xml有许多其他用途,但我这里只指出了添加,删除和更新模块,以更好地说明local.xml在开发流程的方式。 (责任编辑:好模板) |