Magento 通过local.xml文件更改块的顺序

Magento 通过local.xml文件更改块的顺序,magento,block,Magento,Block,是否可以通过local.xml文件更改现有块的顺序? 我知道可以使用after或before属性更改块的顺序,但是如何更改现有块的这些属性呢 例如,如果我想将分层导航块放在左列的新闻稿订阅块下面,我将如何操作?您需要执行一个小技巧,删除子块并将其添加到新位置: <reference name="parent.block.name"> <action method="unsetChild"> <alias>child_block_alia

是否可以通过local.xml文件更改现有块的顺序? 我知道可以使用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>
在最近查看的产品之前移动购物车侧栏块

<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>

购物车侧边栏
购物车侧边栏
右。报告。产品。已查看
0
将购物车侧边栏块移动到右侧块的末尾

<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>

购物车侧边栏
购物车侧边栏
1.
移动左侧块顶部的购物车侧栏块

<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的合作

您可以删除以前的分层导航块,并在新闻稿块之后添加新的分层导航块

<reference name="left">
 <remove name="catalog.leftnav" />
 <block type="catalog/layer_view" name="catalog.leftnavcustom" after="left.newsletter" template="catalog/layer/view.phtml"/>
</reference>


请注意,我为新块使用了自定义名称。

接受的答案对我不起作用(EE1.14),但与之相近,如下所示:

<wishlist_index_index>
    <reference name="customer.wishlist.items">
        <action method="unsetChild">
             <name>customer.wishlist.price</name>
        </action>
        <action method="insert">
            <blockName>customer.wishlist.price</blockName>
            <after>customer.wishlist.qty</after>
        </action>
    </reference>
</wishlist_index_index>

顾客、愿望、价格
顾客、愿望、价格
客户愿望清单数量

虽然我知道操作参数的名称是不相关的,但您始终使用了s/subling/sibling/g:)@Nick,是的,只有参数的顺序才重要,参数的名称不用于方法调用。您好,感谢分享本教程。但是我有一个初学者的问题。我怎样才能得到完整的街区列表?@Denys:这应该是它自己的问题。页面使用页面顶部的提问。