我试图覆盖位于app / code / core / Mage / Catalog / Block / Navigation.php的类Mage_Catalog_Block_Navigation
我创建了这三个文件:
1.- app / code / local / Global / Catalog / Block / Navigation.php
2.- app / code / local / Global / Catalog / 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.......
}
}
我一直试图覆盖这种方法,但我不能,有人可以指导我吗?也许检查一下我还没有注意到的错字或者我错过了什么?
谢谢,
答案 0 :(得分:0)
尝试<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>
答案 1 :(得分:0)
确定。所以问题是我试图覆盖Magento的核心文件。当我第一次提出问题时,我正在创建一个模块,而不是覆盖现有模块。因此,如果您想以正确的方式覆盖Magento文件,那么对于那些人来说,就是这样做的。非常简单。
我试图覆盖位于
的Mage_Catalog_Block_Navigation应用程序/代码/核心/法师/目录/砌块/ Navigation.php
我需要它做的就是创建相同的根和文件夹,尽管在LOCAL文件夹中。就是说,这将是我覆盖课程的路线。
应用程序/代码/本地/法师/目录/砌块/ Navigation.php
注意LOCAL而不是CORE。 Navigation.php基本上是相同的核心文件(Copy&amp; Paste),虽然我试图覆盖的功能
function protected function _renderCategoryMenuItemHtml(...)
在我的newley创建的文件中,将返回另一个与核心文件不同的语句。
祝你好运。