Magento 2: Die Menüstruktur des Admin-Panels 3 funktioniert nicht

7

Ich versuche, im Admin-Bereich ein Menü für mein Modul hinzuzufügen. Ich möchte es wie eine Grand Parent > Parent > ChildStruktur hinzufügen . Ich habe den folgenden Code in meiner menu.xml verwendet

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
    <menu>
        <add id="Vendor_Module::jsutariya" title="Grand Parent" module="Vendor_Module" sortOrder="100" resource="Vendor_Module::jsutariya" />
        <add id="Vendor_Module::listgallery" title="Parent" module="Vendor_Module" sortOrder="10" resource="Vendor_Module::listgallery" parent="Vendor_Module::jsutariya" />
        <add id="Vendor_Module::settings" title="Child" module="Vendor_Module"
             sortOrder="40" action="adminhtml/system_config/edit/section/list_gallery"
             resource="Vendor_Module::settings" parent="Vendor_Module::listgallery"/>
    </menu>
</config>

Aber ich kann nur Großeltern- und Kindermenüs sehen. Bitte überprüfen Sie unten Screenshot. Geben Sie hier die Bildbeschreibung ein

Jaimin Sutariya
quelle

Antworten:

3

Ehrlich gesagt habe ich Ihre Frage nicht richtig beantwortet. Aber einen Weg gefunden, das übergeordnete Menü anzuzeigen. Tatsächlich versteckt Magento das erste "übergeordnete" Menü über CSS. Sie müssen also ein weiteres übergeordnetes Menü hinzufügen und zeigen Ihr vorheriges übergeordnetes Menü an. Hier ist mein Code:

    <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
        <menu>
            <add id="Vendor_Module::jsutariya" title="Grand Parent" module="Vendor_Module" sortOrder="100" resource="Vendor_Module::jsutariya" />
            <add id="Vendor_Module::jsutariya_listgallery" title="Parent" module="Vendor_Module" sortOrder="10" resource="Vendor_Module::listgallery" parent="Vendor_Module::jsutariya" />
            <add id="Vendor_Module::jsutariya_settings" title="Child" module="Vendor_Module"
                 sortOrder="40" action="adminhtml/system_config/edit/section/list_gallery"
                 resource="Vendor_Module::settings" parent="Vendor_Module::jsutariya_listgallery"/>
            <add id="Vendor_Module::jsutariya_listgallery1" title="Another Parent" module="Vendor_Module" sortOrder="20" resource="Vendor_Module::listgallery" parent="Vendor_Module::jsutariya" />
        </menu> 
</config>

Der Hauptschuldige ist das folgende CSS, und ich weiß nicht, warum es überhaupt von Magento hinzugefügt wurde

.admin__menu .level-0 > .submenu > ul > .level-1:only-of-type > .submenu-group-title {
    display: none;
}
Shankar
quelle
2
Danke Shankar. Ich frage mich, warum Magento es versteckt hat. Benutzer werden dadurch verwirrt, weil sie nur sehen Settingsund sich fragen, auf welches Modul es sich bezieht.
Jaimin Sutariya
6

Nach viel Recherche. Ich habe festgestellt, dass es sich nicht um einen Standard-Magento-Fehler handelt, aber es ist eine Funktion!

Tatsächlich können Sie den übergeordneten Titel nicht sehen, da Sie eine einzelne Gruppe haben.

Lassen Sie uns anhand eines Beispiels verstehen:

In Ihrer benutzerdefinierten Modul, die Sie erstellt haben Grand menu> Parent menu>Child menu

Oben Parent menuist also eine einzelne Gruppe (Sie haben nur ein einziges übergeordnetes Menü).

Aber wenn Sie erstellen eine andere Gruppe Menüs unter Grand - Menü wie: Grand menu> Parent menu 2>Child menu

Hier haben Sie also 2 Parent menu(1) ist Parent menu& (2) erstellt, Parent menu 2also sind es im Grunde 2 Gruppen. Wenn die Menügruppe größer als 1 Gruppe ist, Parent menuwird angezeigt. Es wird nicht angezeigt, wenn Sie nur ein einziges Gruppenmenü haben.

Magento Core Beispiel:

Gehe zu Admin > Contentdort gibt es 2 Gruppen Elemente und Design

Das übergeordnete Menü wird also angezeigt. Überprüfen Sie unten Screenshot.

Geben Sie hier die Bildbeschreibung ein

Aber Zum Admin > Saleses nur einzelnen Gruppe ist Verkäufe so übergeordnetes Menü wird nicht angezeigt.

Fazit: Wenn Sie das übergeordnete Menü anzeigen möchten, müssen Sie im Menü 2 Gruppen erstellen. Wie oben Screenshot.

Lassen Sie mich wissen, wenn Sie Fragen / Bedenken in der obigen Erklärung haben. Ich hoffe, es hilft!

Chirag Patel
quelle
3

Sie müssen _menu.less ändern, um das Problem mit dem untergeordneten Menü zu beheben. Die Beschriftungen des Admin-Navigationsmenüs werden in CSS ausgeblendet.

Sie können unter _menu.less den Dateipfad und den Kommentarcode ändern, der bereits angezeigt wird: keine.

Dateipfad:

magento / vendor / magento / theme-adminhtml-backend / Magento_Backend / web / css / source / module / _menu.less

//  This part hides Submenu Group Titles only for menus with single groups.
    /*.submenu .column:only-of-type .submenu-group-title,
    .level-0 > .submenu > ul > .level-1:only-of-type > .submenu-group-title {
        display: none;
    }*/

Weitere Details finden Sie unter den folgenden Links:

https://github.com/magento/magento2/issues/13707

https://github.com/magento/magento2/commit/d91e96b529e70dcec55d3b5336b471791dc42d54

Kirti Nariya
quelle