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

标签库类似于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. wbinfo - 向winbind服务查询信息

    总览 SYNOPSIS wbinfo [-a user%password] [-c username] [-C groupname] [--domain domain] [-I ip] [-s sid ...

  2. shell command to replace UltraEdit

    cat abc.txt |hexdump -C cat abc.txt |hexdump -C

  3. linux hg 查看当前提交的所有版本及注释

    linux hg 查看当前提交的所有版本及注释? linux hg 查看当前提交的所有版本及注释? linux hg 查看当前提交的所有版本及注释? 回答: hg log

  4. 爬虫那些事儿--Http返回码

    由于爬虫的抓取也是使用http协议交互.因此需要了解Http的各种返回码所代表的意义,才能判断爬虫的执行结果. 返回码如下: 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部 ...

  5. 用C#简单实现的36进制转换代码

    private const string initValue = "A0000001"; private static string cs = "0123456789AB ...

  6. QT开发资料

    QT开发入门资料 https://tmr.js.org/p/cc37608/ QT学习之路: https://www.devbean.net/

  7. GitHub排名TOP30的机器学习开源项目

    对于机器学习者来说,阅读开源代码并基于代码构建自己的项目,是一个非常有效的学习方法.看看以下这些Github上平均star为3558的开源项目,你错了哪些? 1. FastText:快速文本表示和文本 ...

  8. DOM 对象和jQuery对象的转换

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. idea bug解决

    1.编译时错误:软件包 javax.servlet.http 不存在import javax.servlet.http.HttpServletRequest 解决办法:把servlet-api.jar ...

  10. Unity 调用android

    { https://www.bilibili.com/video/av49002527 }