ThinkPHP标签库

一.内置标签

内置标签是在 Think/Library/Think/Template/TagLib 下。在完整版中提供了两个类文件:Cx.class.php(内置标签核心类) 、Html.class.phphtml 扩展标签) 。 

1、在ThinkPHP 中,Cx.class.php 是自动加载的,所以并不需要各种配置或引入而可以直接编写标签代码即可运行。 

2、如果要使用 Html.class.php 的扩展标签,那么首先要导入这个标签:

//导入扩展标签
<taglib name="html" />

//在使用标签的时候,前面需要加上html:,表示这个是html标签库
<html:select options="name" selected="value" />

3、无需导入和添加:html前缀的方法:

//CxHtml都设置为内置标签
'TAGLIB_BUILD_IN' =>'cx,html',


//设置成内置标签,则不需要 html:
<select options="name" selected="value" />


PS:设置内置标签有一定的危险性,因为可能会出现标签的重复导致冲突。 


4、无需导入、需要添加:html前缀的方法:

如果没有设置为内置标签的话,那么都需要通过 tablib 进行导入,我们可以设置标签
预加载。这样,就不需要每次都进行导入操作了

//标签预加载
'TAGLIB_PRE_LOAD'=>'html' 


二.扩展标签库
有时感觉内置的标签不能满足项目日益繁杂的项目需求, 这是可能想自己扩展一些标签
来使用,那么自己怎么扩展标签呢?
第一步:在
Think/Library/Think/Template/TagLib 下创建一个 Test.class.php
//自定义扩展标签
namespace Think\Template\TagLib;
use Think\Template\TagLib;
defined(
'THINK_PATH') or exit();
/**
* Test
测试标签
*/
class Test extends TagLib{
// 标签定义
protected $tags = array(
'mytest'=>array('attr'=>'color,border','close'=>1)
);

public function _mytest($tag,$content) {
$color =
'';
$border =
'';
if (isset($tag['color'])) {
$color =
'color:'.$tag['color'];
}
if (isset($tag['border'])) {
$border =
'border:'.$tag['border'].'px solid #ccc';
}
$css = $color.
';'.$border;
return '<div style="'.$css.'">'.$content.'</div>';
}
}
//导入 test 扩展标签
<taglib name="test" />
//使用扩展标签
<Test:mytest color="blue" border="5">测试标签</Test:mytest>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值