2009-04-07 9 views
14

En utilisant le système de commerce électronique Magento, est-il possible de supprimer un élément du menu de navigation du panneau d'administration? Plus généralement, existe-t-il un moyen d'utiliser le système de remplacement config pour supprimer éléments existants d'une configuration?Suppression d'un élément de la navigation du panneau d'administration de Magento

Je sais que je peux ajouter à la navigation avec une substitution qui ressemble à ce

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

mais comment/pourrais-je supprimer complètement l'élément de navigation CMS?

Répondre

14

Cleaner façon de le faire:

Ajouter un adminhtml.xml (par exemple, à un des modules existants qui maintient tous les autres customiza stuff tion, ou pour un point de menu spécifique créer un nouveau module)

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

C'est certainement la façon de gérer les choses dans une version moderne de Magento. Je ne suis pas sûr si elle est prise en charge dans une version plus ancienne, mais si vous rencontrez des problèmes voir la vieille réponse acceptée originale: http://stackoverflow.com/a/769931/4668 –

11

Vous pouvez injecter une dépendance de module bidon dans l'élément de menu de votre fichier config.xml.

Dans votre cas,

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

ta science me impressionne! Will dépend de travailler comme ça dans d'autres zones du fichier de configuration? Je l'avais seulement vu utilisé pour assurer le bon ordre de chargement du module. –

+0

Il semble que ce soit seulement pour initialiser les modules de Magento (comme vous l'avez dit) et construire le menu adminhtml. dépendances du module semblent vérifier dans ces classes: 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 et @Scott demande si l'un de vous trouvé une façon plus élégante de le faire dans les deux années écoulées depuis l'affichage. Il semble un peu ... hacky (aucune infraction intentionnelle!). Merci, JD –

4

Je ne pense pas que Alan aurait encore besoin de personne de poser cette question, mais pour quelqu'un d'autre qui pourrait finir par lire ceci, ce serait un peu mieux d'utiliser:

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

vous pouvez utiliser:

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