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批量缩放图片的代码[ini参数控制]
Feb 11 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 PHP
php时间函数用法分析
May 28 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 PHP
Laravel模糊查询区分大小写的实例
Sep 29 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
Python学习之time模块的基本使用
2021/01/17 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
业务员岗位职责范本
2013/12/15 职场文书
《值日生》教学反思
2014/02/17 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
教师师德师风整改措施
2014/10/24 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA