установка мультисайтовой платформы eZ - PullRequest
0 голосов
/ 05 ноября 2018

Я создаю многосайтовую установку eZ Platforme, и мне нужно указать основной макет для моих шаблонов. Прямо сейчас у меня есть шаблон article.html.twig:

{% extends "main_layout.html.twig" %}

{% block content %}
    <h1>{{ ez_render_field(content, 'body') }}</h1>
{% endblock %}

что я хочу сделать, это примерно так:

 {% if(siteaccess = "site1"){
        extends "site1_main_layout.html.twig"
  }
 else if(siteaccess = "site2"){
        extends "site1_main_layout.html.twig" 
  }
 %}

Пожалуйста, помогите мне!

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Вы можете просто настроить макет в конфиге:

ezpublish:
    system:
        site1:
            pagelayout: "tpl1.html.twig"
        site2:
            pagelayout: "tpl2.html.twig"

После этого вы можете просто использовать следующее в полном представлении:

{% extends pagelayout %}

{% block content %}
    ...
{% endblock %}

pagelayout - это переменная, предварительно заполненная платформой eZ из вышеуказанного конфига на основе текущего доступа к сайту. Я полагаю, что для этого требуется eZ Platform 1.2.

Следует также отметить, что переменная pagelayout доступна только в полноразмерных шаблонах. Другие шаблоны, желающие использовать настроенную разметку страницы, должны использовать следующее:

{% extends ezpublish.configResolver.parameter('pagelayout') %}
0 голосов
/ 06 ноября 2018

Посмотрите здесь https://doc.ezplatform.com/en/latest/guide/design_engine/

Вы можете использовать механизм проектирования, где вы можете настроить различные темы с запасным вариантом. Определите одну базовую тему и добавьте для каждого сайта доступ к одной дополнительной теме, где вы можете переопределить любой шаблон.

0 голосов
/ 05 ноября 2018

Поправьте меня, если я неправильно понял вашу цель, но вы считаете, что ее можно отсортировать, проверив домены? (Я предполагаю, что они будут разными, поэтому могли бы служить разделителем):

{% if app.request.baseUrl == 'site1' %}
    ...
{% else %}
   ...
{% endif %}

Если я не ошибаюсь, я также верю, что вы можете создать загрузчик Twig Controller по умолчанию, чтобы решить это заранее, вместо того, чтобы оставить логику своим взглядам:)

...