如何将第二级添加到Magento管理员配置ACL



我需要这个来用于我正在处理的自定义模块。因此,例如,我有一个在配置菜单中创建选项卡的主模块:

<config>
    <acl>
        <resources>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <mymodule translate="title" module="mymodule_all">
                                        <title>My Module</title>
                                    </mymodule>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>
</config>

然后我有属于此选项卡的mu子模块:

<config>
    <acl>
        <resources>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <mymodule>
                                        <children>
                                            <submodule translate="title" module="submodule">
                                                <title>Sub Module</title>
                                            </submodule>
                                        </children>
                                    </mymodule>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>
</config>

因此,使用上面的示例配置 - 子模块在角色资源配置中不可见。

从子模块 acl 中删除有点帮助,它变得可见,但它现在与 mymodule 处于同一级别,这不是我想要的。

Magento是否只允许在配置部分中使用一个级别ACL?或者也许我做错了什么?

谢谢。

是的,您可以在 ACL 中拥有任意数量的级别。您的代码中似乎没有任何问题。因此,错误可能来自配置.xml中的其他地方,只需确保每个标签都已正确关闭即可。然后按照以下步骤操作

1.尝试删除标签中的标题和模块属性。bcz 这些构建对帮助程序类的依赖关系。

2.然后编辑你的第一个配置.xml以这种方式

<mymodule>
    <title>My Module</title>
    <children>    
        <submodule>
            <title>Sub Module</title>
        </submodule>
    <children>
</mymodule>

如果您可以看到正确的 acl 资源树,那么这意味着我的 Module.so 专注于您的子模块没有任何错误。

最新更新