這種布局模板不需要在配置文件中設置任何參數,也不需要開啟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插件開發
- 開始開發