包含文件
在當(dāng)前模版文件中包含其他的模版文件使用include標(biāo)簽,標(biāo)簽用法:
{include file='模版文件1,模版文件2,...' /}
包含的模板文件中不能再使用模板布局或者模板繼承。
使用模版表達(dá)式
模版表達(dá)式的定義規(guī)則為:模塊@控制器/操作
例如:
{include file="public/header" /} // 包含頭部模版header
{include file="public/menu" /} // 包含菜單模版menu
{include file="blue/public/menu" /} // 包含blue主題下面的menu模版
可以一次包含多個(gè)模版,例如:
{include file="public/header,public/menu" /}
注意,包含模版文件并不會(huì)自動(dòng)調(diào)用控制器的方法,也就是說(shuō)包含的其他模版文件中的變量賦值需要在當(dāng)前操作中完成。
使用模版文件
可以直接包含一個(gè)模版文件名(包含完整路徑),例如:
{include file="../application/view/default/public/header.html" /}
路徑以 項(xiàng)目目錄/public/ 路徑下為起點(diǎn)
傳入?yún)?shù)
無(wú)論你使用什么方式包含外部模板,Include標(biāo)簽支持在包含文件的同時(shí)傳入?yún)?shù),例如,下面的例子我們?cè)诎琱eader模板的時(shí)候傳入了title
和keywords
參數(shù):
{include file="Public/header" title="$title" keywords="開(kāi)源WEB開(kāi)發(fā)框架" /}
就可以在包含的header.html文件里面使用title和keywords變量,如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>[title]</title>
<meta name="keywords" content="[keywords]" />
</head>
上面title參數(shù)傳入的是個(gè)變量$title,模板內(nèi)的[title]最終會(huì)替換成$title的值,當(dāng)然$title這個(gè)變量必須要存在。
包含文件中可以再使用include標(biāo)簽包含別的文件,但注意不要形成A包含A,或者A包含B而B(niǎo)又包含A這樣的死循環(huán)。
注意:由于模板解析的特點(diǎn),從入口模板開(kāi)始解析,如果外部模板有所更改,模板引擎并不會(huì)重新編譯模板,除非在調(diào)試模式下或者緩存已經(jīng)過(guò)期。如果部署模式下修改了包含的外部模板文件后,需要把模塊的緩存目錄清空,否則無(wú)法生效。