日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ThinkPHP XML模版標簽和標簽庫

 竹林書屋@ 2011-11-19
ThinkPHP 包含了一個基于XML和TagLib技術(shù)的模板標簽。基本上,新的標簽技術(shù)包含了普通模板有的功能,并且有了一些方面的增強和補充,更重要的一點是新的標簽庫模板技術(shù)更加具有擴展性。
新的TagLib標簽庫具有命名空間功能,ThinkPHP框架內(nèi)置了兩個小型的標簽庫實現(xiàn):CX和 Html。
要在模板頁面中使用TagLib標簽庫功能,需要在開始時候使用taglib 標簽導入需要使用的標簽,防止以后標簽庫大量擴展后增加解析工作量,用法如下:

  • <tagLib name='cx,html' />


引入標簽庫后,就可以使用標簽庫定義的標簽來定義模板了,例如:
//可以使用下面的模板標簽定義。

  • <cx:vo name='user' property='name' />
  • <cx:volist id='user' name='userList' >
  • <cx:vo name='user' property='name' />
  • </cx:volist>
  • <html:select options='name' selected='value' />



標簽庫使用的時候忽略大小寫,因此下面的方式一樣有效:

  • <CX:VO NAME='user' property='name' />


實際上,ThinkPHP框架模板引擎會默認加載CX標簽庫,所以下面的方式效果相同:

  • <tagLib name='html' />



并且,默認加載的CX庫可以不使用CX命名空間前綴,也就是說

  • <vo name='user' property='name' />

  • //等效于 <cx:vo name='user' property='name' />



CX標簽庫
CX標簽庫主要用于輸出ThinkPHP框架的變量、包含文件和實現(xiàn)一定控制判斷。主要有:

  • include 包含文件支持的標簽屬性有 file
  • comment 模板注釋 無標簽屬性
  • iterate 迭代因子輸出,循環(huán)內(nèi)可以結(jié)合write標簽
  • 支持的標簽屬性有 id | name | offset | length | empty

  • write 復雜變量輸出,包括數(shù)組、對象 ,有函數(shù)支持
  • 支持的標簽屬性有 name | property | key | format | function

  • volist 數(shù)據(jù)對象列表輸出,循環(huán)內(nèi)可以結(jié)合vo標簽
  • 支持的標簽屬性有 id | name | offset | length | empty

  • vo 數(shù)據(jù)對象輸出
  • 支持的標簽屬性有 name | property | format | function
  • var 變量輸出用于普通變量
  • 支持的標簽屬性有 name | format | function

  • equal 判斷是否相同
  • notequal 判斷是否不同
  • 支持的標簽屬性有 name | property | key | value | function

  • present 判斷是否定義
  • notpresent 判斷是否沒有定義
  • 支持的標簽屬性有 name | property | key




Html標簽庫
Html標簽庫主要用于實現(xiàn)一些Html標記的動態(tài)生成和變量封裝,主要有:

  • select 動態(tài)生成select列表
  • checkbox 動態(tài)生成checkbox
  • radio 動態(tài)生成radio
  • link 動態(tài)加載js或者css文件
  • imageLink 帶有鏈接的圖片
  • imageBtn 圖片按鈕
  • mulitSelect 多選組件

  • list DataGrid組件


要使用Html標簽庫,需要添加html命名前綴,如
  • <html:link href='/path/to/common.js' />

  • //這是一個復雜的DataGrid組件的標簽定義

  • <html:list id='checkList' style='list' name='action' checkbox='true' action='true'datasource='list' show='id:編號|8%,name:名稱,title:顯示名,status|getStatus:狀態(tài)|8%'actionlist='edit:編輯,del:刪除,forbid|resume:禁用|恢復' />



模板標簽的混合使用
現(xiàn)在我們已經(jīng)知道了ThinkPHP模板引擎的兩種標簽定義方式,其實,搭配使用兩種定義方式能夠帶來更大的效率。
舉個VOLIST標簽的例子,我們可以用下面的方式輸出一個VoList對象 userList:

  • <volist id='user' name='userList' >
  • <vo name='user' property='name' />
  • <vo name='user' property='age' />
  • <vo name='user' property='email' />
  • </volist>

但是,用

  • <volist id='user' name='userList' >
  • {$user.name }
  • {$user.age }
  • {$user.email }
  • </volist>



的方式似乎更加簡單。
對于不太復雜的變量輸出,建議多采用{$var} 方式,因為單純從易用性方面而言,這種方式最簡潔,而且功能也比較完善。

系統(tǒng)默認加載的標簽庫只是一個很小型的實現(xiàn),你完全可以自定義標簽庫。至于如何自定義標簽庫放到高級篇里面敘述,相信能夠使用好系統(tǒng)標簽庫已經(jīng)足以應付大部分模板功能。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多