ezpublish / symfony在Smarty中呈现404,在Twig中呈现其他所有内容

时间:2014-06-18 08:24:05

标签: php symfony smarty twig ezpublish

在我的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页面,但是这个没有被调用

1 个答案:

答案 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