欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

自定义标签入门

程序员文章站 2022-06-17 12:23:04
...
自定义标签小实例
学习自定义标签时,请查看手册(扩展->标签库)中的相关介绍
http://document.thinkphp.cn/manual_3_2.html#taglib_driver

主要分三步:
一、自定义标签(新建Test.class.php文件)namespace Think\Template\TagLib; // 当前文件所在的目录
use Think\Template\TagLib; // Template目录下的TagLib.class.php文件

class Test extends TagLib {
protected $tags = array(
// 定义标签
'edit' => array('attr'=>'type,name,id,value','close'=>0), // 调用这个标签,就是映射到真正的input标签(因为返回的就是input标签),这里不过是换了一个名称而已
'content' => array('attr'=>'name,id'), // 原理同上
);

// edit标签解析(每个标签的解析方法在定义的时候需要添加“_”前缀)
public function _edit($tag) {
$name = $tag['name'];
$id = $tag['id'];
$type = $tag['type'];
$value = $tag['value'];
$str = "";
return $str;
}
// content标签解析
public function _content($tag,$content) {
$name = $tag['name'];
$id = $tag['id'];
$str = '';
return $str;
}
}
二、赋值变量,输出模板 public function index(){
$this->assign('value', 'hello world !');
$this->display('tag');
}
三、在模板中输出










{$value}

自动调用:
要在config文件里加上如下配置: 'TAGLIB_LOAD'=>true,
'APP_AUTOLOAD_PATH'=>'@.TagLib',
'TAGLIB_BUILD_IN'=>'Cx,Test',
然后模板输出就要这样写了(不需要写test:前缀和了):


{$value}
效果:
自定义标签入门

简单理解,所谓自定义标签就是看返回的是什么,如果返回的是html标签,那就以html标签展现出来;如果返回的是纯数据,那就又文本的形式展现出来(以组装从sql取出来的数据为多) protected $tags = array(
'data' => array('attr'=>'type','close'=>0), // input标签
);

public function _data($tag) {
switch ($tag['type']) {
case 1:
return '
返回的是类型1
';
break;
case 2:
return '
返回的是类型1
';
break;
default:
return '
默认类型
';
break;
}
}
模板渲染:

效果:
自定义标签入门

谢谢关注~

AD:真正免费,域名+虚机+企业邮箱=0元