magento - 通过local.xml文件更改 block 的顺序

标签 magento block

是否可以通过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>

此Layout XML指令可以满足您的需求。查看insert方法的参数简短引用:
  • blockName是您在整个布局中的块唯一名称,product.view例如
  • siblingName是一个块唯一名称,该名称已存在于插入目标块中,用于定位块。留空以将其显示在顶部或底部。
  • after是块位置的 bool(boolean) 标识符。如果等于1,则如果siblingName为空
  • ,则该块将添加到siblingName之后或子列表的底部
  • alias是您的块的别名,如果为空,将使用块的名称。

  • 一些例子:

    最近查看过的产品后,移动购物车侧栏块
    <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的合作!

    关于magento - 通过local.xml文件更改 block 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4410206/

    相关文章:

    magento - 什么是 Magento "Backend"模型?

    magento - 如何删除 Magento Dataflow Import 上传的文件?

    弹出窗口中的 Magento 产品评论表

    ruby-on-rails - 在这部分代码中设置 klass = self 的动机是什么

    java - 信号量如何阻塞和解除阻塞

    hadoop - HDFS 上的文件 block

    io - block 级 I/O 跟踪

    php - Magento : How to change the markup of category page?

    magento - 设置客户属性的前端标签 - magento

    Ruby: block 和产量