改进   重译  

模板

October 扩展了 Twig template language 的功能、 标签、过滤器和变量。这些扩展允许你使用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' %}

标签可以使用许多不同的语法,并在标签章节列出。

过滤器

过滤器充当单个实例变量的修改器,使用|后面跟着 过滤器名。

{{ 'string'|filter }}

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

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

可连续应用过滤器。

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

具体的在 过滤器 章节列出.

方法

方法可执行处理逻辑,并返回的结果可作为变量。

{{ function() }}

方法可接受变量。

{{ dump(variable) }}

具体的在 方法 章节列出.

访问逻辑

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

  1. Check if foo is an array and bar a valid element.
  2. If not, and if foo is an object, check that bar is a valid property.
  3. If not, and if foo is an object, check that bar is a valid method (even if bar is the constructor - use __construct() instead).
  4. If not, and if foo is an object, check that getBar is a valid method.
  5. If not, and if foo is an object, check that isBar is a valid method.
  6. If not, return a null value.

不支持的功能

Twig提供的一些功能在October不受支持。下面列出了等效功能。

Tag Equivalent
{% extend %} Use Layouts or {% placeholder %}
{% include %} Use {% partial %} or {% content %}
遇到问题?