掌握Thinkphp3.2.0----标签库
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----标签库的更多相关文章
- ThinkPHP3.2.3 自定义标签库的使用
ThinkPHP 3.2.3 手册中标签库驱动的地址是: http://www.kancloud.cn/manual/thinkphp/1859 标签库的地址是:http://www.kancloud ...
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- Struts2入门(五)——OGNL和标签库
一.前言 OGNL和标签库的作用,粗暴一点说,就是减少在JSP页面中出现java代码,利于维护. 1.1.OGNL 1.1.1.什么是OGNL? OGNL(Object-Graph Navigatio ...
- [JSP]自定义标签库taglib
自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...
- java 标签库(核心,xml,sql ,国际化,函数)
java标签库分分为上述几种,一般经常使用的是核心和函数,接下来会分别讲解这几种,和常见的用法. 一般标签库会和el表达式一起使用,所以在学习标签库前最后也学习下el表达式的使用. 导入后展开 可以从 ...
- 重温JSP学习笔记--与日期数字格式化有关的jstl标签库
上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...
- 重温JSP学习笔记--JSTL标签库
以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...
- thinkphp自定义标签库
thinkphp ~ php中 的类, 的成员变量, 本身是没有类型说明的, 那么我怎么知道它的类型呢? 或初始值呢? 通常在类定义中, 如果能给一个初始值的(对于已知简单类型的),最好给一个初始值, ...
- 12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例
EL应用 自定义一个标签,实现两个字符串的相加 1回顾 1.1servlet生命周期 init(ServletConfig) service ...
- 简单实用JSTL标签库
1. JSTL标签库是一个什么东东? 简单来说,有了它你就可以在类似HTML的JSP页面里面运用一些高级语法,实现迭代.条件判断.XML文档操作.国际化标签.SQL标签. 2. 如何使用 ? 参考网址 ...
随机推荐
- SAM/BAM文件处理
当测序得到的fastq文件map到基因组之后,我们通常会得到一个sam或者bam为扩展名的文件.SAM的全称是sequence alignment/map format.而BAM就是SAM的二进制文件 ...
- Maven下载依赖项的源代码(source code)和Javadoc
Maven 默认只下载依赖项本身的 jar 文件,不下载源代码和 Javadoc.如此固然工程的体积是最小的,但在开发者不熟悉依赖的对象时,需要查找源代码中的方法定义和说明. 这时我们需要使用一条 M ...
- 模仿mybatis,用jdk proxy实现接口
在mybatis中,我们都只需要定义一个mapper接口,但并不需要对它进行任务实现.只要有对就的mapper.xml文件就可以访问数据库.那么,没有接口的访问是如何实现的呢. 答案就是JDK pro ...
- node01-创建服务器
node学习笔记目录:node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http no ...
- LATTICE 存储之FIFO的使用
坑,,以后填 对于Lattice 的 FIFO 存储器分为两种,见下图: 这两个的主要区别是一个后面加DC一个不加,那这个DC是什么意思呢??DC这里是Dual Clock的意思,也就是双时钟的意 ...
- 在Windows10 64位 Anaconda4 Python3.5下安装XGBoost
系统环境: Windows10 64bit Anaconda4 Python3.5.1 软件安装: Git for Windows MINGW 在安装的时候要改一个选择(Architecture选择x ...
- Pyqt 动态的添加控件
Pyqt 动态的添加控件 # -*- coding: utf-8 -*- from PyQt4.QtCore import * from PyQt4.QtGui import * import sys ...
- 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】
一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...
- XSS跨站点脚本攻击
XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS. 以下为Jav ...
- ASP.NET使用Memcached
一.安装Memcached及Memcached配置和状态查询 要想使用Memcached做缓存首先需要安装Memcached服务,安装方法如下: memcached.exe下载 保存至相应路径 打开c ...