国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > ThinkPHP > 正文

thinkphp 自定義標簽

2024-09-09 15:19:34
字體:
來源:轉載
供稿:網友

有了模板標簽讓網站前臺開發更加快速和簡單,更能節省時間原本由程序員來完成的工作,現在只要懂得html代碼就能自己建設出屬于自己的網站,接觸過dedecms、phpcms等內容管理系統的人都知道,cms的前臺都是使用模板標簽來調用數據,例如調用文章列表

dedecms:

  1. <ul> 
  2. {dede:arclist row='10' orderby='id desc' titlelen=''
  3.           <li>[field:title]</li> 
  4. {/dede:arclist} 
  5. </ul> 
  6. phpcms: 
  7. <ul> 
  8. {pc:content action="hits" catid="6" num="10" order="views DESC"
  9.      {loop $data $r
  10.        <li>{$r[title]}</li> 
  11.      {/loop} 
  12. {/pc} 
  13. </ul> 

這就是它們強大之處,接下來介紹一下THINKPHP強大的TAG擴展庫,thinkphp自帶以個tag擴展庫只要我們繼承TagLib就能隨心所遇的定義屬于自己的標簽.

命名規范:

TagLib+標簽庫名稱.class.php

例子下面的例子是實現調用導航,文件名稱TagLibNav.class.php

  1. <?php 
  2. class TagLibNav extends TagLib { 
  3.     //attr 屬性列表 close 是否閉合(0 或者1 默認1) alias 標簽別名 level 嵌套層次 
  4.     // 標簽定義 
  5.     protected $tags = array
  6.         
  7.         'nav' => array('attr' => 'limit,order''level' => 3,'close'=>1), 
  8.     ); 
  9.  
  10.     //定義查詢數據庫標簽 
  11.     //attr是屬性列表,$content是存儲標簽之間的內容的 
  12.     public function _nav($attr$content) { 
  13.         $tag=$this->parseXmlAttr($attr,$content); 
  14.         $cate=M('Channel'); 
  15.         $tb=$cate->order($tag['order'])->limit($tag['limit'])->select(); 
  16.         $str=''
  17.         for($i=0;$i<count($tb);$i++) 
  18.         { 
  19.           $c=str_replace(array("[filed:id]","[filed:name]"),array($tb[$i]['id'],$tb[$i]['name']),$content); 
  20.           $str.=$c
  21.         } 
  22.        return $str
  23.     } 
  24. ?> 

html 調用方式:

  1. <tagLib name="nav" />  //必須在頭部進行引用否則會出錯 
  2. <html> 
  3. <head> 
  4.  <title>tablist</title> 
  5. </head> 
  6. <body> 
  7.     <div class="nav"> 
  8.      <ul> 
  9.        <li>首頁</li> 
  10.        <nav:nav limit='4' order='id asc'> 
  11.          <li><a href="[filed:id]">[filed:name]</a></li> 
  12.        </nav:nav> 
  13.      </ul> 
  14.   </div> 
  15.  </body> 
  16. </html> 

配置文件

'APP_AUTOLOAD_PATH'=>'@.TagLib', //TagLib的位置   @.表示當前文件夾下

'TAGLIB_BUILD_IN'=>'Cx,Nav',  //Cx是thinkphp基礎類庫的名稱必須引用否則volist等標簽就無法使用,Nav是自己定義的標簽名稱

控制器:

  1. <?php 
  2. class IndexAction extends Action{ 
  3.     public function index() { 
  4.         $this->display(); 
  5.     } 
  6. ?> 

這樣在控制器中就不用寫很多的代碼咯,是不是很輕松?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 丹寨县| 施甸县| 郎溪县| 娄底市| 庆云县| 闽侯县| 五莲县| 宣化县| 沛县| 红桥区| 安平县| 岚皋县| 越西县| 綦江县| 洛宁县| 喀喇| 金塔县| 农安县| 武夷山市| 伊吾县| 香河县| 孝昌县| 巴南区| 广南县| 平陆县| 土默特左旗| 时尚| 拉萨市| 沙坪坝区| 尤溪县| 静乐县| 施秉县| 伊川县| 偏关县| 化州市| 姚安县| 班玛县| 凤山市| 叶城县| 延庆县| 元氏县|