Magento 覆盖核心块
Magento Override Core Block
我正在尝试覆盖位于 app/code/core/Mage/Catalog/Block/Navigation 的 class Mage_Catalog_Block_Navigation。php
我创建了这三个文件:
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.......
}
}
我一直在尝试覆盖此方法,但我不能,有人可以指导我吗?也许检查一些我还没有注意到的拼写错误或者我是否遗漏了什么?
谢谢,
尝试 <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
app/code/core/Mage/Catalog/Block/Navigation.php
我需要它做的就是创建相同的根目录和文件夹,尽管在 LOCAL 文件夹中。话虽如此,这将是我覆盖 class.
的路线
app/code/local/Mage/Catalog/Block/Navigation.php
注意 LOCAL 而不是 CORE。 Navigation.php 基本上是相同的核心文件(复制和粘贴),尽管我试图覆盖的功能
function protected function _renderCategoryMenuItemHtml(...)
在我的 newley 创建的文件中,要 return 另一个与核心文件不同的语句。
祝你好运。
我正在尝试覆盖位于 app/code/core/Mage/Catalog/Block/Navigation 的 class Mage_Catalog_Block_Navigation。php
我创建了这三个文件:
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.......
}
}
我一直在尝试覆盖此方法,但我不能,有人可以指导我吗?也许检查一些我还没有注意到的拼写错误或者我是否遗漏了什么?
谢谢,
尝试 <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_Navigationapp/code/core/Mage/Catalog/Block/Navigation.php
我需要它做的就是创建相同的根目录和文件夹,尽管在 LOCAL 文件夹中。话虽如此,这将是我覆盖 class.
的路线app/code/local/Mage/Catalog/Block/Navigation.php
注意 LOCAL 而不是 CORE。 Navigation.php 基本上是相同的核心文件(复制和粘贴),尽管我试图覆盖的功能
function protected function _renderCategoryMenuItemHtml(...)
在我的 newley 创建的文件中,要 return 另一个与核心文件不同的语句。
祝你好运。