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 相关文章推荐
如何提高MYSQL数据库的查询统计速度 select 索引应用
Apr 11 PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
php class类的用法详细总结
Oct 17 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
常用PHP框架功能对照表
Oct 23 PHP
PHP中file_exists()判断中文文件名无效的解决方法
Nov 12 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
详解 PHP加密解密字符串函数附源码下载
Dec 18 PHP
PHP代码重构方法漫谈
Apr 17 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 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
是否存在第一台收音机的说法
2021/03/01 无线电
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
php4的session功能评述(一)
2006/10/09 PHP
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
PHP计数器的实现代码
2013/06/08 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
一个仿糯米弹框效果demo
2014/07/22 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
Python中规范定义命名空间的一些建议
2016/06/04 Python
python机器学习实战之K均值聚类
2017/12/20 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
深入了解Django View(视图系统)
2019/07/23 Python
Python是什么 Python的用处
2020/05/26 Python
python支持多继承吗
2020/06/19 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
python3排序的实例方法
2020/10/20 Python
新郎新娘婚礼答谢词
2014/01/11 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
2015年暑假生活总结
2015/07/13 职场文书
怎么用Python识别手势数字
2021/06/07 Python
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS