模板布局
全域配置
比較適用于全站使用相同布局的情況(比如頂部和底部保持不變)
1、需要在config目錄下的template.php 檔案中添加以下配置
//開啟全域模板布局
'layout_on' => true,
//全域模板布局檔案名
'layout_name' => 'layout',
2、渲染模板
Demo8.php
<?php
namespace app\index\controller;
use think\Controller;
class Demo8 extends Controller
{
public function test1()
{
return $this->view->fetch('test1');
}
}
模板test1.html
<h2 style="color: blue">我是網站的內容區</h2>
全域模板 layout.html
{include file="header"}
{__CONTENT__}
{include file="footer"}
header.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h2 style="color: red;">我是網站的頂部</h2>
footer.html
<h2 style="color: green;">我是網站的底部</h2>
</body>
</html>

注:
- 在不開啟layout_on布局模板之前,會直接渲染 application/index/view/Demo8/test1.html 模板檔案,開啟之后,首先會渲染application/index/view/layout.html 模板,讀取layout模板之后會再決議Demo8/test1.html 模板檔案
- 布局模板的寫法和其他模板的寫法類似,本身也可以支持所有的模板標簽以及包含檔案,區別在于有一個特定的輸出替換變數
{__CONTENT__} layout.html、header.html、footer.html都是之間放在application/index/view目錄下
模板標簽(略)
動態方法布局(略)
模板布局檔案
模板繼承
準備:
- 如果開啟了全域模板布局,先將其關閉
- 在view下創建public目錄,來存放一些基本模板:base.html(必須的)、header.html(網站頂部)、footer.html(網站底部),后兩個可以沒有,但是網站一般都有這兩個部分(可以以其他名字命名)
Demo8.php
<?php
namespace app\index\controller;
use think\Controller;
class Demo8 extends Controller
{
public function test2()
{
return $this->view->fetch('test2');
}
}
header.html 和 footer.html與上面相同
base.html
{include file="public/header" /}
{block name="nov"} 導航 {/block}
{block name="main"} 主題部分 {/block}
{include file="public/footer" /}
test2.html
<! -- 繼承基礎模板 -->
{extend name="public/base"}
<!--宣告區塊-->
{block name="main"}
<h2>我是繼承案例的內容</h2>
{/block}

注:
- 每個區塊由{block} {/block}標簽組成,block標簽含有一個name屬性,用來區別不同的區塊
- 子模板中(test2.html)需要繼承繼承模板(base.html),使用extend標簽,name屬性指定模板的位置,這里根路徑為view目錄
- 區塊的作用可以說就是來占位置的,如果基礎模板中的區塊沒有被宣告,則會顯示區塊中的文字,如果目前不需要只需要占位,可以只宣告區塊,不添加內容,例如
{block name="nov"}{/block}
- 如果在子模板中想繼承父模板中區塊的內容可以使用 {block} 標簽
- 繼承與類的繼承很相似,可以理解為父模板中存在某個區塊,子模板中不存在該區塊,那就顯示父模板中的區塊;父模板和子模板中都存在相同區塊,那就子模板區塊代替父模板區塊,顯示子模板區塊
- 在區塊外的標簽內容不會被顯示
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/157633.html
標籤:其他
上一篇:2020-10-04
