多站点 eZ 平台安装

multisite eZ Platform installation

我正在构建一个多站点 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" 
  }
 %}

请帮帮我!

如果我误解了您的目标,请纠正我,但是您是否认为可以通过检查域对其进行排序? (我假设它们会有所不同,因此可以用作分隔符):

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

如果我没记错的话,我也相信您可以创建一个默认的 Twig Controller Loader 来预先决定这一点,而不是将逻辑留给您的视图:)

您可以在配置中配置布局:

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

之后,您就可以在全景中使用以下内容:

{% extends pagelayout %}

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

pagelayout 是 eZ Platform 根据当前站点访问权限从上述配置中预填充的变量。我相信它至少需要 eZ Platform 1.2。

还应注意,pagelayout 变量仅在完整视图模板中可用。其他希望使用配置的页面布局的模板必须使用以下内容:

{% extends ezpublish.configResolver.parameter('pagelayout') %}

看这里https://doc.ezplatform.com/en/latest/guide/design_engine/

您可以使用设计引擎,您可以在其中设置具有回退功能的不同主题。 定义一个基本主题并为每个站点添加一个额外的主题,您可以在其中覆盖任何模板。