如何重写Magento模型类?
很多时候当我想要实现新功能,但又不想修改核心类。对于控制器来说,这很简单。从核心文件中拷贝控制器,放到local中同样的位置,然后修改就可以了。但这不适用于模型,那么如何在不修改核心文件的前提下重写Magento模型呢?
幸运的是,这并不难。让我们一起做个插件吧。我们以app/code/core/Mage/Wishlist/Model/Item.php中的Mage_Wishlist_Model_Item为例。我们想要添加新的功能,所以创建新的模块。app/code/local/Alwayly/Wishlist/Model/Item.php。现在将Mage_Wishlist_Model_Item重命名为Alwayly_Wishlist_Model_Item并在loadByProductWishlist方法加入下面一行代码:
var_dump(get_class($this)); exit();
现在,在app/etc/modules/中创建Alwayly_Wishlist.xml,代码如下:
< ?xml version="1.0"?>
<config>
<modules>
<alwayly_wishlist>
<active>true</active>
<codepool>local</codepool>
</alwayly_wishlist>
</modules>
</config>
接着用下面的代码创建app/code/local/Alwayly/Wishlist/etc/Config.xml:
< ?xml version="1.0"?>
<config>
<modules>
<alwayly_wishlist>
<version>0.1</version>
</alwayly_wishlist>
</modules>
<global>
<models>
<wishlist>
<rewrite>
<item>Alwayly_Wishlist_Model_Item</item>
</rewrite>
</wishlist>
</models>
</global>
</config>
电商网站开发服务。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
上一篇:以编程的方式创建Magento并与布局关联 下一篇:Magento的安装