Enlight_Controller_Action_PreDispatch_Frontend не работает в плагине. php класс - PullRequest
0 голосов
/ 14 марта 2020

Я создаю магазин 5 плагинов. Я хочу отображать что-то после категорий на каждой странице. Я использую этот код для выполнения своей задачи, как предложено в этом видео , но событие не распознается.

Вот мой код

<?php
namespace MyPlugin;

use Shopware\Components\Plugin;

class MyPlugin extends Plugin{
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PreDispatch_Frontend' => 'onPreDispatch'
        ];
    }

    public function onPreDispatch(\Enlight_Event_EventArgs $args)
    {
        $controller = $args->getSubject();
        $view = $controller->View();

        $view->addTemplateDir(__DIR__.'/Resources/views');
    }
}

frontend / index / index.tpl

{extends file="parent:frontend/index/index.tpl"}
{block name="frontend_index_navigation_categories_top" append}
    <div>my items here</div>
{/block}

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 16 марта 2020

Насколько я помню, append -Кейворд больше не должен использоваться в Shopware. Вместо этого используйте {$smarty.block.parent}. Также вы должны создать EventSubscriber, объясненный здесь .

Если это все еще не работает, пожалуйста, проверьте ваш кеш и плагин активирован

...