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对应的是自定义标签包裹的部分。

程序员小张
世界上只有一种真正的英雄主义,就是认清了生活的真相后还依然热爱生活。
随机文章
自主开发一套CMS管理后台-小木CMS内容管理系统
2024-06-12 15:35:34
开发者周记10:家政小程序正式版本及后台管理系统正式上线
2024-07-25 22:12:37
uniapp使用vue3实现tab切换效果
2024-07-27 14:36:05
小木CMS内容管理系统升级
2024-08-06 16:21:14
开发者周记13 一步一个脚印见证未来
2024-11-15 09:51:24