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 需要掌握的东西 不做浮躁的人
Dec 28 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
php生成略缩图代码
2012/07/16 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
微信小程序自定义轮播图
2018/11/04 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
实例讲解python函数式编程
2014/06/09 Python
用Python实现协同过滤的教程
2015/04/08 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
Python如何合并多个字典或映射
2020/07/24 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
初中生期末考试的自我评价
2013/12/17 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
python turtle绘图命令及案例
2021/11/23 Python
MySQL优化及索引解析
2022/03/17 MySQL