可以通过local.xml文件更改已经存在的块的顺序吗?
我知道您可以使用after或before属性更改块的顺序,但如何更改现有块的这些属性。
我知道您可以使用after或before属性更改块的顺序,但如何更改现有块的这些属性。
例如,如果我想将分层导航块放在左栏中的通讯订阅块的下面,我该如何做?
您需要执行一个小技巧,删除子块并将其添加到新位置:
<reference name="parent.block.name"> <action method="unsetChild"> <alias>child_block_alias</alias> </action> <action method="insert"> <blockName>child.block.name</blockName> <siblingName>name_of_block</siblingName> <after>1</after> <alias>child_block_alias</alias> </action> </reference>
此布局XML指令执行所需的操作。看看这个参考的参考插入方法:
> blockName是整个布局中的块唯一名称,例如product.view
> siblingName是块唯一的名称,它已经存在于插入目标块中,用于定位块。留空以显示在顶部或底部。
之后是块位置的布尔标识符。如果等于1,则该块将在siblingName之后添加,或者在子列表的底部添加,如果siblingName为空
>别名是您的块的别名,如果为空,则将使用块的名称。
一些例子:
最近浏览产品后,移动车侧栏
<reference name="right"> <action method="unsetChild"> <alias>cart_sidebar</alias> </action> <action method="insert"> <blockName>cart_sidebar</blockName> <siblingName>right.reports.product.viewed</siblingName> <after>1</after> </action> </reference>
在最近浏览的产品之前移动推车侧边栏
<reference name="right"> <action method="unsetChild"> <alias>cart_sidebar</alias> </action> <action method="insert"> <blockName>cart_sidebar</blockName> <siblingName>right.reports.product.viewed</siblingName> <after>0</after> </action> </reference>
在右侧块的末端移动车侧边栏块
<reference name="right"> <action method="unsetChild"> <alias>cart_sidebar</alias> </action> <action method="insert"> <blockName>cart_sidebar</blockName> <siblingName></siblingName> <after>1</after> </action> </reference>
在左侧方块的顶部移动车侧边栏块
<reference name="right"> <action method="unsetChild"> <alias>cart_sidebar</alias> </action> </reference> <reference name="left"> <action method="insert"> <blockName>cart_sidebar</blockName> </action> </reference>
喜欢与Magento合作!