Remover observador da extensão de terceiros


11

Eu instalei um módulo de blog na minha plataforma Magento 2. Este módulo de blog possui um observador que adiciona automaticamente um novo item de menu à navegação principal. Eu desejo parar com isso.

O events.xmlarquivo fica assim:

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

Como você pode ver, ele faz referência ao observador que adiciona o link à navegação principal. A exclusão events.xmlresolve o meu problema, mas estou procurando um método que não envolva a modificação de arquivos do módulo principal.

Respostas:


14

Você ainda pode desativar os observadores. No Magento 1 foi feito <type>disabled</type>, no 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 você adicionar esse events.xmlarquivo modificado a um módulo personalizado e fizer com que o módulo personalizado dependa do Aheadworks_Blog, ele deverá substituir o original.


3
Estou curioso para namesaber se o processo de fusão do observador usa apenas o atributo (vendo como é único). Nesse caso, você poderia omitir o pouco longo instancepropriedade: <observer name="aw_blog_add_topmenu_items" disabled="true".
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.