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 相关文章推荐
isset和empty的区别
Jan 15 PHP
15种PHP Encoder的比较
Apr 17 PHP
简单的php 验证图片生成函数
May 21 PHP
php下网站防IP攻击代码,超级实用
Oct 24 PHP
解析php取整的几种方式
Jun 25 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
php实现的click captcha点击验证码类实例
Sep 23 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
Yii2.0多文件上传实例说明
Jul 24 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
强烈推荐:php.ini中文版(1)
2006/10/09 PHP
配置支持SSI
2006/11/25 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
html读出文本文件内容
2007/01/22 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
Python内建数据结构详解
2016/02/03 Python
Python中交换两个元素的实现方法
2018/06/29 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
事业单位考核材料
2014/05/21 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
python如何进行基准测试
2021/04/26 Python
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis