OctoberCms-layouts

介绍

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

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


    
        {% page %}
    

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

url = "/"
layout = "default"
==

Hello, world!

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


    
        

Hello, world!

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

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

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

你可能感兴趣的:(OctoberCms-layouts)