tp6自定义模版标签

在ThinkPHP6的应用中,如果想要自定义一套自己的标签。首先要在应用安装好模板引擎。

composer require topthink/think-view

安装完成后再文件目录中可以看到这个目录

这里有个签库类文件(Cx.php)这个文件是系统已经定义的模板标签。我们可以根据这个文件格式来创建我们想自定义的模板标签,并用相同的格式写出我们需要的属性。

在我们的应用中创建tablib文件夹,在这个文件中创建一个xmcms.php文件,这个是文件是可以随意命名的。这个Xmcms的类要继承 TagLib类。

namespace app\index\taglib;

use think\facade\Db;
use think\template\TagLib;

class Xmcms extends TagLib
{
    // 标签定义: attr 属性列表 close 是否闭合(1-闭合、0-开放) alias 标签别名 level 嵌套层次
    
    // 定义标签列表
    protected $tags = [

        'channel'=>['attr'=>'type,order,pid','close'=>1],
        'swiper'=>['attr'=>'type,order' , 'close'=>1 ],
        'artical'=>['attr'=>'type,order' , 'close'=>1 ],
		
    ];


    //type 传入的值 top son 或者ID
    //如果type = son 需要传入一个PID获取当前子类

    public function tagChannel($tag,$content){
        $tag["id"] = !empty($tag["id"]) ? $tag["id"] : "item";
        $type = !empty($tag["type"]) ? $tag["type"] : "top";
    }
    
}

这里自定义了3个自定义标签channel , swiper , artical。

在页面调用

{xmcms:channel type="top"}<div>测试</div>{/xmcms:channel}

就可以使用了,在tagChannel函数中$tag对应的是自定义的属性通过 tag["type"] 可以获取到自定义值,$content对应的是自定义标签包裹的部分。

------------------ 华丽分割线 ------------------
欢迎大家阅读我的创业笔记,如果你觉得这篇写得不错的话,可以关注我的公众号: 成长创业笔记 第一时间查阅我们的文章!感谢大家的支持。
我是一名独立开发者,创业者。欢迎大家跟我交流软件开发、软件运营的一切事情。 包括网站建设、小程序开发、安卓app开发等。
微信号:zstxinghui
欢迎大家使用我们的软件:
  • ● 在线图片编辑器
  • ● 小程序: 家政小程序,陪诊小程序
  • ● 开源的网站内容管理系统: 小木CMS内容管理系统
更欢迎大家下载我们的APP:
  • ● 松鼠天气:简洁的天气预报,日历工具
公众号
程序员小张
我们的主营业务:承接网站建设小程序开发安卓APP开发软著申请等。欢迎咨询!
扫一扫,加我微信
随机文章
做好自媒体,要从不要脸开始
2024-06-12 15:23:09
自主开发一套CMS管理后台-小木CMS内容管理系统
2024-06-12 15:35:34
开发者周记11:开发一款陪诊小程序多少钱
2024-08-02 17:05:52
uniapp子组件调用父组件的方法
2024-08-07 16:29:57
成长创业周记15:开发自己软件产品继续兼职跑外卖
2024-12-08 00:18:40