本篇文章為大家展示了如何使用TP5 taglib自定義標(biāo)簽,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到昭平網(wǎng)站設(shè)計(jì)與昭平網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋昭平地區(qū)。
taglib是tp框架自定義標(biāo)簽功能,如果你用過cms,肯定見過類似:
{dede:arclist typeid='' row='' col='' titlelen='' infolen='' orderby='' keyword=''}
ssss...
{/dede:arclist}或者:
{pc:content action="lists" cache="3600" num="20" page="$page"}
{/pc}這樣的操作,這對(duì)于開發(fā)工作是挺方便的,所以覺得有必要看下tp的taglib,教程如下:
1 、在common(我是在common,你自己看,反正是用命名空間載入)里新建目錄taglib
2、在taglib里新建Cc.php 繼承think的Tglib,代碼如下:
<?php
/**
* Created by PhpStorm.
* User: lichenchen
* Date: 2018/3/25
* Time: 下午8:34
*/
namespace app\common\taglib;
use think\template\TagLib;
use app\common\model\Article;
class Cc extends TagLib
{
protected $tags = [
'articles' => ['attr'=> 'field,id,limit,cid,order,returnname', 'close'=>1]
];
/**
* 文章標(biāo)簽
*/
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
<?php
\$$returnname = \app\common\model\Article::taglib_articles([
'field' => {$field},
'cid'=>{$cid},
'limit'=>{$limit},
'order'=>{$order}
]);
?>
{volist name="{$returnname}" id="{$id}"}
{$content}
{/volist}
parse;
return $parse;
}
}這里演示的是一個(gè)文章標(biāo)簽 articles里面調(diào)用了Article模型的靜態(tài)方法taglib_articles , 順便也貼下代碼吧,就是根據(jù)條件查詢的
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的配置文件里,加一條配置載入自定義標(biāo)簽文件的
// +----------------------------------------------------------------------
// | 模板設(shè)置
// +----------------------------------------------------------------------
'template' => [
// 模板引擎類型 支持 php think 支持?jǐn)U展
'type' => 'Think',
// 模板路徑
'view_path' => '',
// 模板后綴
'view_suffix' => 'html',
// 模板文件名分隔符
'view_depr' => DS,
// 模板引擎普通標(biāo)簽開始標(biāo)記
'tpl_begin' => '{',
// 模板引擎普通標(biāo)簽結(jié)束標(biāo)記
'tpl_end' => '}',
// 標(biāo)簽庫(kù)標(biāo)簽開始標(biāo)記
'taglib_begin' => '{',
// 標(biāo)簽庫(kù)標(biāo)簽結(jié)束標(biāo)記
'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"}<li><a href="#">{$vo.title}</a></li>{/cc:articles}上述內(nèi)容就是如何使用TP5 taglib自定義標(biāo)簽,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
名稱欄目:如何使用TP5taglib自定義標(biāo)簽
新聞來(lái)源:http://www.chinadenli.net/article44/gpihhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、定制網(wǎng)站、做網(wǎng)站、域名注冊(cè)、小程序開發(fā)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)