Rimuovere l'osservatore dall'estensione di terze parti


11

Ho installato un modulo blog sulla mia piattaforma Magento 2. Questo modulo blog ha un osservatore che aggiunge automaticamente una nuova voce di menu nella navigazione principale. Vorrei fermarlo.

Il events.xmlfile è simile al seguente:

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

Come puoi vedere, fa riferimento all'osservatore che aggiunge il collegamento nella navigazione principale. L'eliminazione events.xmlrisolve il mio problema, ma sto cercando un metodo che non implichi la modifica dei file del modulo principale.

Risposte:


14

Puoi ancora disabilitare gli osservatori. In Magento 1 è stato fatto <type>disabled</type>, in Magento 2 è 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>

Se si aggiunge questo events.xmlfile modificato a un modulo personalizzato e si fa in modo che il modulo personalizzato dipenda da Aheadworks_Blog, dovrebbe sovrascrivere quello originale.


3
Sono curioso di namesapere se il processo di fusione dell'osservatore utilizza solo l' attributo (visto come è unico). In questo caso, si potrebbe omettere la un po 'lungo instancedi proprietà: <observer name="aw_blog_add_topmenu_items" disabled="true".
nevvermind,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.