在我的eZ发布5网站上,我的所有模板都在Twig中,在vendor / ezsystems / demobundle / EzSystems / DemoBundle / Resources / views /子文件夹中。它们都在我的整个网站上使用,没有任何问题。有一个例外:404页。如果我转到mysite / nonexistingurl,它会给我一个内核(20)/错误页面,状态为404.用于此的模板是eZ发布/ symfony中的20.tpl,我不希望这样,我想要使用我自己的Twig模板。
我怎样才能做到这一点?我添加了一个vendor / ezsystems / demobundle / EzSystems / DemoBundle / Resources / views / Exception / error.html.twig页面,但是这个没有被调用
答案 0 :(得分:0)
首先添加此配置参数
parameters:
ezpublish_legacy.default.module_default_layout: 'YourBundle::pagelayout_legacy.html.twig'
您可以将其添加到位于parameters.yml
的{{1}}文件中,path/to/yourezpublishinstall/ezpublish/config
通常会导入位于同一文件夹中的parameters.yml
这将定义位于config.yml
中的twig模板作为旧堆栈模块模板的父模板
在path/to/yourbundle/Resources/views/pagelayout_legacy.html.twig
模板中,您可以使用此代码
pagelayout_legacy.html.twig
注意在代码中,模板扩展了{% extends 'YourBundle::pagelayout.html.twig' %}
{% block content %}
{# module_result variable is received from the legacy controller. #}
{% if module_result.errorCode is defined %}
<h1>{{ module_result.errorMessage }} ({{ module_result.errorCode }})</h1>
{% else %}
{{ module_result.content|raw }}
{% endif %}
{% endblock %}
模板,这里应该定义一个名为content的块,pagelayout.html.twig
通常可能是ez publish 5网站的主要基础布局
您可以根据需要修改pagelayout.html.twig
模板
参考: http://share.ez.no/forums/developer/overriding-legacy-error-pages-templates