Magento二次开发的利器:Rewrite

Magento是一个十分优秀的电子商务系统,但是有时候我们需要增加一些新的功能或者修改原有的功能,一般情况下通过自己开发的扩展模块(module)可以满足要求。如果需要修改系统的一些默认行为(如结账,注册等),不提倡直接修改Magento本身模块里的代码(修改后无法升级,因为升级后所做的修改会被升级后的文件覆盖),这时候Magento提供的rewrite机制可以满足我们的要求。

Magento中可以rewrite的对象有:Block, Controller(frontend 和admin)以及Model。

最常用的是rewrite controller,参见:[url=http://magentosh.iteye.com/blog/725401]Magento重载Controller的方法[/url]。
通过rewrite控制器,可以修改系统本身模块的一些动作而又不改变原有的url。

其次是rewrite block,方法参见:
[url=http://magentosh.iteye.com/blog/785545]Magento中用子类替换Block[/url]

Rewrite block可以给系统原有的block类加入新的字段,方法,设置新的template等。

最后可以rewrite model,方法如下:
1. 在配置文件config.xml中加入:

<models>
<enterprise_catalogpermissions> <!--被rewrite的model标识符-->
<rewrite>
<!--被rewrite类名-->
<!--替换的全类名-->
<observer>Glamour_Glscustomer_Model_Observer</observer>
</rewrite>
</enterprise_catalogpermissions>
<customer>
<rewrite>
<session>Glamour_Glscustomer_Model_Customer_Session</session>
</rewrite>
</customer>
...
</models>


Rewrite model后,通过
Mage::getModel('enterprise_catalogpermissions/observer')


Mage::getModel('customer/session')

实际上获得的类是:
Glamour_Glscustomer_Model_Observer


Glamour_Glscustomer_Model_Customer_Session


可以给原有的model加入新的字段,修改或加入新的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值