Magento如何重写或新建后台的页面
piaoling 2011-05-05 13:41:06
最开始的时候我们如果想写一个后台的控制器,是简单地依照前台的写法新建一个控制器,并继承Mage_Adminhtml_Controller_Action。但是这样有个缺点,就是你后台和前台没法分家,还有就是后台的URL会很怪,看下面例子:
MAGENTO自带的都是:
http://www.wemvc.com/index.php/admin/customer/index/key/59245faf7159619f335655fd7f8197e9/
而你的很可能是这样的:
http://www.wemvc.com/index.php/customer/list/index/key/59245faf7159619f335655fd7f8197e9/
是不是很怪,相信你也想与MAGENTO保持一致,请看下面的方法。
首先你需要在你的模块配置文件中(app/code/local/Yourcompany/Yourmodule/etc/config.xml)加上这段:
<admin> <routers> <adminhtml> <args> <modules> <yourmodule before="Mage_Adminhtml">Yourcompany_Yourmodule_Adminhtml</widget> </modules> </args> </adminhtml> </routers> </admin>
然后你的控制器(Controller)的文件目录结构应该是:
Yourmodule/controllers/Adminhtml/Yourmodule/YourcontrollerController.php
控制的类名是:
class Yourcompany_Widget_Adminhtml_Widget_InstanceController extends Mage_Adminhtml_Controller_Action
对应的adminhtml.xml里的后台导航的配置是:
<config> <menu> <cms> <children> <widget_instance translate="title" module="widget"> <title>Widgets</title> <sort_order>15</sort_order> <action>adminhtml/widget_instance</action> </widget_instance> </children> </cms> </menu> </config>
相信留心的人已经在看Mage_Widget模块了,对的就是从这里学到的。像这种例子还可以参考Mage_Centinel。目前我只能向大家讲些框架的理论,具体里面的业务逻辑,还要靠自己多看、多理解。学习Magento绝对是个体力活,希望大家能够少走些弯路
发表评论(评论将通过邮件发给作者):