thinkPHP5 tablib标签库自定义方法详解


Posted in PHP onMay 10, 2017

本文实例讲述了thinkPHP5 tablib标签库自定义方法。分享给大家供大家参考,具体如下:

官方文档的标签库使用教程没有写得太细,自己摸索出来了一些。

先放一段写好的面包碎代码

namespace app\Common\taglib;
use \think\template\TagLib;
class UntilTag extends TagLib
{
  protected $tags = array(
    'breadcrumb' => array('attr' => 'name','close' =>0),
  );
  /**
   * 用法
   * {UntilTag:breadcrumb name='个人中心/修改密码' /}
   * @param $tag
   * @param $content
   * @return string
   * @autor: 潘国兴
   */
  public function tagBreadcrumb($tag, $content)
  {
    $tags = '';
    if(isset($tag['name']) && !empty($tag['name']))
    {
      $tags = explode('/',$tag['name']);
    }
    $parseStr = '<nav class="breadcrumb"><i class="Hui-iconfont">?</i> <a class="maincolor" href="{:url(" rel="external nofollow" index")}">首页</a>' ;
    if(!empty($tags))
    {
      foreach($tags as $vo)
      {
        $parseStr .= "<span class='c-666 en'>></span><span class='c-666'>{$vo}</span>";
      }
    }
    $parseStr .= '</nav>';
    return $parseStr;
  }
}

然后设置配置文件

'template'=>[
  'taglib_pre_load'  => 'app\Common\taglib\UntilTag',
],

这个是加载额外的标签库,使用的时候要注意用法,第一,从源代码看,这个一定要用命名空间方式加载,不然会自动加载到thinkphp\template\tablib这个命名空间下面的,第二是在模板上的时候,一定要类名称加tag名

{UntilTag:breadcrumb name='个人中心/修改密码' /}

下面这个配置文件设置用法是另外一种,

'taglib_build_in'  =>  'cx,article'

这种设置是直接简化了标签的使用,在模板的用法如下:

{breadcrumb name='个人中心/修改密码' /}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
Jan 06 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
万能的php分页类
Jul 06 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 #PHP
php7 安装yar 生成docker镜像
May 09 #PHP
php简单生成一组与多组随机字符串的方法
May 09 #PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 #PHP
Laravel中如何增加自定义全局函数详解
May 09 #PHP
laravel 5.3中自定义加密服务的方案详解
May 09 #PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 #PHP
You might like
php&amp;java(二)
2006/10/09 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
js事件委托和事件代理案例分享
2017/07/25 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
python动态网页批量爬取
2016/02/14 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
岗位竞聘演讲稿
2014/01/10 职场文书
亲戚结婚的请假条
2014/02/11 职场文书
经理管理专业毕业自荐书范文
2014/02/12 职场文书
英语导游欢迎词
2015/09/30 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
90条交通安全宣传标语
2019/10/12 职场文书