在我的Magento 1模块中,我创建了一个菜单“脚本队列”。在我的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>
这是我在路径controller / Adminhtml / ScriptController.php中的Controller:
<?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,但是当我单击Menuentry时,出现错误404。有人知道我做错了什么或忘记了什么吗?
欢呼 克斯特尔
答案 0 :(得分:0)
为了获得新的ACL(访问控制列表,它告诉Magento谁有权使用该内容),您需要在“安装”新模块后重新登录。 发生这种情况时,菜单点路线(magentoadminscriptqueue)尚未被允许访问的页面列表中。
再次登录后,您的ACL将被更新,因此将被授予访问权限。
显示404错误是一种安全措施,不能使控制器确实存在。 (防止尝试在其中找到后门)。