
今天来看下如何重写Magento的Controller(控制器),重写magento的控制器目的就是控制其action动作,以此来改变现有的Magento行为。
重写Magento的checkout控制器的cart动作,即www……..com/checkout/cart/ 这个url处理的过程。
本例使用Magento 1.5版本,其它版本可能稍有不同。不是稍有不同,可能是大不同,网上教程看的时候注意版本。
1.首先我们按照正常的步骤来简单的新建一个插件,可以使用 Magento模块快速生成插件
2.在我们的config.xml文件中声明下我们要重写的Controller(控制器),代码如下
<frontend> <routers> <guestmaxorder> <use>standard</use> <args> <module>Hellokeykey_Guestmaxorder</module> <frontName>guestmaxorder</frontName> </args> </guestmaxorder> <checkout> <args> <module before="Mage_Checkout">Hellokeykey_Guestmaxorder_Checkout</module> </args> </checkout> </routers> <layout> <updates> <guestmaxorder> <file>guestmaxorder.xml</file> </guestmaxorder> </updates> </layout> </frontend>
注意 <checkout>部分为我们加入的内容。
3.由于第三步的声明<module before=”Mage_Checkout”>Hellokeykey_Guestmaxorder_Checkout</module>,我们需要在我们插件的控制器文件夹新建Checkout文件夹,在此文件夹中新建CartController.php文件,CartController.php文件的内容如下
require_once 'Mage/Checkout/controllers/CartController.php'; class Hellokeykey_Guestmaxorder_Checkout_CartController extends Mage_Checkout_CartController { public function someAction() { //在这里做点事情吧 } }
那么我们就完成了对此控制器的重写,在里面重写其action就可以了。
4.注意刷新Magento的缓存
参考文章:
http://www.dhmedia.com.au/blog/how-do-i-override-controller-actions-magento-14
http://www.spinonesolutions.com/2010/03/magento-controller-override/
转载表明出处:www.hellokeykey.com
《重写Magento的Controller控制器》有一个想法
评论已关闭。