October CMS 扩展了 Twig 模板语言 并加入了许多函数、标签、过滤器和变量。这些扩展允许您在模板中使用 CMS 功能并访问页面环境信息。
模板变量使用双大括号打印在页面上。
{{ variable }}变量也可以表示表达式。
{{ isAjax ? 'Yes' : 'No' }}变量可以使用 ~ 字符连接。
{{ 'Your name: ' ~ name }}October 在 this 变量下提供了全局变量,如 Variables 部分所列。
标签是 Twig 的一个独特功能,并用 {% %} 字符包裹。
{% tag %}标签提供了一种更流畅的方式来描述模板逻辑。
{% if stormCloudComing %}
Stay inside
{% else %}
Go outside and play
{% endif %}{% set %} 标签可用于在模板内部设置变量。
{% set activePage = 'blog' %}标签可以采用多种不同的语法,并列在 标签 部分下。
过滤器对变量的单个实例起修饰作用,并使用管道符号后跟过滤器名称的方式进行应用。
{{ 'string'|filter }}过滤器可以像函数一样接受参数。
{{ price|currency('USD') }}过滤器可以相继应用。
{{ 'October Glory'|upper|replace({'October': 'Morning'}) }}过滤器列在过滤器部分下。
函数允许逻辑得以执行,并且返回结果作为变量。
{{ function() }}函数可以接受参数。
{{ dump(variable) }}函数列在 函数 部分。
学习 Twig 最重要的事情是它如何访问 PHP 层。为了方便 {{ foo.bar }} 对一个 PHP 对象执行以下检查:
foo 是否为数组且 bar 为有效元素。foo 是一个对象,检查 bar 是否是有效属性。foo 是一个对象,检查 bar 是否是一个有效方法 (即使 bar 是构造函数 - 请改用 __construct())。foo 是一个对象,检查 getBar 是否是一个有效方法。foo 是一个对象,检查 isBar 是否是一个有效方法。null 值。Twig 提供了一些 October CMS 不支持的特性。它们列在下面,旁边是等效特性。
| Tag | Equivalent |
|---|---|
{% extend %} | Use Layouts or {% placeholder %} |
{% include %} | Use {% partial %} or {% content %} |