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 FPDF类库应用实现代码
Mar 20 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
PHP常用文件操作函数和简单实例分析
Jun 03 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
解决中英文字符串长度问题函数
2007/01/16 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
XP折叠菜单&amp;仿QQ2006菜单
2006/12/16 Javascript
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
连接Python程序与MySQL的教程
2015/04/29 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
python简单验证码识别的实现方法
2019/05/10 Python
Python调用C语言的实现
2019/07/26 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
学校团代会开幕词
2016/03/04 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL