内置的模板引擎除了支持普通变量的输出之外,更强大的地方在于标签库功能。

标签库类似于Java的Struts中的JSP标签库,每一个标签库是一个独立的标签库文件,标签库中的每一个标签完成某个功能,采用XML标签方式(包括开放标签和闭合标签)。

标签库分为内置和扩展标签库,内置标签库是Cx标签库。

导入标签库

使用taglib标签导入当前模板中需要使用的标签库,例如:

  1. <taglib name="html" />

如果没有定义html标签库的话,则导入无效。

也可以导入多个标签库,使用:

  1. <taglib name="html,article" />

导入标签库后,就可以使用标签库中定义的标签了,假设article标签库中定义了read标签:

  1. <article:read name="hello" id="data" >
  2. {$data.id}:{$data.title}
  3. </article:read>

在上面的标签中,<article:read>... </article:read> 就是闭合标签,起始和结束标签必须成对出现。

如果是 <article:read name="hello" /> 就是开放标签。

闭合和开放标签取决于标签库中的定义,一旦定义后就不能混淆使用,否则就会出现错误。

内置标签

内置标签库无需导入即可使用,并且不需要加XML中的标签库前缀,ThinkPHP内置的标签库是Cx标签库,所以,Cx标签库中的所有标签,我们可以在模板文件中直接使用,我们可以这样使用:

  1. <eq name="status" value="1 >
  2. 正常
  3. </eq>

如果Cx不是内置标签的话,可能就需要这么使用了:

  1. <cx:eq name="status" value="1 >
  2. 正常
  3. </cx:eq>

更多的Cx标签库中的标签用法,参考内置标签。

内置标签库可以简化模板中标签的使用,所以,我们还可以把其他的标签库定义为内置标签库(前提是多个标签库没有标签冲突的情况),例如:

  1. 'TAGLIB_BUILD_IN' => 'cx,article'

配置后,上面的标签用法就可以改为:

  1. <read name="hello" id="data" >
  2. {$data.id}:{$data.title}
  3. </read>

大理石平台价格

标签库预加载

标签库预加载是指无需手动在模板文件中导入标签库即可使用标签库中的标签,通常用于某个标签库需要被大多数模板使用的情况。

在应用或者模块的配置文件中添加:

  1. 'TAGLIB_PRE_LOAD' => 'article,html'

设置后,模板文件就不再需要使用

  1. <taglib name="html,article" />

但是仍然可以在模板中调用:

  1. <article:read name="hello" id="data" >
  2. {$data.id}:{$data.title}
  3. </article:read>

thinkphp 标签库的更多相关文章

  1. thinkphp 标签库驱动

    任何一个模板引擎的功能都不可能是为你量身定制的,具有一个良好的可扩展机制也是模板引擎的另外一个考量,Smarty采用的是插件方法来实现扩展,Think\Template由于采用了标签库技术,比Smar ...

  2. thinkphp自定义标签库

    thinkphp ~ php中 的类, 的成员变量, 本身是没有类型说明的, 那么我怎么知道它的类型呢? 或初始值呢? 通常在类定义中, 如果能给一个初始值的(对于已知简单类型的),最好给一个初始值, ...

  3. thinkphp修改及编写标签库,编辑器的使用

    在view目录下创建Index_aaa.html <!DOCTYPE html> <html> <head> <meta charset="UTF- ...

  4. ThinkPHP - 自定义标签库 - 标签驱动

    ThinkPHP 官方文档:http://document.thinkphp.cn/manual_3_2/taglib_driver.html 创建一个类,继承自TagLib类: <?php / ...

  5. ThinkPHP内置标签库原理(Cx标签库)

    任何一个模板引擎的功能都不可能是为你量身定制的,具有一个良好的可扩展 机制也是模板引擎的另外一个考量,Smarty采用的是插件方法来实现扩展,ThinkTemplate由于采用了标签库技术,比Smar ...

  6. ThinkPHP3.2.3 自定义标签库的使用

    ThinkPHP 3.2.3 手册中标签库驱动的地址是: http://www.kancloud.cn/manual/thinkphp/1859 标签库的地址是:http://www.kancloud ...

  7. thinkphp 标签扩展

    标签库加载直线电机参数 模板中加载标签库,预加载自定义标签库,扩展内置标签库的加载 请参考:http://document.thinkphp.cn/manual_3_2.html#taglib 自定义 ...

  8. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

  9. Struts2入门(五)——OGNL和标签库

    一.前言 OGNL和标签库的作用,粗暴一点说,就是减少在JSP页面中出现java代码,利于维护. 1.1.OGNL 1.1.1.什么是OGNL? OGNL(Object-Graph Navigatio ...

随机推荐

  1. Center OS 7安装 Apollo

    声明: 每个人的情况都不一样,所以大家在看教程的时候自行斟酌,最好先扫一遍,再来根据自身情况进行操作.同时,遇到的问题也可能不尽相同,要灵活处理. 了解: Apollo是从原始ActiveMQ的基础构 ...

  2. python_django_静态文件

    什么是静态文件? 是django中用于存放css,js,图片,json文件,字体文件等的文件,使代码更好管理. 1.配置 https://www.cnblogs.com/Vera-y/p/114923 ...

  3. vue-cli 4058错误

    vue搭建项目 执行命令 npm install -g vue-cli   出现错误 4058 1.按照文章http://www.jb51.net/article/126221.htm操作没有效果 2 ...

  4. js实现截取字符串后几位

    var strs ="wdsdabcdefages" strs.substring(obj.filename.lastIndexOf("a")+1,strs.l ...

  5. Aira搭建

    Aira下载地址 https://github.com/aria2/aria2/releases AriaNg下载地址 https://github.com/mayswind/AriaNg/relea ...

  6. Python 列表,元组,字典

    0)字符串切片 py_str = 'python' >>>py_str[0] #取第一个字符串,返回值为"p",超出范围会报错 >>>py_st ...

  7. Delphi GDI(一)

    Delphi 7下IGDIPlus库的使用 IGDI+是一个免费开源封装微软GDI+功能的Delphi库,该库使得可以用Delphi语言代码快速简短的实现复杂GDI+应用程序. 官方网站:http:/ ...

  8. NX二次开发-UFUN读取工程图注释UF_DRF_ask_text_data

    1 NX11+VS2013 2 3 4 #include <uf.h> 5 #include <uf_ui.h> 6 #include <uf_drf.h> 7 8 ...

  9. xcode5 添加Build Phases脚本

    http://www.runscriptbuildphase.com/ 版权声明:本文为博主原创文章,未经博主允许不得转载.

  10. ZK4字命令

    zookeeper4字命令:两种方式,1.通过telnet链接服务器,执行stat.2.echo stat|nc xxx.xxx.xxx.xxx 2181效果是一样的conf:zk服务器运行时的基本信 ...