2012-06-16 71 views
1

我創建了一個名爲nav_container的div,我希望將Magento產品類別放置在該div中,而不是默認標題中。如何在我自己的div中添加產品類別?

要做到這一點,最簡單的方法是什麼?我已經研究了很長時間沒有解決方案。感謝您的任何建議。我正在使用Magento 1.7。

+1

你可能想給你的問題一個更相關的標題。現在它只告訴我們這是關於Magento相關的東西,這已經是一個標籤。 – Bart

回答

3

有幾種方法來實現這一目標:

  1. 複製app/design/frontend/base/default/page/html/topmenu.phtmlapp/design/frontend/your_package/your_theme和簡單地添加在你的包裹格。

  2. 編輯app/design/frontend/your_package/your_theme/page/html/header並找到行:<?php echo $this->getChildHtml('topMenu') ?>,只是圍繞着它與你的div

  3. 你也可以使用佈局文件,特別是page/html_wrapper塊 - 但是對於這個簡單的例子中選擇1或2個最有可能是最好的選擇

編輯

請參閱下面的正確的解決方案後意識到你的混淆塊

好吧,首先,塊在Magento中有一個非常具體的含義,完全不同於一個HTML標記。你可以找到塊的定義在這裏:http://www.magentocommerce.com/design_guide/articles/magento-design-terminologies4#term-blocks

現在,移動頂部導航在1.7 CE:

與以往一樣,在Magento的佈局,你有兩個主要選擇:在基地佈局文件複製到當前主題和編輯,或者在主題中使用local.xml文件來覆蓋所有基礎佈局。

每個人都有優點和缺點 - 儘管我會主張你使用local.xml,除非有特定的理由不這樣做。但它是完全由你選擇哪種方法

app/design/frontend/your_package/your_theme/layout/local.xml 
<layout version="0.1.0"> 

    <!-- Other layout xml --> 

    <!-- 
     Unset the nav from the header 
    --> 
    <reference name="header"> 
     <action method="unsetChild"><alias>topMenu</alias></action> 
    </reference> 

    <!-- 
     Insert it into your new containing block 
    --> 
    <reference name="nav_container"> 
     <action method="insert"><alias>top.menu</alias></action> 
    </reference> 

    <!-- Other layout xml --> 

</layout> 

2.複製在基本文件:)

1.使用local.xml中

第一,複製app/design/frontend/base/default/layout/page.xmlapp/design/frontend/your_package/your_theme/layout/page.xml

找到頭塊,而如果不變將是完全如下:

<block type="page/html_header" name="header" as="header"> 
    <block type="page/template_links" name="top.links" as="topLinks"/> 
    <block type="page/switch" name="store_language" as="store_language" template="page/switch/languages.phtml"/> 
    <block type="core/text_list" name="top.menu" as="topMenu" translate="label"> 
     <label>Navigation Bar</label> 
     <block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml"/> 
    </block> 
    <block type="page/html_wrapper" name="top.container" as="topContainer" translate="label"> 
     <label>Page Header</label> 
     <action method="setElementClass"><value>top-container</value></action> 
    </block> 
</block> 

,並更改爲:

<block type="page/html_header" name="header" as="header"> 
    <block type="page/template_links" name="top.links" as="topLinks"/> 
    <block type="page/switch" name="store_language" as="store_language" template="page/switch/languages.phtml"/> 
    <block type="page/html_wrapper" name="top.container" as="topContainer" translate="label"> 
     <label>Page Header</label> 
     <action method="setElementClass"><value>top-container</value></action> 
    </block> 
</block> 

在這一點上,你只需從佈局刪除top.menu塊。

接下來,您需要將塊添加回正確節點下的佈局:nav_container。

所以,無論你正在聲明你nav_container塊添加一個子節點的XML你刪除即:

<block type="core/text_list" name="top.menu" as="topMenu" translate="label"> 
    <label>Navigation Bar</label> 
    <block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml"/> 
</block> 

最後清空緩存並重新加載頁面。

+0

前兩個不起作用:它會簡單地將導航菜單包裝在具有相同ID的div中,但仍然嵌套在標題div內。您能否詳細說明選項3? – user1448260

+0

因此,您想要將導航欄完全移出頁眉,並將其完全放入另一個單獨的塊中? –

+0

是的,我做了一個自定義模板,你把它稱爲'塊',我只是將其稱爲div。所以我想用div命名爲'left_container'。 –

相關問題