模闆定義後就(jiù)可(kě)以渲染模闆輸出,系統也(yě)♠¥≤↔支持直接渲染內(nèi)容輸出,模闆賦值必須在模闆☆®✘渲染之前操作(zuò)。
渲染模闆
渲染模闆輸出最常用(yòng)的(de)是(shì)使用(y₽§>↕òng)display方法,調用(yòng)格式:
display('[模闆文(wén)件(jiàn)]'[,'字φ₹符編碼'][,'輸出類型'])
模闆文(wén)件(jiàn)的(de)寫法®'支持下(xià)面幾種:
| 用(yòng)法 | 描述 |
|---|---|
| 不(bù)帶任何參數(shù) | 自(zì)動定位當前操作(zuò)的(de)模闆文(wén)件§↑∏(jiàn) |
| [模塊@][控制(zhì)器(qì):][操作(zuò)] | 常用(yòng)寫法,支持跨模塊 模闆主題可(kě)以和(hé)them★♣÷"e方法配合 |
| 完整的(de)模闆文(wén)件(jiàn)名 | 直接使用(yòng)完整的(de)模闆文(wén)件(jiàn)名♥×(包括模闆後綴) |
下(xià)面是(shì)一(yī)個(gè)最典₹™型的(de)用(yòng)法,不(bù)帶任何參數(shù):₹←
// 不(bù)帶任何參數(shù) 自(zì&α")動定位當前操作(zuò)的(de)模闆文(wén)件(jiàn)$this->display();
表示系統會(huì)按照(zhào)默認規則自(zì)動定位模π♣σ$闆文(wén)件(jiàn),其規則是(shì):
如(rú)果當前沒有(yǒu)啓用(yòng)模闆主題則定位到(dào):πα當前模塊/默認視(shì)圖目錄/當前控制(zhì)器(☆♠♣∞qì)/當前操作(zuò).html 如(rú)果有(yǒu)啓用(yòng)模闆主'$題則定位到(dào):當前模塊/默認視(shì)圖目錄/當前主題/當前控¶✘ 制(zhì)器(qì)/當前操作(zuò).html
如(rú)果有(yǒu)更改TMPL_FILE_D₩σEPR設置(假設 'TMPL_FILE_DEPR'=>'_')的(de)話(huà),則上(shàng)面的(de)自(zì)動$×定位規則變成: 當前模塊/默認視(shì)圖目錄/當前控制(zh ∑✘ì)器(qì)_當前操作(zuò).html 和(hé) 當前模塊/默認視(shì)圖目錄/當前主題© δλ/當前控制(zhì)器(qì)_當前操作(zuò).html。
所以通(tōng)常display方法無需帶任何≤↔₽參數(shù)即可(kě)輸出對(duì)應的(de)模闆,這(γ∑$zhè)是(shì)模闆輸出的(de)最簡單的(de)用(yòn≤ ✔g)法。
通(tōng)常默認的(de)視(shì)圖目錄是(shì)View
如(rú)果沒有(yǒu)按照(zhào)模₽'₩₩闆定義規則來(lái)定義模闆文(wén)件(jiàn)(或者需要(yào)σ≈$調用(yòng)其他(tā)控制(zhì)←♦→器(qì)下(xià)面的(de)某個(gè)∞<模闆),可(kě)以使用(yòng):
// 指定模闆輸出$this->display('edit');
表示調用(yòng)當前模塊下(xià)面的(de)edit模闆
$this->display('Member:read');
表示調用(yòng)Member模塊下(x•¥ià)面的(de)read模闆。
如(rú)果我們使用(yòng)了(le)模闆主題功能←§(néng),那(nà)麽也(yě)可(kě)©β→以支持跨主題調用(yòng),使用(yò $ ng):
$this->theme('blue')->display('User:edit');
表示調用(yòng)blue主題下(xià→☆)面的(de)User控制(zhì)器(qì)的(de)edit模闆。
如(rú)果你(nǐ)不(bù)希望每個(gè)主題↓±↔↔都(dōu)重複定義一(yī)些(xiē<Ω★)相(xiàng)同的(de)模版文(wén)件(jiàn)的(de)話(♥ £huà),還(hái)可(kě)以啓用(yòng)差異主題定義方式,設置:
'TMPL_LOAD_DEFAULTTHEME'=>true
設置後,如(rú)果blue主題下(xià)面不(bù)存在edit模闆的(←♠de)話(huà),就(jiù)會(huì)自(z∞¥ ì)動定位到(dào)默認主題中的(de)÷λ↕edit模闆。
渲染輸出不(bù)需要(yào)寫模闆文(wén)件(✘≥×jiàn)的(de)路(lù)徑和(hé)後綴,确切地( β≈♦dì)說(shuō),這(zhè)裡(lǐ)面的(d>∞ e)控制(zhì)器(qì)和(hé)操作(zuò)β& ₹并不(bù)一(yī)定需要(yào)有(yǒu)實際對(duì)應§™的(de)控制(zhì)器(qì)和(hé)操作(zuò),隻是(♣$shì)一(yī)個(gè)目錄名稱和(hé)文(wénπ)件(jiàn)名稱而已,例如(rú),你(nǐ)的(de)項目裡(lǐ& ε)面可(kě)能(néng)根本沒有(yǒu)P✘×$ ublic控制(zhì)器(qì),更沒有(yǒu)Public控制(zhì)↓✔器(qì)的(de)menu操作(zuò),但("↕÷dàn)是(shì)一(yī)樣可(kě)以使用(yòng)
$this->display('Public:menu');
輸出這(zhè)個(gè)模闆文(wén)件(ji"☆≥àn)。理(lǐ)解了(le)這(zhè)個(gè)β•,模闆輸出就(jiù)清晰了(le)。
display方法支持在渲染輸出的(de)時(shí)候指定輸ε¥≠出編碼和(hé)類型,例如(rú),可(kě)以指定編碼和(hé)類型:¶₹∏'
$this->display('read', 'utf-8', 'text/xml');
表示輸出XML頁面類型(配合你(nǐ)的←≠₹₹(de)應用(yòng)需求可(kě)以輸出很(hěn)多(du®♠αō)類型)。
事(shì)情總有(yǒu)特例,如(r☆®ú)果的(de)模闆目錄是(shì)自(zì)定義的(de★ו),或者根本不(bù)需要(yào)按模塊進行(xín € ☆g)分(fēn)目錄存放(fàng),那(nà)麽默認的¥β☆(de)display渲染規則就(jiù)不(b★♣δù)能(néng)處理(lǐ),這(zh×≈è)個(gè)時(shí)候,我們就(jiù)需要(yào)使用(☆λ✘yòng)另外(wài)一(yī)種方式來(l£₽¥₹ái)應對(duì),直接傳入模闆文(wén)件(jiàn)名即可(kě♥₽¶¶),例如(rú):
$this->display('./Template/Public/menu.html');
這(zhè)種方式需要(yào)指定模闆路(lù)徑和(h♥£é)後綴,這(zhè)裡(lǐ)的(de)Template÷¶↔'/Public目錄是(shì)位于當前項目入口₩±> 文(wén)件(jiàn)位置下(xià)面。如(rú)果是(shì)其$∑Ωλ他(tā)的(de)後綴文(wén)件(jiàn€φβ♥),也(yě)支持直接輸出,例如(rú):≥×←$this->display('.↔ $/Template/Public/menu.tpl');
隻要(yào)./Template/Public/menu.tpl是(shì)一(yī)個(gè)實際存在的(de←π)模闆文(wén)件(jiàn)。
要(yào)注意模闆文(wén)件(jiàn)位置是(shì)相(xi±&£δàng)對(duì)于項目的(de)入口文(wén)件(jiàn),而不("↔bù)是(shì)模闆目錄。




