我需要创建一个从外部CMS“扩展”模板的主题。
此CMS生成一个包含三个占位符的HTML模板:
我想获取模板并用Twig块替换占位符。所以,最后,我可以处理模板,因为它是从一开始就在Twig中创建的。可能吗?怎么样?
另请注意,每次用户请求Twig模板时都应该请求外部模板,因为外部CMS内容可能随时更改。
答案 0 :(得分:0)
您可以通过用树枝块替换占位符来完成这项工作:
PHP
$contents = file_get_contents("http://example.com/cms/template.html");
$contents = str_replace("###APPINCLUDEHEADER###", "{% block header %}{% endblock %}", $contents);
$contents = str_replace("###APPINCLUDECONTENT###", "{% block content %}{% endblock %}", $contents);
$contents = str_replace("###APPINCLUDEFOOTER###", "{% block footer %}{% endblock %}", $contents);
file_put_contents("base.html.twig", $contents);
然后在渲染视图中,您可以使用:
layout.html.twig
{% extends "base.html.twig" %}
{% block header %}
{# your site's header #}
{% endblock %}
{% block content %}
{# your site's body #}
{% endblock %}
{% block footer %}
{# your site's footer #}
{% endblock %}