october cms

october中的twig模板

2017-09-19  本文已影响0人  ben2012

october中使用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' %}

该{% for item in items %}设置循环

 {% for post in category.posts %}
    {{post.title}}
 {% endfor %}

过滤器


过滤器作为单个实例的变量的修饰符,并使用管道符号后跟过滤器名称进行应用。

{{ 'string'|filter }}
{{ post.content|md}}

过滤器可以像函数一样使用参数。

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

过滤器可以连续应用。

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

函数


函数允许执行逻辑,返回结果作为一个变量。

{{ function() }}

函数可以引用

{{ dump(variable) }}

访问逻辑


了解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的功能

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

标签 扩展
{% extend %} 使用layouts或{% placeholder %}替代
{% include %} 使用{% partial %} or {% content %}
上一篇 下一篇

猜你喜欢

热点阅读