[英]Magento Override Core Block
我正在嘗試覆蓋位於app / code / core / Mage / Catalog / Block / Navigation.php的Mage_Catalog_Block_Navigation類
我創建了這三個文件:
1.-應用程序/代碼/本地/全局/目錄/塊/Navigation.php
2.-應用程序/代碼/本地/全局/目錄/etc/config.xml
3.-app / etc / modules / Global_All.xml
碼:
Global_All.xml
<?xml version="1.0"?>
<config>
<modules>
<Global_Catalog>
<active>true</active>
<codePool>local</codePool>
</Global_Catalog>
</modules>
</config>
config.xml中
<?xml version="1.0"?>
<config>
<modules>
<Global_Catalog>
<version>1.0</version>
</Global_Catalog>
</modules>
<global>
<blocks>
<catalog>
<rewrite>
<navigation>Global_Catalog_Block_Navigation</navigation>
</rewrite>
</catalog>
</blocks>
</global>
</config>
Navigation.php
class Global_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation
{
protected function _renderCategoryMenuItemHtml(...){
.......rewriting code for this method.......
}
}
我一直在嘗試覆蓋此方法,但是我不能,有人可以指導我嗎? 也許檢查一些我還沒有注意到的錯字,或者我錯過了什么?
謝謝,
嘗試<navigation>Mage_Catalog_Block_Navigation</navigation>
並將您的Naviation.php重命名為
class Global_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation
{
protected function _renderCategoryMenuItemHtml(...){
.......rewriting code for this method.......
}
}
最后,將module.xml更改為
<modules>
<Mage_Catalog>
<active>true</active>
<codePool>local</codePool>
</Mage_Catalog>
</modules>
好。 所以問題是我試圖覆蓋Magento的核心文件。 當我第一次提出問題時,我正在創建一個模塊,而不是覆蓋現有模塊。 因此,如果您想以正確的方式覆蓋Magento文件,對於您的同事來說,這就是您的做法。 很簡單。
我試圖覆蓋位於的Mage_Catalog_Block_Navigation
應用程序/代碼/核心/法師/目錄/座/ Navigation.php
我需要做的就是創建相同的根目錄和文件夾,盡管它們位於LOCAL文件夾中。 話雖如此,這將是我覆蓋課程的途徑。
應用程序/代碼/本地/法師/目錄/座/ Navigation.php
注意本地而不是核心。 盡管我試圖覆蓋該功能,但Navigation.php基本上是相同的核心文件(復制和粘貼)
function protected function _renderCategoryMenuItemHtml(...)
在我的newley創建的文件中,將返回另一個與核心文件不同的語句。
祝好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.