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 相关文章推荐
从零开始 教你如何搭建Discuz!4.1论坛
Jul 07 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
PHP array_multisort() 函数的深入解析
Jun 20 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
CI框架简单邮件发送类实例
May 18 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
phpinfo的知识点总结
Oct 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
Dedecms常用函数解析
2008/02/01 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
Python制作爬虫采集小说
2015/10/25 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
对python中的argv和argc使用详解
2018/12/15 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
Python控制台实现交互式环境执行
2020/06/09 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
《天游峰的扫路人》教学反思
2014/04/25 职场文书
个人求职自荐信范文
2014/06/20 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
2015年植树节活动总结
2015/02/06 职场文书
大学军训通讯稿
2015/07/18 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
mysql查找连续出现n次以上的数字
2022/05/11 MySQL
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers