在magento中如何修改block某个特定页面的样式,甚至功能呢?这个应用应该是很广泛的。同样的一个block,要想在某个特定的页面,如产品显示页面,让它的内容,样式不一样,如何实现?
很简单,magento超强的xml配置功能,可以轻松搞定。以logo block为例,如果我想让cms首页的logo显示不一样,使用不同的模板,可以这样做:
在page.xml中,添加:
<cms_index_index>
<reference name="header">
<action method="unsetChild"><name>logo</name></action>
<block type="page/html_header" name="logo" as="logo" template="page/html/logo-home.phtml"/>
</reference>
</cms_index_index>
这段xml配置是很清楚的,简单说明一下,cms_index_index说明了我们要对哪个页面进行修改,其次,header是我们所要修改的logo block原先所在的父block,unsetChild action则是删除掉原先的logo block设置,接下来则是重新定义这个block,很明显,我们不但可以是简单的换个模板,甚至可以通过修改type参数来调用其它的block。
出处:http://blog.csdn.net/xinhaozheng/archive/2010/01/28/5267483.aspx