商店软件5:插件不会覆盖模板视图



插件必须覆盖主题中的搜索模板,但它没有。它包含以下文件:PrOlgaStartup/PrOlgaStartup.php

<?php
namespace PrOlgaStartup;
use ShopwareComponentsPlugin;
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. 在流浪者和bitnami中测试
  2. 主题由protected $injectBeforePlugins = true;扩展
  3. 主题不包含自定义搜索.tpl
  4. 缓存已清除
  5. 此解决方案不起作用

提前非常感谢!!:-(

使其工作(即包括插件模板(的唯一方法是:

  1. 将开发环境置于流浪状态(我在Windows操作系统上工作(
  2. 将变量protected $injectBeforePlugins = true;放入Theme.php

这个变量的注射对bitnami根本没有任何影响,在我的测试中似乎错过了上述组合。为什么会这样,我(现在(还不清楚。据推测,目前唯一的答案是,这取决于您的操作系统和/或虚拟机。

尝试使用"新"方式注册模板:

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

最新更新