在当前模版文件中包含其 的模版文件使用include标签 标签用法:

{include file='模版文件1,模版文件2,...' /}

包含的模板文件中不能再使用模板布局或模板继承。

使用模版表达式

模版表达式的定义规则为:模块@控制器/操作

例如:

{include file="public/header" /} // 包含头部模版header
{include file="public/menu" /} // 包含菜单模版menu
{include file="blue/public/menu" /} // 包含blue主题下面的menu模版

可以一次包含多个模版 例如:

{include file="public/header,public/menu" /}

注意 包含模版文件并不会自动调用控制器的方法 也就是说包含的其 模版文件中的变量赋值需要在当前操作中完成。

使用模版文件

可以直接包含个模版文件名(包含完整路径) 例如:

{include file="../application/view/default/public/header.html" /}

路径以 项目目录/public/ 路径下为起点

传入参数

无论你使用什么方式包含外部模板 Include标签支持在包含文件的同时传入参数 例如 下面的例子 在包含header模板的时候传入了titlekeywords参数:

{include file="Public/header" title="$title" keywords="开源WEB开发框架" /}

就可以在包含的header.html文件里面使用title和keywords变量 如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>[title]</title>
<meta name="keywords" content="[keywords]" />
</head>

上面title参数传入的是个变量$title 模板内的[title]最终会替换成$title的值 当然$title这个变量必须要存在。

包含文件中可以再使用include标签包含别的文件 但注意不要形成A包含A 或A包含B而B又包含A这样的死循环。

由于模板解析的特点 从入口模板开始解析 如果外部模板有所更改 模板引擎并不会重新编译模板 除非在调试模式下或缓存已经过期。如果部署模式下修改了包含的外部模板文件后 需要把模块的缓存目录清空 否则无法生效。