我想重写核心模型类,但我找不到正确的方法。
我已经用谷歌搜索了很多,但是一些示例显示了如何覆盖不在
app/code/core/Mage/Core/Model
文件夹中的模型,并且一些示例显示了如何覆盖位于 Core
子目录中的模型目录,如 app/code/core/Mage/Core/Model/Resources/Eav/Mysql4/
。
我已阅读示例,但我仍然找不到覆盖它的方法。例如,我想覆盖
app/code/core/Mage/Core/Model/Store.php
这是我使用的 xml,但它不起作用。请帮我找出哪个部分是错误的。预先感谢!
app/etc/models/My_Core
<config>
<modules>
<My_Core>
<active>true</active>
<codePool>local</codePool>
</My_Core>
</modules>
</config>
app/code/local/My/Core/etc/config.xml
<config>
<modules>
<My_Core>
<version>0.1.0</version>
</My_Core>
</modules>
<global>
<models>
<my_core_store>
<rewrite>
<class>My_Core_Model_Store</class>
</rewrite>
</my_core_store>
</models>
</global>
</config>
新的 Store.php 文件位于
app/code/local/My/Core/Model/Store.php
。 magento版本是1.8.1.0
您的 config.xml 有一些错误。就这样跟着去吧..
< ?xml version="1.0"?>
<config>
<modules>
<my_core>
<version>0.1.0</version>
</my_core>
</modules>
<global>
<models>
<core>
<rewrite>
<store>My_Core_Model_Store</Store>
</rewrite>
</core>
</models>
</global>
</config>
同样在模型类中,您需要扩展父类名称。例如:
My_Core_Model_Filename extends Mage_Core_Model_Store
对于他们中的大多数人来说
<modulename>
<rewrite><path_to_file>My_Extension_Path_To_Extended_File</path_to_file>
</modulename>
所以在你的情况下是
<core>
<rewrite><store>My_Core_Model_Store</store></rewrite>
</core>
尽管如此,请注意,对于 Mysql4 或资源文件,它们是在
modulename_mysql4
或 modulename_resource
下定义的。