October CMS 扩展了 Twig 模板语言,并增加了许多函数、标签、过滤器和变量。这些扩展允许您在模板中使用 CMS 功能并访问页面环境信息。
模板变量在页面上使用双花括号显示。
{{ variable }}变量也可以表示 表达式.
{{ isAjax ? 'Yes' : 'No' }}变量可以使用 ~ 字符进行连接。
{{ 'Your name: ' ~ name }}October 提供 this 变量下的全局变量,如 变量 部分所列。
标签是 Twig 的一个独特功能,并用 {% %} 字符包裹。
{% tag %}标签提供了一种更流畅的方式来描述模板逻辑。
{% if stormCloudComing %}
Stay inside
{% else %}
Go outside and play
{% endif %}{% set %} 标签可用于在模板内部设置变量。
{% set activePage = 'blog' %}标签可以采用多种不同的语法,并列在 Tags 部分之下。
过滤器作为变量的修饰符,作用于单个实例,并使用管道符后跟过滤器名称来应用。
{{ '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 %} |