CMS 布局
Introduction
布局定义了页面脚手架,通常包括出现在多个页面上的所有内容,例如页眉和页脚。布局通常包含 HTML 标记以及 HEAD、TITLE 和 BODY 标记。
布局模板位于/layouts 主题目录的子目录。布局模板文件应该有htm 扩大。在布局文件中,您应该使用{% page %}
标签输出页面内容。最简单的布局示例:
<html>
<body>
{% page %}
</body>
</html>
使用布局page 该页面应引用布局文件名(不带扩展名)Configuration 部分。请记住,如果您从subdirectory 您应该指定子目录名称。使用 default.htm 布局的示例页面模板:
url = "/"
layout = "default"
==
<p>Hello, world!</p>
当请求此页面时,其内容与布局合并,或更准确地说 - 布局的{% page %}
标记替换为页面内容。前面的示例将生成以下标记:
<html>
<body>
<p>Hello, world!</p>
</body>
</html>
请注意,您可以渲染partials 在布局中。这使您可以在不同布局之间共享通用标记元素。例如,您可以有一个输出网站 CSS 和 JavaScript 链接的部分。这种方法简化了资源管理——如果您想添加 JavaScript 引用,您应该修改单个部分而不是编辑所有布局。
这Configuration 部分对于布局是可选的。支持的配置参数是name 和description.这些参数是可选的,用于后端用户界面。带有描述的示例布局模板:
description = "Basic layout example"
==
<html>
<body>
{% page %}
</body>
</html>
Placeholders
占位符允许页面将内容注入布局。占位符在布局模板中定义为{% placeholder %}
标签。下一个示例显示带有占位符的布局模板head 在 HTML HEAD 部分中定义。
<html>
<head>
{% placeholder head %}
</head>
...
页面可以将内容注入占位符{% put %}
和{% endput %}
标签。以下示例演示了一个简单的页面模板,该模板将 CSS 链接注入占位符head 在前面的例子中定义。
url = "/my-page"
layout = "default"
==
{% put head %}
<link href="/themes/demo/assets/css/page.css" rel="stylesheet">
{% endput %}
<p>The page content goes here.</p>
可以找到有关占位符的更多信息在标记指南中.
动态布局
布局,就像页面一样,可以使用任何 Twig 特性。请参阅动态页面 有关详细信息的文档。
布局执行生命周期
在布局的内部PHP 部分 您可以定义以下函数来处理页面执行生命周期:onInit
,onStart
,onBeforePageStart
和onEnd
.
这onInit
函数在所有组件初始化后和处理 AJAX 请求之前执行。这onStart
函数在页面处理开始时执行。这onBeforePageStart
函数在布局之后执行components 跑了,但在页面之前onStart
函数被执行。这onEnd
函数在页面呈现后执行。处理程序的执行顺序如下:
- 布局
onInit()
功能。 - 页
onInit()
功能。 - 布局
onStart()
功能。 - 布局组件
onRun()
方法。 - 布局
onBeforePageStart()
功能。 - 页
onStart()
功能。 - 页面组件
onRun()
方法。 - 页
onEnd()
功能。 - 布局
onEnd()
功能。