2012-03-14 56 views
0

從一個大部分新鮮的CE 1.6.2.0安裝開始,我想要刪除找到的核心/模板塊的默認XML實例標題。該塊被命名爲「top.search」,並與form.mini.phtml綁定。爲什麼不能正常工作:<remove name =「header.top.search」/>

在我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,它們被放置在它們適當命名的骨架塊「right」和「left」中。

回答

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問題,我不知道爲什麼搜索塊是用絕對定位。我想這只是由默認主題設計師做出的選擇。

+0

安德斯,我不知道你是否可以評論我的後續行動,我修改了編輯:部分,讓我頭痛的事情的核心。謝謝 – 2012-03-14 08:38:24

+0

你的代碼爲新塊看起來是正確的,但也許你把它添加到了錯誤的地方。必須在創建catalog.topnav塊之後加載它。你在哪裏添加了新的XML代碼? – 2012-03-14 09:10:24

+0

我把它內 .....(在那個local.xml) – 2012-03-14 09:20:13