Magento自定义选项卡和管理控制器acl

Magento自定义选项卡和管理控制器acl,magento,controller,admin,acl,Magento,Controller,Admin,Acl,我对管理员后端的自定义控制器ACL有问题。 我读了,重新读了,检查了……但仍然找不到我的问题。该死 首先,代码…模块本身正在工作…我有块,助手,前端控制器…系统->配置选项卡/组数据…所有工作正常。我的问题只是与admincontroller acl有关…所以我现在只需为该区域添加相关代码 显示“我的后端”选项卡,但URL(admin/mynewmodule/index、admin/mynewmodule/list)进入404页面 config.xml,管理路由器: <admin>

我对管理员后端的自定义控制器ACL有问题。 我读了,重新读了,检查了……但仍然找不到我的问题。该死

首先,代码…模块本身正在工作…我有块,助手,前端控制器…系统->配置选项卡/组数据…所有工作正常。我的问题只是与admincontroller acl有关…所以我现在只需为该区域添加相关代码

显示“我的后端”选项卡,但URL(admin/mynewmodule/index、admin/mynewmodule/list)进入404页面

config.xml,管理路由器:

 <admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <mynewmodule before="Mage_Adminhtml">
                        Mworkz_MyNewModule_Adminhtml
                    </mynewmodule >
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

如果您编写自己的扩展,路径必须是
module\u name/admin\u html/list
。下载免费的magento扩展,例如:查看etc/config.xml

所以正确的代码:

<menu>
    <modulename module="modulename" translate="title">
        <title>Module Name</title>
        <sort_order>1</sort_order>
        <children>
            <add translate="title" module="modulename">
                <title>Add New Item</title>
                <sort_order>0</sort_order>
                <action>modulename/adminhtml_news/new</action>
            </add>
            <items translate="title" module="modulename">
                <title>Items Manager</title>
                <sort_order>10</sort_order>
                <action>modulename/adminhtml_news/index</action>
            </items>
            <settings translate="title" module="modulename">
                <title>Settings</title>
                <sort_order>40</sort_order>
                <action>adminhtml/system_config/edit/section/modulename</action>
            </settings>
        </children>
    </clnews>
</menu>

模块名
1.
添加新项目
0
modulename/adminhtml\u新闻/新
项目经理
10
modulename/adminhtml\u新闻/索引
设置
40
adminhtml/system\u config/edit/section/modulename

在测试更改后,我也一直在清除我的“会话”和“缓存”目录。
adminhtml/mynewmodule/
-从spacesAlso…我的前端控制器路径是:/mynewmodule/index我的后端路径是:/admin/mynewmodule/index这些不能/不会冲突,它们会不会冲突,给定后端的admin前缀?如果您编写自己的扩展,路径必须是
module\u name/admin\u html/list
。例如,下载免费的magento扩展名:并查看
etc/config.xml
“路径必须是
module\u name/admin\u html/list
”不是正确的语句(因为“必须”一词)。这可能是路径,但取决于配置。@benmarks是对的。如果上述答案正确,则表示配置已更改。在最初的问题上,配置使用路由器的
before
参数。看起来原始问题是由
Mworkz\u MyNewModule\u Adminhtml
之间的空格引起的。你觉得怎么样?谢谢你的解释。在哪里我可以读到更多关于它的信息?(如果我的问题在本主题中被接受)。@doktorgradus“Shaun UUDotCom”使用此方法:使路由器仍然使用
adminhtml
而不定义自己的路由器(在您的回答中是
modulename
)谢谢,我在前面的代码中有“use”标记…在调整/重写后忘记移动。现在我知道为什么需要了:)
 class Mworkz_MyNewModule_Adminhtml_MyNewModuleController extends Mage_Adminhtml_Controller_action
 {

protected function _initAction() {

    $this->loadLayout()
        ->_setActiveMenu('extbuilderpro/items')
        ->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));

    return $this;
}   

public function indexAction() {

    $this->_initAction()
        ->renderLayout();
}

 public function listAction() {

    $this->_initAction()
        ->renderLayout();
}

 }
<menu>
    <modulename module="modulename" translate="title">
        <title>Module Name</title>
        <sort_order>1</sort_order>
        <children>
            <add translate="title" module="modulename">
                <title>Add New Item</title>
                <sort_order>0</sort_order>
                <action>modulename/adminhtml_news/new</action>
            </add>
            <items translate="title" module="modulename">
                <title>Items Manager</title>
                <sort_order>10</sort_order>
                <action>modulename/adminhtml_news/index</action>
            </items>
            <settings translate="title" module="modulename">
                <title>Settings</title>
                <sort_order>40</sort_order>
                <action>adminhtml/system_config/edit/section/modulename</action>
            </settings>
        </children>
    </clnews>
</menu>