我創建了一個名爲nav_container
的div,我希望將Magento產品類別放置在該div中,而不是默認標題中。如何在我自己的div中添加產品類別?
要做到這一點,最簡單的方法是什麼?我已經研究了很長時間沒有解決方案。感謝您的任何建議。我正在使用Magento 1.7。
我創建了一個名爲nav_container
的div,我希望將Magento產品類別放置在該div中,而不是默認標題中。如何在我自己的div中添加產品類別?
要做到這一點,最簡單的方法是什麼?我已經研究了很長時間沒有解決方案。感謝您的任何建議。我正在使用Magento 1.7。
有幾種方法來實現這一目標:
複製app/design/frontend/base/default/page/html/topmenu.phtml
到app/design/frontend/your_package/your_theme
和簡單地添加在你的包裹格。
編輯app/design/frontend/your_package/your_theme/page/html/header
並找到行:<?php echo $this->getChildHtml('topMenu') ?>
,只是圍繞着它與你的div
你也可以使用佈局文件,特別是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.xml
至app/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>
最後清空緩存並重新加載頁面。
前兩個不起作用:它會簡單地將導航菜單包裝在具有相同ID的div中,但仍然嵌套在標題div內。您能否詳細說明選項3? – user1448260
因此,您想要將導航欄完全移出頁眉,並將其完全放入另一個單獨的塊中? –
是的,我做了一個自定義模板,你把它稱爲'塊',我只是將其稱爲div。所以我想用div命名爲'left_container'。 –
你可能想給你的問題一個更相關的標題。現在它只告訴我們這是關於Magento相關的東西,這已經是一個標籤。 – Bart