模塊繼承 {extend name="" /}php
{block name=""} {/block} 基礎模板 base.html 子模板 塊區 在子模板中,能夠對基礎模板中的區塊進行重載定義,若是沒有從新定義的話,則表示沿用基礎模板中的區
塊定義, 若是定義了一個空的區塊,則表示刪除基礎模板中的該區塊內容。css
{block}引用模板內容到子模塊html
base.html {block name="footer"}底部{/block}app
{block name="footer"} {block}@ThinkPHP 版權全部 {/block} 這一區塊中有{block}這個標籤,當區塊中有這個標記時,就不僅是直接重載這個區塊,它表示引用所繼承模 板對應區塊的內容到這個位置,最終這個區塊是合併後的內容。因此這裏footer區塊最後的內容是: 底部 @ThinkPHP 版權全部框架
在當前子模板中,只能定義區塊而不能定義其餘的模板內容,不然將會直接忽略,而且只能定義基礎模板中 已經定義的區塊。佈局
一 資源加載 {load href=""} {js href=""} {css href=""}.net
二 使用原生php {php} echo 'hello';{/php}code
注意:php標籤或者php代碼裏面就不能再使用標籤(包括普通標籤和XML標籤)了,所以下面的幾種方式都 是無效的: {php}{eq name='name'value='value'}value{/eq}{/php}htm
簡而言之,在PHP標籤裏面不能再使用PHP自己不支持的代碼。繼承
若是設置了tpl_deny_php 參數爲true,就不能在模板中使用原生的PHP代碼,可是仍然支持PHP標籤輸 出
三 定義標籤 @1 assign標籤在模板中定義變量 {assign name='var' value='123'/} name屬性支持系統變量,例如: {assign name="Think.get.id" value="123" /} 表示在模板中給$_GET['id'] 賦值了 123 value屬性也支持變量,例如: {assign name="var" value="$val" /} 或者直接把系統變量賦值給var變量,例如: {assign name="var" value="$Think.get.name" /} 至關於,執行了: $var = $_GET['name'];
@2 define定義常量 {define name="MY_DEFINE_NAME" value="3" /} 在運行模板的時候,就會定義一個MY_DEFINE_NAME 的常量。 value屬性能夠支持變量(包括系統變量),例如: {define name="MY_DEFINE_NAME" value="$name" /} 或者 {define name="MY_DEFINE_NAME" value="$Think.get.name" /}
三 包含文件 @1 當前模板文件包含其餘的模板文件 {include file=""/} 包含的模板文件中不能再使用模板佈局或者模板繼承
@2 使用模版表達式 模版表達式的定義規則爲:模塊@控制器/操做 {include file="public/header" /} // 包含頭部模版header 注意,包含模版文件並不會自動調用控制器的方法,也就是說包含的其餘模版文件中的變量賦值須要在當 前操做中完成。
使用模版文件 能夠直接包含一個模版文件名(包含完整路徑),例如: {include file="../application/view/default/public/header.html" /} 路徑以 項目目錄/public/ 路徑下爲起點
二 傳入參數 {include file="Public/header" title="$title" keywords="開源WEB開發框架" /}
<head> <title>[title]</title> <meta name="keywords" content="[keywords]" /> </head>