我想创建一个管理控制器 - 没有与之关联的任何菜单项。
理想情况下,我希望通过/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>
答案 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
这就是诀窍。