1.什么是内置标签?什么是标签扩展库?

Cx.class.php 和 Html.class.php

2.怎么加载非内置标签,怎么使用?

两种方式加载

3.怎么扩展自定义的标签?

 仿照Html.class.php写

仔细回答这3个问题:

问题一:

Think/Library/Think/Template/TagLib的Cx.class.php就是默认的内置标签,其中包含了前边所学习的标签。

在模版中可以直接以普通标签的形式进行调用。例如:<volist name="" id=""></volist>

Think/Library/Think/Template/TagLib的Html.class.php是扩展的非内置标签。

问题二:

   配置文件:

    'TAGLIB_BUILD_IN' =>'cx,html',修改默认的内置标签。这样的html就内置标签了,可以和volist一样直接调用了

引入:

<taglib name="html" />在模版中直接调用。但是调用得以固定: <html:imageBtn type="" value="" />这种

方式需要每一个模版文件都要引入。

'TAGLIB_PRE_LOAD'=>'html',配置文件中写入。这样就不用每次加载了

问题三:

有时感觉内置的标签不能满足项目日益繁杂的项目需求, 这是可能想自己扩展一些标签,来使用,那么自己怎么扩展标签呢?

第一步:在 Think/Library/Think/Template/TagLib 下创建一个 Test.class.php

 //自定义扩展标签
e namespace Think\Template\TagLib;
e use Think\Template\TagLib;
defined('THINK_PATH') or exit();
/**
* Test测试标签
*/
s class Test s extends TagLib{
// 标签定义
d protected $tags = array(
'mytest'=> array('attr'=>'color,border','close'=>1)
);
public n function _mytest($tag,$content) {
$color = '';
$border = '';
f if ( isset($tag['color'])) {
$color = 'color:'.$tag['color'];
}
f if ( isset($tag['border'])) {
$border = 'border:'.$tag['border'].'px solid #ccc';
}
$css = $color.';'.$border;
n return '<div style="'.$css.'">'.$content.'</div>';
}
}

导入 test 扩展标签

 <taglib name="test" />

使用扩展标签

 <Test:mytest color="blue" border="5">测试标签</Test:mytest>

这样就可以自定义自己所用的标签了。基本都是按照固定的规则进行

掌握Thinkphp3.2.0----标签库的更多相关文章

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

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

  2. JSP 标准标签库(JSTL)

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

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

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

  4. [JSP]自定义标签库taglib

    自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...

  5. java 标签库(核心,xml,sql ,国际化,函数)

    java标签库分分为上述几种,一般经常使用的是核心和函数,接下来会分别讲解这几种,和常见的用法. 一般标签库会和el表达式一起使用,所以在学习标签库前最后也学习下el表达式的使用. 导入后展开 可以从 ...

  6. 重温JSP学习笔记--与日期数字格式化有关的jstl标签库

    上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...

  7. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

  8. thinkphp自定义标签库

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

  9. 12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例

    EL应用      自定义一个标签,实现两个字符串的相加 1回顾      1.1servlet生命周期           init(ServletConfig)           service ...

  10. 简单实用JSTL标签库

    1. JSTL标签库是一个什么东东? 简单来说,有了它你就可以在类似HTML的JSP页面里面运用一些高级语法,实现迭代.条件判断.XML文档操作.国际化标签.SQL标签. 2. 如何使用 ? 参考网址 ...

随机推荐

  1. 在MVC中实现文件的上传

    @using (Html.BeginForm("daoru", "Excel", FormMethod.Post, new { enctype = " ...

  2. mac mysql cmd

    sudo /usr/local/mysql/support-files/mysql.server start sudo /usr/local/mysql/support-files/mysql.ser ...

  3. ACM/ICPC 之 最小割转网络流(POJ3469)

    重点:构图 //最小割转网络流 //邻接表+Dinic //Time:5797Ms Memory:6192K #include<iostream> #include<cstring& ...

  4. ORACLE简单触发器

    因工作需要,尝试写一些建议的触发器,下面为其中一例. //创建一个名为TRG_FIN_OPB_ACCOUNTCARD的触发器 create or replace trigger TRG_FIN_OPB ...

  5. 分页显示中关于"序号"的问题

    项目开发中要求列表显示要明显看到总条目数,所以就要求序号从1开始. 如下为从1开始的序号展示: <s:iterator value="#request.pageView.records ...

  6. PHP中删除数组空值的方法

    array_filter函数的功能是利用回调函数来对数组进行过滤,如果没有回调函数,那么默认就是删除数组中值为false的项目. 例如 $entry = array(                0 ...

  7. jQuery+HTML5实现上传文件预览

    <!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http ...

  8. angular 依赖注入原理

    依赖注入(Dependency Injection,简称DI)是像C#,java等典型的面向对象语言框架设计原则控制反转的一种典型的一种实现方式,angular把它引入到js中,介绍angular依赖 ...

  9. [MongoDB]MongoDB的优缺点及与关系型数据库的比较

    汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...

  10. 去掉移动端页面 input, textarea, button, a 标签获取焦点时显示的黑影

    input, textarea, button, a{ -webkit-tap-highlight-color:rgba(0,0,0,0); }