色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

ThinkPHP模板自定義標簽使用方法

使用模板標簽可以讓網站前臺開發更加快速和簡單,使用過dedecms、phpcms等內容管理系統的人應該都知道,cms的前臺都是使用模板標簽來調用數據。以調用文章列表為例:

dedecms可以寫成:

<ul>{dede:arclist row='10' orderby='id desc' titlelen=''}     <li>[field:title]</li>{/dede:arclist}</ul>

phpcms可以寫成:

<ul>{pc:content action="hits" catid="6" num="10" order="views DESC"}   {loop $data $r}    <li>{$r[title]}</li>   {/loop}{/pc}</ul>

Thinkphp的自定義標簽同樣能夠實現這樣強大的功能。Thinkphp自定義標簽通過TAG擴展庫來實現。而Thinkphp本身就自帶了一個tag擴展庫只要我們繼承TagLib就能隨心所遇的定義屬于自己的標簽。

命名規范:

TagLib+標簽庫名稱.class.php

下面以實現調用導航為例加以說明

文件TagLibNav.class.php如下:

<?phpclass TagLibNav extends TagLib {  //attr 屬性列表   //close 是否閉合(0 或者1 默認1)  //alias 標簽別名  //level 嵌套層次  // 標簽定義如下:  protected $tags = array(    'nav' => array('attr' => 'limit,order', 'level' => 3,'close'=>1),  );  //定義查詢數據庫標簽  //attr是屬性列表,$content是存儲標簽之間的內容的  public function _nav($attr, $content) {    $tag=$this->parseXmlAttr($attr,$content);    $cate=M('Channel');    $tb=$cate->order($tag['order'])->limit($tag['limit'])->select();    $str='';    for($i=0;$i<count($tb);$i++)    {     $c=str_replace(array("[filed:id]","[filed:name]"),array($tb[$i]['id'],$tb[$i]['name']),$content);     $str.=$c;    }    return $str;  }}?>

html頁面調用方式:

<tagLib name="nav" />     //必須在頭部進行引用否則會出錯<html><head> <title>tablist</title></head><body>  <div class="nav">   <ul>    <li>首頁</li>    <nav:nav limit='4' order='id asc'>     <li><a href="[filed:id]">[filed:name]</a></li>    </nav:nav>   </ul> </div> </body></html>

配置文件:

'APP_AUTOLOAD_PATH'=>'@.TagLib',  //TagLib的位置  @.表示當前文件夾下'TAGLIB_BUILD_IN'=>'Cx,Nav',       //Cx是thinkphp基礎類庫的名稱必須引用否則volist等標簽就無法使用,Nav是自己定義的標簽名稱

控制器:

<?phpclass IndexAction extends Action{  public function index() {    $this->display();  }}?>

至此實現了自定義標簽,在控制器中也不用寫很多的代碼了。

php技術ThinkPHP模板自定義標簽使用方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 阿鲁科尔沁旗| 桐乡市| 德阳市| 乌兰察布市| 喜德县| 东平县| 伊通| 白山市| 新泰市| 隆安县| 长沙县| 兴宁市| 贡嘎县| 鄱阳县| 阳山县| 海口市| 滦南县| 达拉特旗| 松江区| 班戈县| 蓬莱市| 琼中| 屏山县| 西平县| 台前县| 中方县| 南通市| 青龙| 新野县| 汉寿县| 元江| 吕梁市| 杭锦旗| 南通市| 基隆市| 保德县| 镇雄县| 恩平市| 盐源县| 兖州市| 子洲县|