为什么这不起作用:<remove name =“header.top.search”> </remove>

时间:2012-03-14 04:44:52

标签: magento

从大多数新的CE 1.6.2.0安装开始,我想删除标头中找到的核心/模板块的默认XML实例。该块名为“top.search”,与form.mini.phtml绑定。

在我的local.xml中,我的第一个想法就是添加:

<default>
    <remove name="header.top.search"/>
</default>

这适用于我试图删除的任何其他块(即,将骨架块名称(例如,“标题”)添加到内容块名称的开头),但不是这个。为什么呢?

我发现这确实有效:

<default>
    <reference name="header">
        <remove name="top.search"/>
    </reference>
</default>

但我当然认为这基本上是一回事。

我实际上打算将它移到我的导航栏中,所以我知道我还需要在top.menu骨架块中实例化一个新的核心/模板块。

然而,另一个问题是,为什么默认的CSS设置为.header .form-search使用绝对定位?

我想这是两个问题,但至少相关:) 谢谢亲切的先生们!

编辑:谢谢,所以,我只是使用了错误的块名称!我对所有新手第一次遇到的块的命名感到困惑:left.permanent.callout,right.permanent.callout,它们都被放入他们适当命名的骨架块“右”和“左”。

1 个答案:

答案 0 :(得分:1)

<remove name="header.top.search"/>不起作用,因为块的名称不是header.top.search。该块在catalogsearch.xml中定义如下:

<block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"/>

该块的名称为top.search,因此要删除它,请使用<remove name="top.search"/>

您不必将删除标记放在引用标记内。删除标签对布局对象中的所有块全局工作。这也是父块名称无关紧要的原因,不应该在块名称前加上。

关于你的CSS问题,我不知道为什么搜索块是用绝对定位制作的。我想这只是设计师对默认主题的选择。