2009-04-07 10 views
14

Czy można usunąć element z menu nawigacji Panelu administracyjnego za pomocą systemu e-commerce Magento? Mówiąc bardziej ogólnie, czy istnieje sposób użycia systemu zastępowania konfiguracji do usunięcia istniejących elementów z konfiguracji?Usuwanie elementu z panelu administracyjnego Magento Nawigacja

wiem, że można dodać do nawigacji z ręcznym, który wygląda mniej więcej tak

<?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> 

Ale jak/mógłbym całkowicie pominąć element nawigacji CMS?

Odpowiedz

14

Cleaner sposób to zrobić:

Dodaj adminhtml.xml (np do istniejących modułów, które zachowuje wszystkie inne customiza nia rzeczy, lub utworzyć nowy moduł)

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

To zdecydowanie jest sposób na obsługę rzeczy we współczesnej wersji Magento. Nie jestem pewien, czy jest on obsługiwany w starszej wersji, ale jeśli masz problemy, zobacz starą, oryginalną, zaakceptowaną odpowiedź: http://stackoverflow.com/a/769931/4668 –

11

Możesz wprowadzić fałszywą zależność od modułu do pozycji menu w pliku config.xml.

W twoim przypadku,

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

Twoja nauka mnie zachwyca! Czy takie działanie będzie działać w innych obszarach pliku konfiguracyjnego? Widziałam tylko, jak to było używane, aby zapewnić prawidłową kolejność ładowania modułu. –

+0

Wydaje się, że jest to tylko do inicjowania modułów Magento (jak już wspomniano) i budowania menu adminhtml. Zależności moduł wydaje się być sprawdzone w tych klasach: 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 –

+1

@Alan i @Scott prostu zastanawiasz się, czy któryś z was znaleźć bardziej elegancki sposób to zrobić w ciągu dwóch lat od opublikowania. Wydaje się to trochę ... hacky (bez obrazy zamierzonej!). Dzięki, JD –

4

Nie sądzę Alan nadal potrzebują nikogo do tego pytania, ale dla kogoś innego, że może skończyć się czytając to, byłoby nieco lepiej użyć:

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

Dla określonego punktu menu można użyć:

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