我尝试使用具有自己主题的Drupal 8,由于我的要求有很大的结构差异我有一个页面 - front.twig.html和page.twig.html,我想创建正常Symfony2项目中phrozn oder中使用的模板部件,例如footer.html.twig和header.html.twig。这些模板保存在子目录/ parts /
下但是我知道这个模板正常,我只是收到一个带有模板名称的字符串。
例如:
{# in page.html.twig or page--front.html.twig #}
{% include 'parts/footer.html.twig' %}
以字符串形式返回文件名:
parts/footer.html.twig
使用Drupal 8可以做到这一点吗?
答案 0 :(得分:3)
可以使用路径中的模板名称
{% include '@mytheme/parts/footer.html.twig' %}
感谢https://drupal.stackexchange.com/questions/141066/drupal-8-include-part-template
答案 1 :(得分:3)
您可以包含模板文件的任何部分,例如
{% include directory ~ '/parts/footer.html.twig' %}
或者
{% include '@mytheme/parts/footer.html.twig' %}
我强烈建议您为页面创建可重复使用的布局,以便在处理更多页面和变体时为您提供更大的灵活性。
{# filename: page-layout.html.twig #}
{% block content%}
{{ page.content }}
{% endblock%}
{% block footer%}
{% include '@mytheme/parts/footer.html.twig' %}
{% endblock%}
所以你可以在另一个页面上做这样的事情
{# filename: page--front.html.twig #}
{% block footer%}
<div> I want to handle a different footer in here</div>
{% endblock%}
最后,我发现挖掘建议数组非常有用,看看Drupal正在尝试使用它。
干杯。
答案 2 :(得分:1)
既然https://www.drupal.org/node/2291449已经提交,你也可以这样做:
{% include 'footer.html.twig' %}