介绍
布局定义页面支架,即页面上重复的所有内容,例如页眉和页脚。布局通常包含HTML标记以及HEAD,TITLE和BODY标记。
布局模板位于主题目录的/ layouts子目录中。布局模板文件应具有htm扩展名。在布局文件中,您应该使用{% page %}
标签来输出页面内容。最简单的布局示例:
{% page %}
要为页面使用布局,页面应在“ 配置”部分中引用布局文件名(不带扩展名)。请记住,如果从子目录引用布局,则应指定子目录名称。使用default.htm布局的示例页面模板:
url = "/"
layout = "default"
==
Hello, world!
当请求此页面时,其内容将与布局合并,或更确切地说,将布局的{% page %}
标记替换为页面内容。前面的示例将生成以下标记:
Hello, world!
请注意,您可以在布局中渲染局部。这使您可以在不同布局之间共享公共标记元素。例如,您可以有一个输出网站CSS和JavaScript链接的局部文件。这种方法简化了资源管理-如果要添加JavaScript引用,则应修改单个部分,而不是编辑所有布局。
“ 配置”部分对于布局是可选的。支持的配置参数是name和description。这些参数是可选的,并在后端用户界面中使用。具有说明的示例布局模板:
description = "Basic layout example"
==
{% page %}
占位符
占位符允许页面将内容注入到布局中。占位符在布局模板中使用{% placeholder %}
标签定义。在下一个例子中示出了具有占位符的布局模板头部在HTML HEAD部分中定义。
{% placeholder head %}
...
页面可以使用{% put %}
和{% endput %}
标记将内容注入占位符。以下示例演示了一个简单的页面模板,该模板将CSS链接注入到上一个示例中定义的占位符头。
url = "/my-page"
layout = "default"
==
{% put head %}
{% endput %}
The page content goes here.
有关占位符的更多信息,请参见《标记指南》。
动态布局
布局(如页面)可以使用任何Twig功能。有关详细信息,请参阅动态页面文档。
布局执行生命周期
内部布局的PHP部分可以定义下列功能用于处理页面执行生命周期:onInit
,onStart
,onBeforePageStart
和onEnd
。
在onInit
初始化所有组件时以及处理AJAX请求之前,将执行该函数。该onStart
功能在页面处理开始时执行。该onBeforePageStart
功能在布局组件运行之后但在页面onStart
功能执行之前执行。onEnd
呈现页面后执行该功能。处理程序的执行顺序如下:
- 布局
onInit()
功能。 - 页面
onInit()
功能。 - 布局
onStart()
功能。 - 布局组件
onRun()
方法。 - 布局
onBeforePageStart()
功能。 - 页面
onStart()
功能。 - 页面组件
onRun()
方法。 - 页面
onEnd()
功能。 - 布局
onEnd()
功能。