教你如何使用TP5 taglib自定义标签

学着写了一下,终于搞定了,顺便分享一下!

taglib是tp框架自定义标签功能,如果你用过cms,肯定见过类似:

{dede:arclist typeid='' row='' col='' titlelen='' infolen=''  orderby='' keyword=''}ssss...{/dede:arclist}

或者:

{pc:content action="lists" cache="3600" num="20" page="$page"}{/pc}

这样的操作,这对于开发工作是挺方便的,所以觉得有必要看下tp的taglib,教程如下:

1 、在common(我是在common,你自己看,反正是用命名空间载入)里新建目录taglib
2、在taglib里新建Cc.php 继承think的Tglib,代码如下:

 ['attr'=> 'field,id,limit,cid,order,returnname', 'close'=>1]    ];    /**     * 文章标签     */    public function tagArticles($tag, $content)    {        $id = $tag['id']?$tag['id']:'vo';        $order         = empty($tag['order']) ? "'id DESC'" : '"'.$tag['order'].'"';        $returnname = 'article_data';        $field = "''";        if (!empty($tag['field'])) {            if (strpos($tag['field'], '$') === 0) {                $field = $tag['field'];                $this->autoBuildVar($field);            } else {                $field = "'{$tag['field']}'";            }        }        $cid = "''";        if (!empty($tag['cid'])) {            if (strpos($tag['cid'], '$') === 0) {                $cid = $tag['cid'];                $this->autoBuildVar($cid);            } else {                $cid = "'{$tag['cid']}'";            }        }        $limit = "''";        if (!empty($tag['limit'])) {            if (strpos($tag['limit'], '$') === 0) {                $limit = $tag['limit'];                $this->autoBuildVar($limit);            } else {                $limit = "'{$tag['limit']}'";            }        }else{            $limit = '0,5';        }        $parse = <<<parse {$field},    'cid'=>{$cid},    'limit'=>{$limit},    'order'=>{$order}]);?>{volist name="{$returnname}" id="{$id}"}{$content}{/volist}parse;        return $parse;    }}

这里演示的是一个文章标签 articles里面调用了Article模型的静态方法taglib_articles , 顺便也贴下代码吧,就是根据条件查询的

public static function taglib_articles($param)    {        $field = $param['field'];        $cid = $param['cid'];        $limit = $param['limit'];        $order = $param['order'];        $result = Article::where('cid', 'in',$cid)->field($field)->limit($limit)->order($order)->select();        return $result;    }

之后,在tp的配置文件里,加一条配置载入自定义标签文件的 

// +----------------------------------------------------------------------    // | 模板设置    // +----------------------------------------------------------------------    'template'               => [        // 模板引擎类型 支持 php think 支持扩展        'type'         => 'Think',        // 模板路径        'view_path'    => '',        // 模板后缀        'view_suffix'  => 'html',        // 模板文件名分隔符        'view_depr'    => DS,        // 模板引擎普通标签开始标记        'tpl_begin'    => '{',        // 模板引擎普通标签结束标记        'tpl_end'      => '}',        // 标签库标签开始标记        'taglib_begin' => '{',        // 标签库标签结束标记        'taglib_end'   => '}',        'taglib_pre_load'     =>    'app\common\taglib\Cc',     ],

就是:’taglib_pre_load’     =>    ‘app\common\taglib\Cc’, 这条 。

之后就可以在模版里使用了

{cc:articles cid="1" field='id,title' limit="2" order="id asc" id="vo"}
  • {$vo.title}
  • {/cc:articles}

    很方便吧,整了两个小时,才写好,特此记录一下,希望也能帮助到需要的朋友们!

    推荐学习:《thinkphp教程》

    以上就是教你如何使用TP5 taglib自定义标签的详细内容,更多请关注创想鸟其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
    发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/74834.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2025年11月14日 05:51:31
    下一篇 2025年11月14日 06:33:18

    相关推荐

    • 一文讲解thinkphp5如何进行异步验证邮箱

      thinkphp框架教程栏目将给大家介绍thinkphp5使用bootstrapvalidator进行异步验证邮箱的方法,希望对需要的朋友有所帮助! TP5使用bootstrapvalidator进行异步验证邮箱 Remusic Remusic – 免费的AI音乐、歌曲生成工具 514 …

      2025年11月27日 PHP框架
      000
    • thinkphp5如何开启错误调试

      thinkphp5如何开启错误调试?方法如下: 方法一、在application下面的配置文件config.php中把调试模式改为true。 相关推荐:《ThinkPHP教程》 立即学习“PHP免费学习笔记(深入)”; 方法二、在应用的ROOT_PATH目录下面定义.env文件,并且定义APP_DE…

      2025年11月25日 PHP框架
      000
    • 详解ThinkPHP5实现极验滑动验证码geetest功能

      下面由thinkphp教程栏目给大家详解thinkphp5实现极验滑动验证码geetest功能,希望对需要的朋友有所帮助! ThinkPHP5实现极验滑动验证码geetest功能 现在很多网站,比如淘宝,京东等都改用使用极验拖动验证码实现登录,这种方式比传统的验证码方式有更好的体验,减少用户输入的错…

      2025年11月25日 PHP框架
      000
    • 解析ThinkPHP5如何引入Go AOP和PHP AOP编程

      ThinkPHP5 引入 Go AOP,PHP AOP编程 项目背景 目前开发的web软件里有这一个功能,php访问api操作数据仓库,刚开始数据仓库小,没发现问题,随着数据越来越多,调用api时常超时(60s)。于是决定采用异步请求,改为60s能返回数据则返回,不能则返回一个异步id,然后轮询是否…

      2025年11月25日 PHP框架
      000
    • thinkphp5是什么

      thinkphp v5.0是一个为api开发而设计的高性能框架——是一个颠覆和重构版本,采用全新的架构思想,引入了很多的php新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对api开发做了大量的优化。  ThinkPHP5是一个全新的里程碑版本,包括路由、日志、异常…

      2025年11月23日
      000
    • thinkphp3和thinkphp5的区别

      thinkphp3和thinkphp5的区别?下面给大家介绍一下两者的不同之处: 一、thinkphp3.2和thinkphp5之间的使用差异 1、过去的单字母函数已完全被替换掉,如下: S=>cache,C=>config,M/D=>model,U=>url,I=>i…

      2025年11月23日
      000
    • thinkphp5多语言怎么切换

      thinkphp5多语言进行切换的步骤: 第一步,在配置文件中开启多语言配置。 第二步,创建多语言目录。 立即学习“PHP免费学习笔记(深入)”; 相关推荐:《ThinkPHP教程》 第三步,编写语言包。 视图代码: 控制器代码: 效果如下: 以上就是thinkphp5多语言怎么切换的详细内容,更多…

      2025年11月23日 PHP框架
      000
    • thinkPHP5如何使用rabbitmq

      thinkPHP5如何使用rabbitmq? 安装好 tp5 的 rabbitmq 扩展后,在项目根目录文件添加文件 rabbitmq.php 引导启动 rabbitmq。 <?phpdefine('APP_PATH', __DIR__ . '/applicati…

      2025年11月23日
      000
    • thinkphp5如何读取配置文件的数据

      首先打开编辑器sublime。 然后找到应用目录下的config文件。 立即学习“PHP免费学习笔记(深入)”; 相关推荐:《ThinkPHP教程》 随便选取一个配置参数,比如我们想要读取配置参数app_namespace。 来到控制器里面。 在控制器里面新建一个方法test2。 在方法里面我们利用…

      2025年11月23日 PHP框架
      000
    • thinkphp5如何套用主题

      thinkphp5套用主题的方法: 配置项: ‘DEFAULT_THEME’=>’default’,//默认主题 ‘THEME_LIST’=>’default,theme’,//主题列表 ‘TMPL_DETECT_THEME’=>true//开启自动侦测模版主题 相关推荐:《Thi…

      2025年11月23日
      000
    • thinkphp5怎么上传图片

      前后台代码对应,前台的代码name对应后台的值,获取到需要上传的信息。 上传流程很简单,接收上传的信息,把数据用move方法传到指定位置,然后成功后回调就可以了,注意步骤: 立即学习“PHP免费学习笔记(深入)”; 相关推荐:《ThinkPHP教程》 自己封装的上传,接收传过来的name值,然后获取…

      2025年11月23日 PHP框架
      000
    • thinkphp5怎么做分页

      其实分页自身的内容也不是很多。不过牵扯到样式的问题感觉挺烦。于是找到了分页类看了一下。把大体的结构说一下。如果有需要修改页面样式的可以自行修改样式。最好提前备份,防止意外。 首先是分页的调用,tp5的调用相对非常容易: $mod = new appindexmodelBlogmsg();$mo = …

      2025年11月23日
      000
    • thinkphp5的优点是什么

      php框架有助于促进快速应用开发,不仅节省时间,有助于建立更稳定的应用,而且,减少了重复代码的开发。 通常认为PHP框架的作用相当于模型,控制器,视图。(mvc) 相关推荐:《ThinkPHP教程》 thinkphp5.0的优点 立即学习“PHP免费学习笔记(深入)”; ①中国人开发,更加符合我们的…

      2025年11月23日
      000
    • ThinkPHP5-使用 think-API 部署 JWT

      因为下一个项目要用 tp5 开发一个小程序,所以就使用到了,tp 框架,因为小程序开发需要后台来编写 api 接口,所以就上网查了一下有没有相关的依赖,在此推荐一下 think-api 扩展工具,因为主要想使用其中的 jwt 功能来判断小程序用户的登录状态,下面就以本人的项目为例,简单和大家聊一下,…

      2025年11月22日
      300
    • thinkphp5支持swoole携程吗

      首先,了解一下thinkphp的运行机制。 TP5运行机制: 任何请求都会经过tp5的入口文件,载入框架的配置文件,启动进程,然后处理请求。 在这个index.php的入口文件中,可以看到,它先定义的APP_PATH这个常量,然后引入的框架的启动文件start.php,那我们就去看下start.ph…

      2025年11月22日 PHP框架
      000
    • thinkphp5支持oracle吗

      首先,我们知道php是完全支持oracle的,那么作为php框架的thinkphp5也是完全可以支持oracle的。 thinkphp5如何连接oracle? 数据库:ray 表的结构:ray_user CREATE TABLE IF NOT EXISTS ray_user (user_id int…

      2025年11月22日
      000
    • thinkphp5有什么用

      thinkphp5有什么用? ThinkPHP5作用 ThinkPHP V5.0是一个为API开发而设计的高性能框架——是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化。 Think…

      2025年11月22日
      000
    • thinkphp5如何调用云片接口实现发送短信验证码找回密码功能

      下面由thinkphp框架教程栏目给大家介绍thinkphp5如何调用云片接口实现发送短信验证码找回密码功能,希望对需要的朋友有所帮助! 思路: 1、用户输入手机号,请求获取短信验证码。2、thinkphp生成短信验证码,存储,同时和其他参数一起发送请求给云片。3、云片发送短信验证码到指定手机号。4…

      2025年11月17日 PHP框架
      000
    • thinkphp5清除缓存、模版缓存和日志缓存

      下面由thinkphp框架教程栏目给大家介绍thinkphp5清除缓存、模版缓存和日志缓存的方法,希望对需要的朋友有所帮助! 直接写入cache模块中,生成控制器 namespace appcachecontroller;use thinkController;use thinkCache; 具体方…

      2025年11月17日
      100
    • thinkphp5怎么隐藏index.php入口文件?

      隐藏方法:1、打开apache的http.conf配置文件,开启mod_rewrite.so模块;2、AllowOverride None项中将None改为All;3、修改“.htaccess”的配置内容,将原代码替换为官方手册提供的代码。 thinkphp现在的php主流框架之一,本篇文章介绍的是…

      2025年11月16日
      000

    发表回复

    登录后才能评论
    关注微信