Shopware 5: плагин не перезаписывает вид шаблона - PullRequest
0 голосов
/ 21 ноября 2018

Плагин должен перезаписать шаблон поиска в теме, но это не так.Он содержит следующие файлы: PrOlgaStartup / PrOlgaStartup.php

<?php

namespace PrOlgaStartup;

use Shopware\Components\Plugin;

class PrOlgaStartup extends Plugin
{

 public static function getSubscribedEvents()
{
     return [
        'Enlight_Controller_Action_PostDispatchSecure_Frontend' => 'extendsFrontend'
    ];
}

public function extendsFrontend(\Enlight_Controller_ActionEventArgs $args)
{
    /** @var \Enlight_Controller_Action $controller */
    // Breadrcrumbs must dissapear
    $subject = $args->getSubject();
    $subject->View()->addTemplateDir(__DIR__ . '/Resources/views');

}
}

PrOlgaStartup / Resources / views / frontend / index / search.tpl

{extends file="parent:frontend/index/search.tpl"}

{block name="frontend_index_search_container"}
    Hello World!
{/block}

Некоторые заметки

  1. Проверено в бродягах и битнами
  2. Тема расширена на protected $injectBeforePlugins = true;
  3. Тема не содержит пользовательского поиска.tpl
  4. Кэш очищен
  5. Это решение также не работает

Заранее большое спасибо !!!: -)

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Единственный способ заставить его работать (т.е. включать шаблоны плагинов):

  1. Поместить среду разработки в vagrant (я работаю в ОС Windows)
  2. Поместить переменную protected $injectBeforePlugins = true; into Theme.php

Внедрение этой переменной вообще не оказывает никакого влияния на битнами, и приведенная выше комбинация, похоже, в моих тестах пропущена.Почему это так, мне неясно (сейчас).Предположительно, единственным ответом дня является это , т.е. это зависит от вашей ОС и / или от вашей виртуальной машины.

0 голосов
/ 22 ноября 2018

Попробуйте использовать «новый» способ регистрации шаблона:

public function extendsFrontend(\Enlight_Event_EventArgs $args)
{
    $this->container->get('Template')->addTemplateDir(
        $this->getPath() . '/Resources/views/'
    );
}
...