代码之家  ›  专栏  ›  技术社区  ›  Abdou

多站点eZ平台安装

  •  1
  • Abdou  · 技术社区  · 6 年前

    我正在建立一个多站点eZ平台安装,我需要为我的模板指定一个主布局。 现在我有一个模板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 回复  |  直到 6 年前
        1
  •  3
  •   Edi Modrić    6 年前

    您只需在配置中配置布局:

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

    之后,您可以在完整视图中使用以下内容:

    {% extends pagelayout %}
    
    {% block content %}
        ...
    {% endblock %}
    

    pagelayout

    还应该指出的是 页面布局 变量仅在全视图样板中可用。其他希望使用已配置页面布局的模板必须使用以下内容:

    {% extends ezpublish.configResolver.parameter('pagelayout') %}
    
        2
  •  1
  •   Diogo Santo    6 年前

    如果我误解了你的目标,请纠正我,但是你认为它可以通过检查域来排序吗(我假设它们是不同的,因此可以作为分隔符):

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

    如果我没有错的话,我也相信您可以创建一个默认的Twig控制器加载程序来预先决定这一点,而不是将逻辑留给您的视图:)

        3
  •  1
  •   Felix Woldt    6 年前

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

    您可以使用设计引擎,在那里您可以使用回退设置不同的主题。 定义一个基本主题一个每个站点添加一个额外的主题,您可以覆盖任何模板。

    推荐文章