千家信息网

如何使用TP5 taglib自定义标签

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,本篇文章为大家展示了如何使用TP5 taglib自定义标签,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。taglib是tp框架自定义标签功能,如果你用过cms
千家信息网最后更新 2024年12月12日如何使用TP5 taglib自定义标签

本篇文章为大家展示了如何使用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 = << {$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}


    上述内容就是如何使用TP5 taglib自定义标签,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

    0