模板

October CMS Documentation Docs

模板

October 扩展了 Twig 模板语言 (opens new window) 增加了许多函数、标签、过滤器和变量。这些扩展允许您使用 CMS 功能并访问模板内的页面环境信息。

# 变量

模板变量使用*{{}}*打印在页面上。

{{ variable }}

变量也可以表示表达式

{{ isAjax ? 'Yes' : 'No' }}

变量可以与 ~ 字符连接。

{{ 'Your name: ' ~ name }}

October 在 this 变量下提供了全局变量,如 变量 部分所列。

# 标签

标签是 Twig 的一项独特功能,并用 {% %} 字符包裹。

{% tag %}

标签提供了一种更流畅的方式来描述模板逻辑。

{% if stormCloudComing %}
    呆在里面
{% else %}
    出去玩
{% endif %}

{% set %} 标签可用于在模板内设置变量。

{% set activePage = 'blog' %}

标签可以采用许多不同的语法,并列在标签部分下。

# 过滤器

过滤器充当单个实例变量的修饰符,并使用管道符号后跟过滤器名称来应用。

{{ 'string'|filter }}

过滤器可以像函数一样接受参数。

{{ price|currency('USD') }}

过滤器可以连续应用。

{{ 'October Glory'|upper|replace({'October': 'Morning'}) }}

过滤器列在Filters部分下。

# 函数

函数允许执行逻辑并且返回结果充当变量。

{{ function() }}

函数可以接受参数。

{{ dump(variable) }}

函数列在 Functions 部分下。

# 访问逻辑

了解 Twig 最重要的是它如何访问 PHP 层。为方便起见,{{ foo.bar }} 对 PHP 对象进行以下检查:

  1. 检查 foo 是否为数组,bar 是否为有效元素。
  2. 如果不是,并且如果 foo 是一个对象,请检查 bar 是否是一个有效属性。
  3. 如果不是,并且如果 foo 是一个对象,请检查 bar 是否是一个有效的方法(即使 bar 是构造函数 - 使用 __construct() 代替)。
  4. 如果不是,并且如果foo是一个对象,检查getBar是一个有效的方法。
  5. 如果不是,并且如果 foo 是一个对象,请检查 isBar 是否是一个有效的方法。
  6. 如果不是,则返回一个 null 值。

# 不支持的功能

Twig 提供的某些功能在October不支持。它们列在下面的等效功能旁边。

标签 相等的
{% extend %} 使用 布局 (opens new window) 或者 {% placeholder %}
{% include %} 使用 {% partial %} 或者 {% content %}