變量輸出使用普通標簽就足夠了,但是要完成其他的控制、循環和判斷功能,就需要借助模板引擎的標簽庫功能了,系統內置標簽庫的所有標簽無需引入標簽庫即可直接使用。
XML標簽有兩種,包括閉合標簽和開放標簽,一個標簽在定義的時候就已經決定了是否是閉合標簽還是開放標簽,不可混合使用,例如:
閉合標簽:<include file="read" />
開放標簽:<gt name="name" value="5">value</gt>
內置支持的標簽和屬性列表如下:
標簽名 |
作用 |
包含屬性 |
include |
包含外部模板文件(閉合) |
file |
import |
導入資源文件(閉合 包括js css load別名) |
file,href,type,value,basepath |
volist |
循環數組數據輸出 |
name,id,offset,length,key,mod |
foreach |
數組或對象遍歷輸出 |
name,item,key |
for |
For循環數據輸出 |
name,from,to,before,step |
switch |
分支判斷輸出 |
name |
case |
分支判斷輸出(必須和switch配套使用) |
value,break |
default |
默認情況輸出(閉合 必須和switch配套使用) |
無 |
compare |
比較輸出(包括eq neq lt gt egt elt heq nheq等別名) |
name,value,type |
range |
范圍判斷輸出(包括in notin between notbetween別名) |
name,value,type |
present |
判斷是否賦值 |
name |
notpresent |
判斷是否尚未賦值 |
name |
empty |
判斷數據是否為空 |
name |
notempty |
判斷數據是否不為空 |
name |
defined |
判斷常量是否定義 |
name |
notdefined |
判斷常量是否未定義 |
name |
define |
常量定義(閉合) |
name,value |
assign |
變量賦值(閉合) |
name,value |
if |
條件判斷輸出 |
condition |
elseif |
條件判斷輸出(閉合 必須和if標簽配套使用) |
condition |
else |
條件不成立輸出(閉合 可用於其他標簽) |
無 |
php |
使用php代碼 |
無 |
1.include
可以使用Include標簽來包含外部的模板文件,使用方法如下:
include標簽(包含外部模板文件) |
|
閉合 |
閉合標簽 |
屬性 |
file(必須):要包含的模板文件,支持變量 |
示例:
1、 使用完整文件名包含
格式:<include file="完整模板文件名" />
例如:
<include file="./Tpl/default/Public/header.html" />
這種情況下,模板文件名必須包含后綴。使用完整文件名包含的時候,特別要注意文件包含指的是服務器端包含,而不是包含一個URL地址,也就是說file參數的寫法是服務器端的路徑,如果使用相對路徑的話,是基於項目的入口文件位置。
2、包含當前模塊的其他操作模板文件
格式:<include file="操作名" />
例如 導入當前模塊下面的read操作模版:
<include file="read" />
操作模板無需帶后綴。
3、 包含其他模塊的操作模板
格式:<include file="模塊名:操作名" />
例如,包含Public模塊的header操作模版:
<include file="Public:header" />
4、包含其他模板主題的模塊操作模板
格式:<include file="主題名:模塊名:操作名" />
例如,包含blue主題的User模塊的read操作模版:
<include file="blue:User:read" />
5、 用變量控制要導入的模版
格式:<include file="$變量名" />
例如
<include file="$tplName" />
給$tplName賦不同的值就可以包含不同的模板文件,變量的值的用法和上面的用法相同。
無論你使用什么方式包含外部模板,Include標簽支持在包含文件的同時傳入參數,例如,下面的例子我們在包含header模板的時候傳入了title和keywords變量:
<include file="header" title="ThinkPHP框架"keywords="開源WEB開發框架"/>
就可以在包含的header.html文件里面使用var1和var2變量,方法
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>[title]</title>
<meta name="keywords" content="[keywords]" />
</head>
注意:由於模板解析的特點,從入口模板開始解析,如果外部模板有所更改,模板引擎並不會重新編譯模板,除非在調試模式下或者緩存已經過期。如果部署模式下修改了包含的外部模板文件后,需要把模塊的緩存目錄清空,否則無法生效。