无法使用ACL保存自定义模块的角色?
-
16-10-2019 - |
题
自定义模块菜单在角色资源下显示。在角色资源下,我单击复选框并保存。然后,我重新加载角色,并且不再检查Check-Box。我基本上将菜单项复制到ACL XML元素。为什么会发生这种情况?
config.xml
<?xml version="1.0"?>
<config>
...
<adminhtml>
<menu>
<customModuleHeader translate="title" module="custommodule">
<title>customModule</title>
<sort_order>60</sort_order>
<children>
<custommodule_configform translate="title" module="custommodule">
<title>custommodule Configuration</title>
<sort_order>50</sort_order>
<children>
<custommodule_configform translate="title" module="custommodule">
<title>Settings</title>
<action>custommodule/adminhtml_configuration</action>
<sort_order>10</sort_order>
</custommodule_configform>
</children>
</custommodule_configform>
</children>
</customModuleHeader>
</menu>
<layout>
...
Admin.html
<?xml version="1.0"?>
<config>
<acl>
<resources>
<admin>
<children>
<customModuleHeader translate="title" module="custommodule">
<title>customModule</title>
<sort_order>60</sort_order>
<children>
<custommodule_configform translate="title" module="custommodule">
<title>custommodule Configuration</title>
<sort_order>50</sort_order>
<children>
<custommodule_configform translate="title" module="custommodule">
<title>Settings</title>
<sort_order>10</sort_order>
</custommodule_configform>
</children>
</custommodule_configform>
</children>
</customModuleHeader>
</children>
</admin>
</resources>
</acl>
</config>
解决方案
这是语法如何在Magento Admin面板中创建菜单您可以遵循此信息
/app/code/local///etc/adminhtml.xml
<?xml version="1.0"?>
<config>
<menu>
<[module] module="[module]">
<title>[Module]</title>
<sort_order>71</sort_order>
<children>
<items module="[module]">
<title>Manage Items</title>
<sort_order>0</sort_order>
<action>[module]/adminhtml_[module]</action>
</items>
</children>
</[module]>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<[module]>
<title>[Module] Module</title>
<sort_order>200</sort_order>
</[module]>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<[module]>
<file>[module].xml</file>
</[module]>
</updates>
</layout>
其他提示
由于菜单部分标签与ACL标签不同,因此发生这种情况。我检查了您提供的代码片段。但是没有任何错误。我建议您彻底检查这两个部分(菜单声明和ACL)。
(同时,请确保您的问题中未定义ACL admin.html)
您可以将菜单声明和ACL放在其中 adminhtml.xml
以下是您可以遵循的示例代码。
<?xml version="1.0" ?>
<config>
<menu>
<mycustom_menu translate="title" module="YOUR_MODULE_NAME">
<title>My Menu</title>
<sort_order>100</sort_order>
<children>
<!-- children -->
<subitem translate="title" module="YOUR_MODULE_NAME">
<title>Subitem</title>
<sort_order>10</sort_order>
<action>adminhtml/mycustom_controller/</action>
</subitem>
</children>
</mycustom_menu>
</menu>
<acl>
<resources>
<admin>
<children>
<mycustom_menu translate="title" module="YOUR_MODULE_NAME">
<title>My Menu</title>
<sort_order>300</sort_order>
<children>
<!-- children -->
<subitem translate="title" module="YOUR_MODULE_NAME">
<title>Subitem</title>
<sort_order>10</sort_order>
</subitem>
</children>
</mycustom_menu>
</children>
</admin>
</resources>
</acl>
</config>