删除类别时,我需要运行一些 SQL 来清除 Magento 中的一些自定义表。考虑到这一点,我一直在关注此处列出的示例:Magento - 覆盖核心文件
我已将其输入到我的 config.xml 中:
<global>
<models>
<catalog>
<rewrite>
<category_api>MyCompany_MyModule_Model_Catalog_Category_Apis</category_api>
</rewrite>
</catalog>
</models>
</global>
然后我创建了文件结构:
MyCompany
-> MyModule
-> Model
->Catalog
->Category
->Api.php
在 Api.php 文件中,我有以下内容:
class MyCompany_MyModule_Model_Catalog_Category_Api extends Mage_Catalog_Model_Category_Api
{
public function delete($categoryId)
{
Mage::log('I have overidden deletion of: ' . $categoryId);
return true;
}
}
使用此设置时,system.log 中没有任何内容,所以我认为我做错了什么。
编辑:
将我的 XML 更改为<category> </category>
似乎使它包含我的文件,因为我现在收到一个错误:
Fatal error: Call to a member function setStoreId() on a non-object in C:\xampp\htdocs\magento\app\code\core\Mage\Adminhtml\controllers\Catalog\CategoryController.php on line 52
覆盖课程时我需要做一些特别的事情吗?