OctoberCms-layouts

介绍

布局定义页面支架,即页面上重复的所有内容,例如页眉和页脚。布局通常包含HTML标记以及HEAD,TITLE和BODY标记。

布局模板位于主题目录的/ layouts子目录中。布局模板文件应具有htm扩展名。在布局文件中,您应该使用{% page %}标签来输出页面内容。最简单的布局示例:

<html>
    <body>
        {% page %}
    </body>
</html>

要为页面使用布局,页面应在“ 配置”部分中引用布局文件名(不带扩展名)。请记住,如果从子目录引用布局,则应指定子目录名称。使用default.htm布局的示例页面模板:

url = "/"
layout = "default"
==
<p>Hello, world!</p>

当请求此页面时,其内容将与布局合并,或更确切地说,将布局的{% page %}标记替换为页面内容。前面的示例将生成以下标记:

<html>
    <body>
        <p>Hello, world!</p>
    </body>
</html>

请注意,您可以在布局中渲染局部。这使您可以在不同布局之间共享公共标记元素。例如,您可以有一个输出网站CSS和JavaScript链接的局部文件。这种方法简化了资源管理-如果要添加JavaScript引用,则应修改单个部分,而不是编辑所有布局。

配置”部分对于布局是可选的。支持的配置参数是namedescription。这些参数是可选的,并在后端用户界面中使用。具有说明的示例布局模板:

description = "Basic layout example"
==
<html>
    <body>
        {% page %}
    </body>
</html>

占位符

占位符允许页面将内容注入到布局中。占位符在布局模板中使用{% placeholder %}标签定义。在下一个例子中示出了具有占位符的布局模板头部在HTML HEAD部分中定义。

<html>
    <head>
        {% placeholder head %}
    </head>
    ...

页面可以使用{% put %}{% endput %}标记将内容注入占位符。以下示例演示了一个简单的页面模板,该模板将CSS链接注入到上一个示例中定义的占位符

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部分可以定义下列功能用于处理页面执行生命周期:onInitonStartonBeforePageStartonEnd

onInit初始化所有组件时以及处理AJAX请求之前,将执行该函数。该onStart功能在页面处理开始时执行。该onBeforePageStart功能在布局组件运行之后但在页面onStart功能执行之前执行。onEnd呈现页面后执行该功能。处理程序的执行顺序如下:

  1. 布局onInit()功能。
  2. 页面onInit()功能。
  3. 布局onStart()功能。
  4. 布局组件onRun()方法。
  5. 布局onBeforePageStart()功能。
  6. 页面onStart()功能。
  7. 页面组件onRun()方法。
  8. 页面onEnd()功能。
  9. 布局onEnd()功能。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容