Eliminar observador de la extensión de terceros


11

He instalado un módulo de blog en mi plataforma Magento 2. Este módulo de blog tiene un observador que agrega automáticamente un nuevo elemento de menú en la navegación principal. Deseo detener esto.

El events.xmlarchivo se ve así:

<?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 puede ver, hace referencia al observador que agrega el enlace en la navegación principal. Eliminar events.xmlelimina mi problema, pero estoy buscando un método que no implique la modificación de los archivos del módulo central.

Respuestas:


14

Todavía puede deshabilitar observadores. En Magento 1 se hizo con <type>disabled</type>, en Magento 2 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>

Si agrega este events.xmlarchivo modificado a un módulo personalizado y hace que el módulo personalizado dependa de Aheadworks_Blog, debería anular el original.


3
Tengo curiosidad por saber si el proceso de fusión del observador usa solo el nameatributo (ver cómo es único). En cuyo caso, se puede omitir el algo larga instancela propiedad: <observer name="aw_blog_add_topmenu_items" disabled="true".
nevvermind
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.