这种布局模板不需要在配置文件中设置任何参数,也不需要开启LAYOUT\_ON,直接在模板文件中指定布局模板即可,相关的布局模板调整也在模板中进行。
以前面的输出模板为例,这种方式的入口还是在User/add.html 模板,但是我们可以修改下add模板文件的内容,在头部增加下面的布局标签(记得首先关闭前面的LAYOUT\_ON设置,否则可能出现布局循
环):
<layout name="layout" />
<layout name="layout" />
表示当前模板文件需要使用 layout.html 布局模板文件,而布局模板文件的写法和上面第一种方式是一样的。当渲染 User/add.html 模板文件的时候,如果读取到layout标签,则会把当前模板的解析内容替换到layout布局模板的{CONTENT} 特定字符串。
一个模板文件中只能使用一个布局模板,如果模板文件中没有使用任何layout标签则表示当前模板不使用任何布局。
如果需要使用其他的布局模板,可以改变layout的name属性,例如:
<layout name="newlayout" />
<layout name="newlayout" />
还可以在layout标签里面指定要替换的特定字符串:
<layout name="Layout/newlayout" replace="{ REPLACE }" />
<layout name="Layout/newlayout" replace="{ REPLACE }" />
由于所有include标签引入的文件都支持layout标签,所以,我们可以借助layout标签和include标签相结合的方式实现布局模板的嵌套。例如,上面的例子
<include file="Public:header" />
<div id="main" class="main" >
{ CONTENT }
</div>
<include file="Public:footer" />
<include file="Public:header" />
<div id="main" class="main" >
{ CONTENT }
</div>
<include file="Public:footer" />
在引入的header和footer模板文件中也可以添加layout标签,例如header模板文件的开头添加如下标签:
<layout name="menu" />
<layout name="menu" />
这样就实现了在头部模板中引用了menu布局模板。
也可以采用两种布局方式的结合,可以实现更加复杂的模板布局以及嵌套功能。
- ThinkPHP模板
- 变量输出
- 系统变量
- 系统变量输出
- 常量输出
- 配置输出
- 语言变量
- 使用函数
- 默认值输出
- 使用运算符
- 标签库
- 导入标签库
- 内置标签
- 标签库预加载
- 模板继承
- 修改定界符
- 普通标签
- XML标签
- 三元运算符
- 包含文件
- 使用模版表达式
- 使用模版文件
- 传入参数
- 内置标签
- Volist标签
- Foreach标签
- For标签
- Switch标签
- 比较标签
- 范围判断标签
- IN和NOTIN
- BETWEEN 和 NOTBETWEEN
- RANGE
- IF标签
- Present标签
- Empty标签
- Defined标签
- Assign标签
- Define标签
- 标签嵌套
- import标签
- 使用PHP代码
- 使用php标签
- 使用原生php代码
- 原样输出
- 模板注释
- 单行注释
- 多行注释
- 模板布局
- 第一种方式:全局配置方式
- 第二种方式:模板标签方式
- 第三种方式:使用layout控制模板布局
- 模板替换
- 调用导航
- 调用栏目信息
- 根据栏目Id获取栏目信息
- 首页&封面调用信息列表
- 调用新闻列表
- 当前位置
- 当前位置
- 列表页分页
- 热门信息
- 获取热门信息
- 上一篇&下一篇
- YNCMS函数
- YNCMS插件开发
- 开始开发