Entfernen Sie den Beobachter aus der Erweiterung eines Drittanbieters

11

Ich habe ein Blog-Modul auf meiner Magento 2-Plattform installiert. Dieses Blog-Modul verfügt über einen Beobachter, der der primären Navigation automatisch einen neuen Menüpunkt hinzufügt. Ich möchte damit aufhören.

Die events.xmlDatei sieht folgendermaßen aus:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="page_block_html_topmenu_gethtml_before">
        <observer name="aw_blog_add_topmenu_items" instance="Aheadworks\Blog\Observer\AddBlogToTopmenuItemsObserver" />
    </event>
</config>

Wie Sie sehen, verweist es auf den Beobachter, der den Link zur primären Navigation hinzufügt. Das Löschen events.xmllöst mein Problem, aber ich suche nach einer Methode, bei der die Kernmoduldateien nicht geändert werden.

Angus
quelle

Antworten:

14

Sie können Beobachter weiterhin deaktivieren. In Magento 1 wurde es gemacht <type>disabled</type>, in Magento 2 ist es disabled="true":

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="page_block_html_topmenu_gethtml_before">
        <observer name="aw_blog_add_topmenu_items"
                  instance="Aheadworks\Blog\Observer\AddBlogToTopmenuItemsObserver"
                  disabled="true" />
    </event>
</config>

Wenn Sie diese geänderte events.xmlDatei einem benutzerdefinierten Modul hinzufügen und das benutzerdefinierte Modul von Aheadworks_Blog abhängig machen, sollte es die ursprüngliche überschreiben.

Fabian Schmengler
quelle
3
Ich bin gespannt, ob der Beobachter-Zusammenführungsprozess nur das nameAttribut verwendet (um zu sehen, wie einzigartig es ist). In diesem Fall können Sie die etwas lange instanceEigenschaft weglassen : <observer name="aw_blog_add_topmenu_items" disabled="true".
Nevvermind