高级

高级

Twig过滤器和功能

在整个文档中,您可能已经注意到,在我们的示例中引用YAML字段时,使用了 |e 和 |raw 等Twig过滤器。这里有一个简单的例子:

{% if particle.headline %}<h1 class="font-family-bloody">{{ particle.headline|raw }}</h1>{% endif %}

这句话来自我们关于添加和应用字体的指南。它检测一个粒子的标题字段是否有一个集合值,如果是,则以原始的HTML格式显示它。

这允许用户输入HTML,例如style="color:red" Title style。并且让它在前端呈现红色标题而不是被翻译成文字字符。

在Gantry中,默认情况下这些元素会被转义。这是一种安全预防措施,因为它只将这些字段的内联HTML限制在您有意启用的字段中。如果您想为一个字段打开呈现的HTML,您需要添加|raw 过滤器。

有用的资源

广泛的Twig文档覆盖了广泛的过滤器。我们只报道了在Twig官方支持的30多个国家。

您甚至可以找到关于每个过滤器的更详细的文档,包括如何以及何时使用它。我们建议从阅读关于escape和raw的阅读开始,因为这些在我们的文档中经常用到,在Hydrogen主题中也是如此。

自定义Twig过滤器

Gantry 5包括一组不同的Twig过滤器,它们是Gantry的习惯。它们使您能够从Gantry中获得更多,并利用其强大的特性。

过滤器 描述 参数
字段名 在Gantry管理器内部使用。它转换表单的字段名。  
html 查找流并将其转换为真正的url domain timestamp_age
url 获取一个流并将其转换为一个真正的URL  
trans 翻译的字符串  
repeat 按指定的计数重复你输入的内容 count
json_decode 基本上与php中的json_decode()相同 assoc depth options
values 返回数组中的所有值,并对数组进行数值计算  
base64 将字符串编码为base64格式  
imagesize 获取图像尺寸并以HTML标记格式输出  
truncate_text 将文本从HTML标记中删除,并将文本截断到提供的字符数 limit
truncate_html 将文本截断到提供的字符数,保留HTML limit

例子

fieldname

Input (Twig):

<input type="text" name="{{ 'particles.date.format'|fieldName }}"/>

Output (HTML):

<input type="text" name="particles[date][format]"/>

html

Input (Twig):

{{ '<img src="gantry-theme://images/foo.jpg"/>'|html }}

Output:

<img src="/templates/g5_hydrogen/images/foo.jpg"/>

url

Input (Twig):

<img src="{{ 'gantry-theme://images/foo.jpg'|url }}"/>

Output (HTML):

<img src="/templates/g5_hydrogen/images/foo.jpg"/>

trans

Input (Twig):

<h1>{{ 'GANTRY5_PLATFORM_STYLES'|trans }}</h1>

Output (HTML):

<h1>Styles</h1>

repeat

Input (Twig):

{{ '.'|repeat(3) }}

Output (HTML):

...

values

Input (Twig):

{% set array = {one: 'foo', two: 'bar'} %}
{% set values = array|values %}
{{ array|json_encode }} => {{ values|json_encode }}

Output (HTML):

{"one":"foo",""two":"bar"} => ["foo","bar"]

imagesize

Input (Twig):

<img src="{{ 'gantry-theme://images/foo.jpg'|url }}" {{ 'gantry-theme://images/foo.jpg'|imagesize }}/>

Output (HTML):

<img src="/templates/g5_hydrogen/images/foo.jpg" width="100" height="50" />

自定义Twig功能

和Twig filter一样,Gantry 5也有一组定制的Twig函数,可以在模板和粒子中使用。下面是一个快速列表:

功能 描述 参数
nested 通过对嵌套数组/对象使用点表示法来检索值
colorContrast 给出了一种颜色,它返回一个适合的光或暗颜色以更好的对比
get_cookie 从当前请求得到一个cookie
preg_match 搜索主题与模式中给出的正则表达式匹配 pattern subject
url 将一个流转换成一个真实的URL
json_decode 基本相同于json_decode()PHP. assoc depth options
imagesize 获取图像尺寸并以HTML标记格式输出
说点什么...
取消
你是一个访客 ( 注册 ? )
作为一个访客
加载评论... 注释将在之后刷新 00:00.

第一个发表评论

joomlass-logo31.png

Search