ThinkPHP模板自訂標籤使用方法_PHP教程

來源:互聯網
上載者:User
使用模板標籤可以讓網站前台開發更加快速和簡單,使用過dedecms、phpcms等內容管理系統的人應該都知道,cms的前台都是使用模板標籤來調用資料。以調用文章列表為例:

dedecms可以寫成:

 
    {dede:arclist row='10' orderby='id desc' titlelen=''}
  • [field:title]
  • {/dede:arclist}

phpcms可以寫成:

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

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

html頁面調用方式:

     //必須在頭部進行引用否則會出錯 tablist     
 
  • 首頁
  • [filed:name]

設定檔:

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

控制器:

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

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

http://www.bkjia.com/PHPjc/824769.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/824769.htmlTechArticle使用模板標籤可以讓網站前台開發更加快速和簡單,使用過dedecms、phpcms等內容管理系統的人應該都知道,cms的前台都是使用模板標籤來調用...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.