您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > PHP >

TWIG 模板设计 快速入门手册 中文(5)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-09 15:34 点击:


HTML转义
主要是帮助转义 尖括号等  <, >,  &,  "  可以有两种办法。一种是用标签,另一种是使用过滤器。其实TWIG内部就是调用 php 的htmlspecialchars 函数

{{ user.username|e }} 
{{ user.username|e('js') }} 
 
{% autoescape true %} 
    Everything will be automatically escaped in this block 
{% endautoescape %} 
{{ user.username|e }}
{{ user.username|e('js') }}

{% autoescape true %}
    Everything will be automatically escaped in this block
{% endautoescape %}
因为{{是TWIG的操作符,如果你需要输出两个花括号,最简单到办法就是

{{ '{{' }} 
{{ '{{' }}
还可以使用 raw 标签和raw 过滤器,详细参考手册

{% raw %} 
    <ul> 
    {% for item in seq %} 
        <li>{{ item }}</li> 
    {% endfor %} 
    </ul> 
{% endraw %} 
{% raw %}
    <ul>
    {% for item in seq %}
        <li>{{ item }}</li>
    {% endfor %}
    </ul>
{% endraw %}

macros宏
宏有点类似于函数,常用于输出一些html标签。
这里有个简单示例,定义了一个输出input标签的宏。

{% macro input(name, value, type, size) %} 
    <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" /> 
{% endmacro %} 
{% macro input(name, value, type, size) %}
    <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
{% endmacro %}宏参数是没有默认值的,但你可以通过default过滤器来实现。
一般来说宏会定义在其他到页面,然后通过import标签来导入,
{% import "forms.html" as forms %} 
 
<p>{{ forms.input('username') }}</p> 
{% import "forms.html" as forms %}

<p>{{ forms.input('username') }}</p>你也可以只导入一个文件中部分宏,你还可以再重命名。
{% from 'forms.html' import input as input_field, textarea %} 
 
<dl> 
    <dt>Username</dt> 
    <dd>{{ input_field('username') }}</dd> 
    <dt>Password</dt> 
    <dd>{{ input_field('password', type='password') }}</dd> 
</dl> 
<p>{{ textarea('comment') }}</p> 
{% from 'forms.html' import input as input_field, textarea %}

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • PHP测试
  • 十天学会php之第六天
  • 查找数组中指定键名的值
  • 几种显示数据的方法的比较
  • 使用xmlhttp为网站增加域名查询功能
  • PHP+MYSQL+Javascript数据库查询结果的动态显示
  • 用redis实现跨服务器session
  • 用新浪微博接口发送图片微博失败的原因
  • smarty局部缓存技术[源码分析]
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1