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

Twig 的 tags学习(中文) 之二(3)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 12:18 点击:

父block
也许你会需要 父block的内容。可以使用parent函数,这很有用比如你想往一个block里添加内容而不是覆盖时。


{% block sidebar %} 
    <h3>Table Of Contents</h3> 
    ... 
    {{ parent() }} 
{% endblock %} 
{% block sidebar %}
    <h3>Table Of Contents</h3>
    ...
    {{ parent() }}
{% endblock %}


命名endblock
模板引擎 允许你命名结束标记,这样可读性会提高很多。但个人觉得没啥用处。

{% block sidebar %} 
    {% block inner_sidebar %} 
        ... 
    {% endblock inner_sidebar %} 
{% endblock sidebar %} 
{% block sidebar %}
    {% block inner_sidebar %}
        ...
    {% endblock inner_sidebar %}
{% endblock sidebar %}

嵌套block
允许你嵌套生成block ,来形成更复杂的block


{% for item in seq %} 
    <li>{% block loop_item %}{{ item }}{% endblock %}</li> 
{% endfor %} 
{% for item in seq %}
    <li>{% block loop_item %}{{ item }}{% endblock %}</li>
{% endfor %}


简写block
以下这两种写法是等效的


{% block title %} 
    {{ page_title|title }} 
{% endblock %} 
 
{% block title page_title|title %} 
{% block title %}
    {{ page_title|title }}
{% endblock %}

{% block title page_title|title %}

 


动态继承
你可以用一个变量来继承不同的模板。


{% extends some_var %} 
{% extends some_var %}
如果变量是一个twig模板对象,也可以。


$layout = $twig->loadTemplate('some_layout_template.twig'); 
 
$twig->display('template.twig', array('layout' => $layout)); 
$layout = $twig->loadTemplate('some_layout_template.twig');

$twig->display('template.twig', array('layout' => $layout));
1.2版本更新 你可以传递一个数组,twig会选择第一个存在的模板,来继承。


{% extends ['layout.html', 'base_layout.html'] %} 
{% extends ['layout.html', 'base_layout.html'] %}


条件继承
这个很简单自己看吧,


{% extends standalone ? "minimum.html" : "base.html" %} 
{% extends standalone ? "minimum.html" : "base.html" %}

 

block标签
参见 extends标签

 

 

include标签
载入一个模板,返回渲染的内容。载入的模板可以使用当前模板的变量{% include 'header.html' %} 
    Body 

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

推荐热点

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

豫ICP备11007008号-1