Magento - 使用更新XML删除块

时间:2013-06-05 10:02:55

标签: xml magento layout

如何使用布局xml文件删除已存在的块?具体来说,我想从名为“top.switches”的块中删除名为“currency”的块。它被插入到directory.xml文件中,如下所示:

<default>
    <reference name="top.switches">
        <block type="directory/currency" name="currency" before="store_language" template="directory/currency.phtml"/>
    </reference>
    <reference name="head">
        <block type="core/template" name="optional_zip_countries" as="optional_zip_countries" template="directory/js/optional_zip_countries.phtml" />
    </reference>
</default>

2 个答案:

答案 0 :(得分:37)

有两种方法可以通过另一个xml文件删除一个布局xml文件中定义的块:

<default>
    <reference name="top.switches">
        <action method="unsetChild"><name>currency</name></action>
    </reference>
</default>

按照惯例,您希望这样做:

<default>
    <reference name="top.switches">
        <remove name="currency" />
    </reference>
</default>

您可以找到各种布局xml元素here的说明,但它不包括action标记可用的方法。为此,您需要查看块类app / code / core / Mage / Core / Block / Abstract.php,它具有各种有用的功能,如unsetChild,unsetCallChild,insert,sortChildren等。

答案 1 :(得分:8)

在布局目录中添加名为local.xml的文件。然后在local.xml中,您可以使用&#34;删除&#34;删除任何块。标签 。 BTW删除标签应该在&#34; layout&#34;之间。和&#34;默认&#34; 那么文件应该是:

<?xml version="1.0" encoding="UTF-8"?>
<layout>
   <default>
     <remove name="BLOCK_NAME" />
  </default>
</layout>