Видаліть спостерігача від сторонніх службовців


11

Я встановив блог-модуль на своїй платформі Magento 2. Цей модуль блогу має спостерігача, який автоматично додає новий пункт меню в основну навігацію. Я хочу це зупинити.

events.xmlФайл виглядає наступним чином :

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

Як ви бачите, він посилається на спостерігача, який додає посилання в основну навігацію. Видалення events.xmlвирішує мою проблему, але я шукаю метод, який не передбачає зміни файлів основних модулів.

Відповіді:


14

Ви все одно можете відключити спостерігачів. У Magento 1 це було зроблено за допомогою <type>disabled</type>, в 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>

Якщо ви додасте цей модифікований events.xmlфайл до користувальницького модуля і зробить власний модуль залежним від Aheadworks_Blog, він повинен змінити вихідний.


3
Мені цікаво, якщо процес злиття спостерігача використовує лише nameатрибут (бачачи, наскільки він унікальний). У цьому випадку, ви можете опустити кілька довге instanceвластивість: <observer name="aw_blog_add_topmenu_items" disabled="true".
nevvermind
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.