ezpublish / symfony отображает 404 в Smarty, все остальное в Twig

#php #symfony #smarty #twig #ezpublish

#php #symfony #smarty #twig #ezpublish

Вопрос:

На моем сайте eZ publish 5 у меня есть все мои шаблоны в Twig, в vendor/ezsystems/ demobundle/EzSystems/ DemoBundle/Resources/ views/ вложенных папках. Все они используются на всем моем сайте, никаких проблем нет. За одним исключением: 404 страницы. Если я перейду на mysite / nonexistingurl, он выдает мне страницу ядра (20) / Ошибки со статусом 404. Для этого используется шаблон 20.tpl где-то в eZ publish / symfony, я этого не хочу, я хочу использовать для этого свой собственный шаблон Twig.

Как я могу этого добиться? Я добавил страницу vendor/ezsystems/ demobundle/EzSystems/DemoBundle/Resources/views/Exception/error.html.twig, но она не вызывается

Комментарии:

1. вы в режиме разработки или prod?

2. в обоих режимах это одно и то же

Ответ №1:

сначала добавьте этот параметр конфигурации

 parameters:
    ezpublish_legacy.default.module_default_layout: 'YourBundle::pagelayout_legacy.html.twig'
  

вы можете добавить его в parameters.yml файл, расположенный в 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 %}
  

обратите внимание, что в коде шаблон расширяет pagelayout.html.twig шаблон, который должен здесь определять блок с именем content, pagelayout.html.twig который обычно может быть основным базовым макетом для вашего веб-сайта ez publish 5
. вы можете изменить pagelayout_legacy.html.twig шаблон в соответствии с вашими потребностями

ссылка: http://share.ez.no/forums/developer/overriding-legacy-error-pages-templates