【问题标题】:Removing an Item from Magento's Admin Panel Navigation从 Magento 的管理面板导航中删除项目
【发布时间】:2009-04-07 01:12:09
【问题描述】:

使用 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>

但是我将/可以如何完全抑制 CMS 导航项?

【问题讨论】:

    标签: php xml magento navigation overriding


    【解决方案1】:

    更简洁的方法:

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

    <?xml version="1.0" ?>
    <config>
        <menu>
            <xmlconnect>
                <disabled>1</disabled>
            </xmlconnect>
        </menu>
    </config>
    

    【讨论】:

    • 这绝对是现代版 Magento 处理事情的方式。我不确定旧版本是否支持它,但如果您遇到问题,请查看旧的原始接受答案:stackoverflow.com/a/769931/4668
    【解决方案2】:

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

    在你的情况下,

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

    【讨论】:

    • 你的科学让我印象深刻!依赖项在配置文件的其他区域会像这样工作吗?我什至只看到它用于确保正确的模块加载顺序。
    • 它似乎只用于初始化 Magento 的模块(如您所说)和构建 adminhtml 菜单。在这些类中似乎检查了模块依赖项:Mage_Adminhtml_Block_Page_Menu Mage_Adminhtml_Model_Config Mage_Adminhtml_Model_System_Config_Source_Admin_Page Mage_Api_Model_Config Mage_Core_Model_Config
    • @Alan 和@Scott 只是想知道你们中的任何一个是否在发布后的两年内找到了一种更优雅的方法。这似乎有点...... hacky(无意冒犯!)。谢谢,京东
    • @JonathanDay 看起来现代版的 Magento 支持 1 节点来打开/关闭菜单(或 ACL 规则)。
    【解决方案3】:

    我认为 Alan 仍然不需要任何人来问这个问题,但对于可能最终阅读此问题的其他人来说,使用它会更好:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-07
        • 2015-11-07
        • 1970-01-01
        • 2021-05-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多