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绝对是个体力活,希望大家能够少走些弯路

类别 :  magento(258)  |  浏览(3413)  |  评论(0)
发表评论(评论将通过邮件发给作者):

Email: