多站点eZ平台安装

时间:2018-11-05 16:16:29

标签: php symfony twig ezpublish ezplatform

我正在构建多站点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 :(得分:3)

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

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') %}

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

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