2013-02-26 79 views
0

我需要對從標準Magento頂級導航顯示的子導航進行一些主要編輯。Magento:編輯頂級導航子導航結構

我進入了top.phtml,發現它調用了核心法師代碼中的函數,在調用這個函數之前是否可以在我的主題中運行一個文件,或者是否必須創建一個完全自定義的導航/使用擴展名?

+0

你以前的文件是什麼意思?你能給我一個你想要做什麼的例子嗎? – Andrew 2013-02-26 13:27:04

+0

由於Mage_Catalog_Block_Navigation類及其某些功能,因此顯示菜單。您可以創建自己的模塊來擴展該模塊並根據需要進行調整。 – dagfr 2013-02-26 13:28:17

+0

我有多少控件可以擴展它?我認爲這是一種選擇,但從我所見到的方法來看,它是相當封閉的。 /但我最想要的是知道我需要放置這個文件的副本(比如製作主題時),而不是標準。 – 2013-02-26 15:07:20

回答

1

要覆蓋Mage_Catalog_Block_Navigation

app/etc/modules/Yourmodule_Catalog.xml

<?xml version="1.0"?> 
<config> 
<modules> 
    <Yourmodule_Catalog> 
     <active>true</active> 
     <codePool>local</codePool> 
     <depends /> 
    </Yourmodule_Catalog> 
</modules> 
</config> 

在​​:

<?xml version="1.0"?> 
<config> 
<modules> 
    <Yourmodule_Catalog> 
     <version>0.1.0</version> 
    </Yourmodule_Catalog> 
</modules> 

<global> 
    <blocks> 
     <catalog> 
      <rewrite> 
       <navigation>Yourmodule_Catalog_Block_Navigation</navigation> 
      </rewrite> 
     </catalog> 
    </blocks> 
</global> 

app/code/local/Yourmodule/Catalog/Block/Navigation.php

<?php 
class Yourmodule_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation 
{ 
.... the methods you want to override... 
} 

就是這樣。

2

你總是樂意用你自己的標記替換design/frontend/[package]/[theme]/catalog/navigation/top.phtml模板,然後你可以隨心所欲地進行迭代。

Block類已經提供了可用於構建您的導航菜單你喜歡它的一些基本方法,如getStoreCategories()isCategoryActive()getCurrenetChildCategories()

另外,由彼得所說,你可以重寫Block類來更改特定的方法或包含您可以從模板文件訪問的自己的方法。