首页 > 解决方案 > 管理员中的 Magento 1 错误 404

问题描述

在我的 Magento 1 模块中,我制作了一个 Menüentry '脚本队列'。在我的 adminhtml.xml 我这样写:

<?xml version="1.0"?>
<config>
    <menu>
        <system>
            <children>
                <magentoadminscriptqueue translate="title" module="magentoadminscriptqueue">
                    <sort_order>20</sort_order>
                    <title>Script Queue</title>
                    <action>adminhtml/script/index</action>
                </magentoadminscriptqueue>
            </children>
        </system>
    </menu>
    <acl>
        <resources>
            <admin>
                <children>
                    <system>
                        <children>
                            <magentoadminscriptqueue translate="title" module="magentoadminscriptqueue">
                                <title>Script Queue</title>
                                <sort_order>360</sort_order>
                            </magentoadminscriptqueue>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>
</config>

在 config.xml 我添加了这个:

<?xml version="1.0"?>
<config>
   ...
   <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <magentoadminscriptqueue before="Mage_Adminhtml">UF_MagentoAdminScriptQueue_Adminhtml</magentoadminscriptqueue>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
</config>

这是我在路径控制器/Adminhtml/ScriptController.php 中的控制器:

<?php

class UF_MagentoAdminScriptQueue_Adminhtml_ScriptController extends Mage_Adminhtml_Controller_Action
{
    public function indexAction()
    {
        $this->loadLayout();

        $block = $this->getLayout()->createBlock('core/text', 'magentoadminscriptqueue-block')->setText('<h1>UF Admin Script Queue</h1>');
        $this->_addContent($block);
        $this->_setActiveMenu('magentoadminscriptqueue_menu')->renderLayout();
    }

    public function getCategoriesAction()
    {

    }

    public function importCategoriesAction()
    {

    }

    public function exportProductToCsvAction()
    {

    }

    public function updateMediaGalleryAction()
    {

    }
}

我看到了 Menuentry,但是当我单击它时,我收到错误 404。有人知道我做错了什么或忘记了什么吗?

干杯克斯特尔

标签: php-5.6magento-1.13

解决方案


为了获得新的 ACL(访问控制列表,告诉 Magento 谁有权使用什么),您需要在“安装”新模块后重新登录。在您的情况下,menupoints 路由(magentoadminscriptqueue)尚未在您被允许访问的页面列表中。

再次登录后,您的 ACL 将被更新,因此您将被授予访问权限。

显示 404 错误是一种安全措施,不会让控制器明显存在。(防止试图在其中找到后门)。


推荐阅读