我已经设法达到了解我如何在Magento布局中将列从列移动到列的点:通过在<reference>
标记中指定“left”或“right”属性。但是,我不明白如何更改出现块的 order 。我注意到<block>
标签的“之前”和“之后”属性有关,但我不确定它们是如何工作的。如果我想将一个块从其区域的顶部移动到我们页面中的任何其他位置,那么这些属性的正确用法和语法是什么?
例如,我有一个类别页面,我有这些块:
view.phtml
list.phtml
toolbar.phtml
......等等。
我想将块放在这些块中的任何位置,或者放在这些块的顶部,或者使所有这些块显示在另一个块内。如何使用“之前”和“之后”使用我的local.xml
文件来实现此目的?
注意:我可以通过继承各自的.xml文件来手动完成,但这不是解决问题的好方法。
答案 0 :(得分:6)
before
:用于在块之前定位块,并在值中指定名称。如果使用“ - ”值,则块位于其块嵌套级别的所有其他块之前。
after
:用于在具有值中指定名称的块之后定位块。如果使用“ - ”值,则块位于其块嵌套级别的所有其他块之后。
更新:来自一些随机核心布局更新的示例:
<reference name="right">
<block type="catalog/product_compare_sidebar" before="cart_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>
</reference>
<reference name="right">
<block type="catalog/product_list_related" name="catalog.product.related" before="-" template="catalog/product/list/related.phtml"/>
</reference>
已更新:我相信before
和after
仅适用于core/text_list
和类似(后代)块,即仅阻止其嵌套块的块。