包含文件
在當前模版文件中(zhong)包含其他的模版文件使(shi)用include標(biao)(biao)簽(qian)(qian),標(biao)(biao)簽(qian)(qian)用法:
{include file='模版文(wen)件1,模版文(wen)件2,...' /}
包含的(de)模板文(wen)件中不(bu)能再使用(yong)模板布局(ju)或者模板繼承(cheng)。
使用模版表達式
模版表達式的定義規則為:模塊@控(kong)制器/操(cao)作
例如:
{include file="public/header" /} // 包含(han)頭(tou)部模(mo)版header
{include file="public/menu" /} // 包(bao)含菜單(dan)模版menu
{include file="blue/public/menu" /} // 包含blue主題下面的(de)menu模版(ban)
可(ke)以一次(ci)包(bao)含多個模(mo)版,例如:
{include file="public/header,public/menu" /}
注(zhu)意,包含模(mo)版文件并不會自動調用控制器的方(fang)法,也就是(shi)說(shuo)包含的其他模(mo)版文件中的變量賦值需要在當前操作中完成。
使用模版文件
可以直接包含一個模版文件名(包含完整(zheng)路(lu)徑),例如:
{include file="../application/view/default/public/header.html" /}
路(lu)(lu)徑(jing)以 項(xiang)目目錄(lu)/public/ 路(lu)(lu)徑(jing)下為起點
傳入參數
無論你使用什么方式包含外部模板,Include標簽支持在包含文件的同時傳入參數,例如,下面的例子我們在包含header模板的時候傳入了title和keywords參數:
{include file="Public/header" title="$title" keywords="開源WEB開發(fa)框架" /}
就可以在(zai)包含的header.html文件里面使(shi)用title和keywords變量,如下:
<html xmlns="//www.w3.org/1999/xhtml">
<head>
<title>[title]</title>
<meta name="keywords" content="[keywords]" />
</head>
上面title參數傳入的(de)是個(ge)(ge)變量(liang)$title,模板內的(de)[title]最終會替換成$title的(de)值,當然$title這個(ge)(ge)變量(liang)必須要存在。
包(bao)(bao)含(han)文(wen)件中可以再使(shi)用include標簽包(bao)(bao)含(han)別(bie)的(de)文(wen)件,但注意不(bu)要形(xing)成(cheng)A包(bao)(bao)含(han)A,或者(zhe)A包(bao)(bao)含(han)B而B又(you)包(bao)(bao)含(han)A這樣(yang)的(de)死循環。
注(zhu)意:由(you)于模(mo)板(ban)(ban)解析的特點,從入口模(mo)板(ban)(ban)開(kai)始(shi)解析,如果外(wai)部(bu)模(mo)板(ban)(ban)有所更改,模(mo)板(ban)(ban)引擎并(bing)不會(hui)重(zhong)新(xin)編譯模(mo)板(ban)(ban),除非在調試模(mo)式下(xia)或者緩存(cun)已(yi)經(jing)過期。如果部(bu)署模(mo)式下(xia)修改了包含的外(wai)部(bu)模(mo)板(ban)(ban)文件后(hou),需(xu)要把模(mo)塊的緩存(cun)目錄清空,否則無法生(sheng)效。
