模板變量賦值后就需要調(diào)用模板文件來(lái)輸出相關(guān)的變量,模板調(diào)用通過(guò)display方法來(lái)實(shí)現(xiàn),我們?cè)诓僮鞣椒ǖ淖詈笫褂?
$this->display();
就可以輸出模板,根據(jù)前面的模板定義規(guī)則,因?yàn)橄到y(tǒng)會(huì)按照默認(rèn)規(guī)則自動(dòng)定位模板文件,所以通常display方法無(wú)需帶任何參數(shù)即可輸出對(duì)應(yīng)的模板,這是模板輸出的最簡(jiǎn)單的用法。
事情總有特例,或者根本不需要按模塊進(jìn)行分目錄存放,不過(guò)display方法總是能夠幫你解決問(wèn)題。
Display方法提供了幾種規(guī)則讓你可以隨心所欲的輸出需要的模板,無(wú)論你的模板文件在什么位置。
下面來(lái)看具體的用法:
一、調(diào)用當(dāng)前模塊的其他操作模板
格式:display('操作名')
例如,假設(shè)當(dāng)前操作是User模塊下面的read操作,我們需要調(diào)用User模塊的edit操作模版,使用:
$this->display('edit');
不需要寫模板文件的路徑和后綴。
二、調(diào)用其他模塊的操作模板
格式:display('模塊名:操作名')
例如,當(dāng)前是User模塊,我們需要調(diào)用Member模塊的read操作模版 ,使用:
$this->display('Member:read');
這種方式也不需要寫模板文件的路徑和后綴,嚴(yán)格來(lái)說(shuō),這里面的模塊名和操作名并不一定需要有對(duì)應(yīng)的模塊或者操作,只是一個(gè)目錄名稱和文件名稱而已,例如,你的項(xiàng)目里面可能根本沒(méi)有Public模塊,更沒(méi)有Public模塊的menu操作,但是一樣可以使用
$this->display('Public:menu');
輸出這個(gè)模板文件,理解了這個(gè),模板輸出就清晰了.
三、調(diào)用其他主題的操作模板
格式:display('主題名:模塊名:操作名')
例如我們需要 調(diào)用Xp主題的User模塊的edit操作模版,使用:
$this->display('Xp:User:edit');
這種方式需要指定模塊和操作名
四、直接全路徑輸出模板
格式:display('模板文件名')
例如,我們直接輸出當(dāng)前的Public目錄下面的menu.html模板文件,使用:
$this->display('./Public/menu.html');
這種方式需要指定模板路徑和后綴,這里的Public目錄是位于當(dāng)前項(xiàng)目入口文件位置下面,如果是其他的后綴文件,也支持直接輸出,例如:
$this->display('./Public/menu.tpl');
只要./Public/menu.tpl是一個(gè)實(shí)際存在的模板文件,如果使用的是相對(duì)路徑的話,要注意當(dāng)前位置是相對(duì)于項(xiàng)目的入口文件,而不是模板目錄.
事實(shí)上,display方法還有其他的參數(shù)和用法。
有時(shí)候某個(gè)模板頁(yè)面我們需要輸出指定的編碼,而不是默認(rèn)的編碼,可以使用:
$this->display('Member:read', 'gbk');
或者輸出的模板文件不是text/html格式的,而是XML格式的,可以用:
$this->display('Member:read', 'utf-8', 'text/xml');
如果你的網(wǎng)站輸出編碼不是默認(rèn)的編碼,可以使用:
'DEFAULT_CHARSET'=> 'gbk'
如果要輸出XML格式的,可以用:
'TMPL_CONTENT_TYPE'=> 'text/xml'
如果不需要渲染模板文件而是直接輸出內(nèi)容,可以使用show方法,例如:
$this->show($content, 'utf-8', 'text/xml');
新聞熱點(diǎn)
疑難解答
圖片精選