ThinkPHP5 tablib标签库自定义
本文实例讲述了thinkPHP5 tablib标签库自定义方法。分享给大家供大家参考,具体如下:
官方文档的标签库使用教程没有写得太细,自己摸索出来了一些。
1 、在common(我是在common,你自己看,反正是用命名空间载入)里新建目录taglib
2、在taglib里新建Tag.php 继承think的Tglib,代码如下:
<?php
namespace app\common\taglib;
use think\template\TagLib;
class Tag extends TagLib {
/**
* 定义标签列表
*/
protected $tags = [
// 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
'links' => ['attr' => '', 'close' => 1],//友情链接 item,key 可传可不传 也可另加参数
];
/**
* 获取友情链接列表
* @param $tag
* @param $content
* @return string
*/
public function tagLinks($tag, $content) {
$item = !empty($tag['item']) ? $tag['item'] : 'item';
$key = !empty($tag['key']) ? $tag['key'] : 'key';
$parse = <<<EOF
<?php
\$__LIST__ = app\cms\model\Link::getList(); //model你就随意发挥了
foreach(\$__LIST__ as \$$key =>\$$item):
?>
EOF;
$parse .= $content;
$parse .= '<?php endforeach; ?>';
return $parse;
}
}
3、不要忘记配置文件中设置 标签库预加载 'taglib_pre_load' => 'app\common\taglib\tag'
使用实例:
{tag:links }
<li><a href="#">{$item.title}</a></li>
{/tag:links}
另外还有简化写法:
配置文件中:'taglib_build_in' => 'cx,tag'
标签库定义为内置标签库(前提是多个标签库没有标签冲突的情况下)
使用方法:
{links }
<li><a href="#">{$item.title}</a></li>
{/links}
4、TP5.1中手册未完善,此部分看查看5.0 手册或者3.2手册
另外建议多研究下 内置标签库Cx标签库。
添加新评论