Php 从Magento'中删除项目;s管理面板导航

Php 从Magento'中删除项目;s管理面板导航,php,xml,magento,navigation,overriding,Php,Xml,Magento,Navigation,Overriding,使用Magento电子商务系统,是否可以从管理面板导航菜单中删除项目?更一般地说,是否有方法使用配置覆盖系统从配置中删除现有元素 我知道我可以添加一个类似这样的覆盖到导航中 <?xml version="1.0"?> <config> <modules> <Company_Module> <version> 0.1.0 </ve

使用Magento电子商务系统,是否可以从管理面板导航菜单中删除项目?更一般地说,是否有方法使用配置覆盖系统从配置中删除现有元素

我知道我可以添加一个类似这样的覆盖到导航中

<?xml version="1.0"?>
<config>
    <modules>
        <Company_Module>
            <version>
                0.1.0
            </version>
        </Company_Module>
    </modules>

    <adminhtml>
        <menu>
             <cms translate="title" module="cms">
                <title>The CMS</title>
                <sort_order>70</sort_order>
                <children>
                    <foo translate="title" module="cms">
                        <title>Foo Item</title>
                        <action>adminhtml/foo</action>
                    </foo>
                </children>
             </cms>
        </menu>    
    </adminhtml>
</config>

0.1.0
CMS
70
食物项目
adminhtml/foo

但是我如何才能完全抑制CMS导航项呢

您可以在config.xml中的菜单项中插入虚假的模块依赖项

就你而言

<adminhtml>
  <menu>
    <cms translate="title" module="cms">
      <depends><module>HideMe</module></depends>
    </cms>
  </menu>
</adminhtml>

隐藏

我不认为Alan还需要任何人来问这个问题,但对于可能最终阅读本文的其他人来说,使用以下方法会更好一些:

<adminhtml>
  <menu>
    <cms translate="title" module="cms">
      <depends><config>some/configuration/flag</config></depends>
    </cms>
  </menu>
</adminhtml>

部分/配置/标志

清洁方法:

添加一个adminhtml.xml(例如,添加到保留所有其他自定义内容的现有模块,或创建一个新模块)


1.

对于特定的菜单点,您可以使用:

<?xml version="1.0"?>
<config>
    <menu>
        <customer>
            <children>
                <online>
                    <disabled>1</disabled>
                </online>
            </children>
        </customer>
    </menu>
</config>

1.

你的科学给我留下了深刻的印象!在配置文件的其他区域中,依赖项会像这样工作吗?我甚至只看到它用于确保正确的模块加载顺序。它似乎只用于初始化Magento的模块(如您所述)和构建adminhtml菜单。模块依赖关系似乎在这些类中被检查:Mage\u Adminhtml\u Block\u Page\u菜单Mage\u Adminhtml\u Model\u Config Mage\u Adminhtml\u Model\u System\u Config\u Source\u Admin\u Page Mage\u Api\u Model\u Config Mage\u Core\u Model_Config@Alan还有@Scott,我只是想知道你们中的任何一位在发布后的两年里是否找到了一种更优雅的方式。似乎有点。。。哈奇(无意冒犯!)。谢谢JD@JonathanDay看起来现代版本的Magento支持1个节点来打开/关闭菜单(或ACL规则)。在现代版本的Magento中,这绝对是处理问题的方法。我不确定旧版本是否支持它,但如果您在查看旧的、原始的接受答案时遇到问题:
<?xml version="1.0"?>
<config>
    <menu>
        <customer>
            <children>
                <online>
                    <disabled>1</disabled>
                </online>
            </children>
        </customer>
    </menu>
</config>