ThinkPHP 包含了一個基于XML和TagLib技術(shù)的模板標(biāo)簽,?;旧?,新的標(biāo)簽技術(shù)包含了普通模板有的功能,并且有了一些方面的增強和補充,,更重要的一點是新的標(biāo)簽庫模板技術(shù)更加具有擴展性,。 新的TagLib標(biāo)簽庫具有命名空間功能,,ThinkPHP框架內(nèi)置了兩個小型的標(biāo)簽庫實現(xiàn):CX和 Html,。 要在模板頁面中使用TagLib標(biāo)簽庫功能,,需要在開始時候使用taglib 標(biāo)簽導(dǎo)入需要使用的標(biāo)簽,,防止以后標(biāo)簽庫大量擴展后增加解析工作量,用法如下:
- <tagLib name='cx,html' />
引入標(biāo)簽庫后,,就可以使用標(biāo)簽庫定義的標(biāo)簽來定義模板了,例如: //可以使用下面的模板標(biāo)簽定義,。
- <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' />
標(biāo)簽庫使用的時候忽略大小寫,,因此下面的方式一樣有效:
- <CX:VO NAME='user' property='name' />
實際上,ThinkPHP框架模板引擎會默認加載CX標(biāo)簽庫,,所以下面的方式效果相同:
并且,,默認加載的CX庫可以不使用CX命名空間前綴,也就是說
- <vo name='user' property='name' />
//等效于 <cx:vo name='user' property='name' />
CX標(biāo)簽庫 CX標(biāo)簽庫主要用于輸出ThinkPHP框架的變量,、包含文件和實現(xiàn)一定控制判斷,。主要有:
- include 包含文件支持的標(biāo)簽屬性有 file
- comment 模板注釋 無標(biāo)簽屬性
- iterate 迭代因子輸出,循環(huán)內(nèi)可以結(jié)合write標(biāo)簽
- 支持的標(biāo)簽屬性有 id | name | offset | length | empty
write 復(fù)雜變量輸出,,包括數(shù)組、對象 ,,有函數(shù)支持- 支持的標(biāo)簽屬性有 name | property | key | format | function
volist 數(shù)據(jù)對象列表輸出,,循環(huán)內(nèi)可以結(jié)合vo標(biāo)簽- 支持的標(biāo)簽屬性有 id | name | offset | length | empty
vo 數(shù)據(jù)對象輸出- 支持的標(biāo)簽屬性有 name | property | format | function
- var 變量輸出用于普通變量
- 支持的標(biāo)簽屬性有 name | format | function
equal 判斷是否相同- notequal 判斷是否不同
- 支持的標(biāo)簽屬性有 name | property | key | value | function
present 判斷是否定義- notpresent 判斷是否沒有定義
- 支持的標(biāo)簽屬性有 name | property | key
Html標(biāo)簽庫 Html標(biāo)簽庫主要用于實現(xiàn)一些Html標(biāo)記的動態(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標(biāo)簽庫,,需要添加html命名前綴,,如
- <html:link href='/path/to/common.js' />
//這是一個復(fù)雜的DataGrid組件的標(biāo)簽定義 <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:禁用|恢復(fù)' />
模板標(biāo)簽的混合使用 現(xiàn)在我們已經(jīng)知道了ThinkPHP模板引擎的兩種標(biāo)簽定義方式,其實,,搭配使用兩種定義方式能夠帶來更大的效率,。 舉個VOLIST標(biāo)簽的例子,我們可以用下面的方式輸出一個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>
的方式似乎更加簡單,。 對于不太復(fù)雜的變量輸出,建議多采用{$var} 方式,,因為單純從易用性方面而言,,這種方式最簡潔,而且功能也比較完善,。
系統(tǒng)默認加載的標(biāo)簽庫只是一個很小型的實現(xiàn),,你完全可以自定義標(biāo)簽庫,。至于如何自定義標(biāo)簽庫放到高級篇里面敘述,相信能夠使用好系統(tǒng)標(biāo)簽庫已經(jīng)足以應(yīng)付大部分模板功能,。
|