magento重写后台动作
Sunday, October 30th, 2011我们在深入理解magento系列教程中看到过重写前台代码的例子,但是如何重写后台动作只在注释中简单的提到,以下是在1.6.0中测试可以使用的例子。
1. 创建新模块 app/etc/Maker_Overridecontroller.xml
<?xml version="1.0"?>
<config>
<modules>
<Maker_Overridecontroller>
<active>true</active>
<codePool>local</codePool>
</Maker_Overridecontroller>
</modules>
</config>
2. 创建 app/code/local/Maker/Overridecontroller/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Maker_Overridecontroller>
<version>0.0.1</version>
</Maker_Overridecontroller>
</modules>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<Maker_Overridecontroller before="Mage_Adminhtml">Maker_Overridecontroller</Maker_Overridecontroller>
</modules>
</args>
</adminhtml>
</routers>
</admin>
</config>
3. 创建控制器 app/code/local/Justwebdevelopment/Overridecontroller/controllers/Catalog/ProductController.php
首先要include你要重写的controller,magento是不会自动加载controller的,然后继承要重写的controller,重写想要重写的action即可。
<?php
include_once("Mage/Adminhtml/controllers/Catalog/ProductController.php");
class Maker_Overridecontroller_Catalog_ProductController extends Mage_Adminhtml_Catalog_ProductController
{
public function editAction(){
echo "Override Product Edit Action...";
exit;
}
}
?>
这样编辑动作就被成功重写了,如果你的代码没有工作,那么请检查你各个位置的命名。
我还尝试了一些使用<rewrite>标记的方法,但是貌似都没有生效,不清楚是哪里弄错了。