这个需求太现实了。Magento是很灵活,好多的功能分割成一个个区块(block,其它的框架中也有类似概念,如seagull php框架,但是没magento灵活),比如购物篮,货币切换器,语言切换器,newsletter模块…不同的客户肯定会有不同的要求,这就需要对这些Block的位置做调整。

Magento是通过Theme下面的Layout文件对这些block定位的,所以我们需要做的是根据Magento的layout语法来修改这些xml文件。

比如我们要将product compare block(产品比较区块)显示在左栏第一个,当然我的布局中是包含了左栏。我只需要给prodct compare block添加一个 before=’-’ 参数即可,如下所示:

<reference name="left">
	<block type="core/template" before="-" name="catalog.compare.sidebar" template ="catalog/product/compare/sidebar.phtml" />
</reference>
简单解释下相关的参数:

before=”-” 作为第一个block,当有多个block指定该参数值时,后出现的优先; after=”-” 作为最后一个block; before=”block_name” 显示在block_name前面; after=”block_name”显示在block_name后面。