Thinkphp5.1 自定義標(biāo)簽(Taglib)

在TP框架中,我們一般是在控制器定義變量淫奔,并將變量渲染到視圖里輸出。然而堤结,本次要介紹的是用自定義標(biāo)簽輸出變量唆迁。在進(jìn)行cms開(kāi)發(fā)中,前臺(tái)頁(yè)面的數(shù)據(jù)輸出一般是靠自定義的標(biāo)簽竞穷,進(jìn)行輸出唐责。
TP框架的視圖工作流程:把控制器中定義的變量或者自定義標(biāo)簽的變量,渲染到頁(yè)面模板瘾带;接著鼠哥,TP框架會(huì)編譯視圖頁(yè)面,把生成php文件放在項(xiàng)目下runtime\temp目錄里(TP框架的運(yùn)行文件)看政;最后當(dāng)用戶(hù)訪問(wèn)時(shí)朴恳,調(diào)用運(yùn)行文件里的php文件,顯示到用戶(hù)界面里允蚣。

自定義標(biāo)簽

1 于颖、自定義的標(biāo)簽,一般是放在公共模塊里嚷兔,即在common模塊下新建目錄taglib(用存放自定義標(biāo)簽庫(kù))森渐;
2做入、在taglib目錄下創(chuàng)建Demo.php繼承app\common\taglib的TagLib類(lèi),代碼如下:

<?php
namespace app\common\taglib;
use think\template\TagLib;
class Demo extends TagLib{
    /**
     * 定義標(biāo)簽列表
     */
    protected $tags   =  [
        /**標(biāo)簽定義
        * attr:屬性列表
        * close:是否閉合(0表示閉合同衣,1表示不閉合竟块。默認(rèn)值為1)
        * alias:標(biāo)簽別名
        * level:嵌套層次
        */
        'sitename'     => ['attr' => 'name', 'close' => 0],//閉合標(biāo)簽
        'keyword'      => ['attr' => 'key', 'close' => 1], //不閉合標(biāo)簽
        
    ];

    /**
     * 閉合標(biāo)簽
     * $tag:存放標(biāo)簽屬性的數(shù)組
     */
    public function sitename($tag)
    {
        return '網(wǎng)站名稱(chēng):'.$tag['name'];
    }
    
    /**
     * 不閉合標(biāo)簽
     * $tag:存放標(biāo)簽屬性的數(shù)組
     * $content:標(biāo)簽內(nèi)的數(shù)據(jù)
     */
    public function keyword($tag,$content)
    {
        return '網(wǎng)站關(guān)鍵詞:'.$tag['key'].$content;
    }
}

如何使用自定義標(biāo)簽

首先,在使用標(biāo)簽前需要配置標(biāo)簽耐齐,不然無(wú)法使用浪秘,在TP 5.1項(xiàng)目中配置自定義的標(biāo)簽。

  • 方法一蚪缀、打開(kāi)項(xiàng)目下config\template.php配置文件秫逝,在配置文件中添加如下配置:
'taglib_build_in' => 'cx,app\common\taglib\Demo',

注意:cx是框架默認(rèn)的標(biāo)簽庫(kù),配置的標(biāo)簽庫(kù)必須添加命名空間询枚。這種方法配置的標(biāo)簽庫(kù)违帆,在使用的時(shí)候不用添加標(biāo)簽的命名空間(即標(biāo)簽庫(kù)名)。

例如金蜀,news標(biāo)簽

{news num='10'}{$titile}{/news}
  • 方法二刷后、打開(kāi)項(xiàng)目下config\template.php配置文件,在配置文件中添加如下配置:
'taglib_pre_load' => 'app\common\taglib\Demo',

注意:這種方法配置的標(biāo)簽庫(kù)渊抄,在使用的時(shí)候需要添加標(biāo)簽的命名空間(即標(biāo)簽庫(kù)名)尝胆。

其次,可以在模板文件里使用上面定義的標(biāo)簽护桦,如下:
方法一的使用:

{sitename name='新浪微博'/}
{keyword key='新浪,微博'}
    我在關(guān)鍵詞后面含衔。
{/keyword}

方法二的使用:

{Demo:sitename name='新浪微博'/}
{Demo:keyword key='新浪,微博'}
    我在關(guān)鍵詞后面。
{/Demo:keyword}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末二庵,一起剝皮案震驚了整個(gè)濱河市贪染,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌催享,老刑警劉巖杭隙,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異因妙,居然都是意外死亡痰憎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)攀涵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)铣耘,“玉大人,你說(shuō)我怎么就攤上這事以故∥芯校” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵据德,是天一觀的道長(zhǎng)鳄乏。 經(jīng)常有香客問(wèn)我跷车,道長(zhǎng),這世上最難降的妖魔是什么橱野? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任朽缴,我火速辦了婚禮,結(jié)果婚禮上水援,老公的妹妹穿的比我還像新娘密强。我一直安慰自己,他們只是感情好蜗元,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布或渤。 她就那樣靜靜地躺著,像睡著了一般奕扣。 火紅的嫁衣襯著肌膚如雪薪鹦。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天惯豆,我揣著相機(jī)與錄音池磁,去河邊找鬼。 笑死楷兽,一個(gè)胖子當(dāng)著我的面吹牛地熄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芯杀,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼端考,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了揭厚?” 一聲冷哼從身側(cè)響起却特,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棋弥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诚欠,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡顽染,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了轰绵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粉寞。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖左腔,靈堂內(nèi)的尸體忽然破棺而出唧垦,到底是詐尸還是另有隱情,我是刑警寧澤液样,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布振亮,位于F島的核電站巧还,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏坊秸。R本人自食惡果不足惜麸祷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望褒搔。 院中可真熱鬧阶牍,春花似錦、人聲如沸星瘾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)琳状。三九已至磕瓷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間算撮,已是汗流浹背生宛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肮柜,地道東北人陷舅。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像审洞,于是被迫代替她去往敵國(guó)和親莱睁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容