Magento - 自定义管理路由器,但没有菜单项

时间:2012-03-17 23:21:20

标签: magento

我想创建一个管理控制器 - 没有与之关联的任何菜单项。

理想情况下,我希望通过/index.php/admin/my_controller /来访问我的控制器。

到目前为止,我已经重写了adminhtml控制器,如下所示,但我在管理控制台内(即不是主要的404页面)可以获得404:

    <admin>
    <routers> 
        <my_module>
            <use>admin</use>
            <args>
                <module>Me_Mymodule</module>
                <frontName>my_controller</frontName>
            </args>
        </my_module>
         <adminhtml>
            <args>
                <modules>
                    <my_module after="Mage_Adminhtml">Me_Mymodule</my_module>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

3 个答案:

答案 0 :(得分:3)

自1.4版以来,您当前的配置技术已经过时。相反,构造它like this更方便。

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <my_module before="Mage_Adminhtml">Me_Mymodule_Adminhtml</my_module>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

然后,要获取/index.php/admin/mymodule/路径,请在Me_Mymodule_Adminhtml_MymoduleController extends Mage_Adminhtml_Controller_Action中创建课程Me/Mymodule/controllers/Adminhtml/MymoduleController.php。在您的示例中,您在控制器名称中使用了下划线,请注意这一点,因为在搜索正确的类时它将用作目录分隔符。

请记住为控制器生成URL,例如Mage::getUrl('adminhtml/mymodule'),以便将密钥添加到路径中,这在制作管理员控制器时是必需的,否则将拒绝该页面。

如果没有菜单项,则无法将它们添加到ACL。在这种情况下,您不需要adminhtml.xml文件。

答案 1 :(得分:0)

即使您没有将控制器添加到菜单,仍然需要为控制器adminhtml.xml添加acl部分。在那之后不要忘记重新加入管理员。

答案 2 :(得分:0)

对于你的目标,xml配置是多余的。 使用以下命令将控制器添加到/ admin frontname                                                                                              Company_Module_Adminhtml                                                                 
现在,将在controller / Adminhtml文件夹中创建的每个控制器都将通过管理员访问

/admin/yourfilename/index

控制器的类名应为Module_Module_Adminhtml_YourfilenameController,并应扩展Mage_Adminhtml_Controller_Action 这就是诀窍。

相关问题