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 部分对于布局是可选的。支持的配置参数是namedescription.这些参数是可选的,用于后端用户界面。带有描述的示例布局模板:

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,onBeforePageStartonEnd.

onInit 函数在所有组件初始化后和处理 AJAX 请求之前执行。这onStart 函数在页面处理开始时执行。这onBeforePageStart 函数在布局之后执行components 跑了,但在页面之前onStart 函数被执行。这onEnd 函数在页面呈现后执行。处理程序的执行顺序如下:

  1. 布局onInit() 功能。
  2. onInit() 功能。
  3. 布局onStart() 功能。
  4. 布局组件onRun() 方法。
  5. 布局onBeforePageStart() 功能。
  6. onStart() 功能。
  7. 页面组件onRun() 方法。
  8. onEnd() 功能。
  9. 布局onEnd() 功能。
豫ICP备18041297号-2