首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shopware 5:插件不覆盖模板视图

Shopware 5:插件不覆盖模板视图
EN

Stack Overflow用户
提问于 2018-11-21 16:53:32
回答 2查看 1.5K关注 0票数 1

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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
{extends file="parent:frontend/index/search.tpl"}

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

若干注记

  1. 在流浪和肉桂中测试
  2. 主题由protected $injectBeforePlugins = true;扩展
  3. 主题不包含自定义search.tpl。
  4. 缓存已被清除
  5. solution也不起作用。

谢谢各位:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-24 14:27:56

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

  1. 把开发环境变成迷幻药(我在Windows操作系统上工作)
  2. 将变量protected $injectBeforePlugins = true;放入Theme.php中

这个变量的注入在bitnami中根本不产生任何影响,而且在我的测试中,上面的组合似乎被忽略了。为什么会这样,我现在还不清楚。想必,一天中唯一的答案是this,即它取决于您的操作系统和/或虚拟机。

票数 1
EN

Stack Overflow用户

发布于 2018-11-22 05:53:22

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

代码语言:javascript
复制
public function extendsFrontend(\Enlight_Event_EventArgs $args)
{
    $this->container->get('Template')->addTemplateDir(
        $this->getPath() . '/Resources/views/'
    );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53416998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档