Appearance
DedeCMS靜態(tài)模板引擎 ?
核心文件 ?
/include/dedetag.class.php
功能描述 ?
DedeCMS V5.7 及之前版本使用的主要的模板類(lèi),它是解析式模板類(lèi),并非編譯式的。
注:
編譯式是通過(guò)獲得標簽位置進(jìn)行內容替換,編譯式是直接解析為PHP代碼,二次執行。
模板語(yǔ)法 ?
織夢(mèng)模板引擎是一種使用XML名字空間形式的模板解析器,使用織夢(mèng)解析器解析模板的最大好處是可以輕松的制定標記的屬性,感覺(jué)上就像在用HTML一樣,使模板代碼十分直觀(guān)靈活,新版的織夢(mèng)模板引擎不單能實(shí)現模板的解析還能分析模板里錯誤的標記。
代碼樣式 ?
html
{dede:標記名稱(chēng) 屬性='值'/}
html
{dede:標記名稱(chēng) 屬性='值'}{/dede:標記名稱(chēng)}
html
{dede:標記名稱(chēng) 屬性='值'}自定義樣式模板(InnerText){/dede:標記名稱(chēng)}
注:
如果使用帶底層模板的標記,必須嚴格用{dede:標記名稱(chēng) 屬性='值'}{/dede:標記名稱(chēng)} 這種格式,否則會(huì )報錯。
內置系統標記 ?
global ?
表示獲取一個(gè)外部變量,除了數據庫密碼之外,能調用系統的任何配置參數,形式為:
html
{dede:global name='變量名稱(chēng)'}{/dede:global}
或
html
{dede:global name='變量名稱(chēng)'/}
其中變量名稱(chēng)不能加 $
符號,如變量 $cfg_cmspath
,應該寫(xiě)成
html
{dede:global name='cfg_cmspath'/}
foreach ?
用來(lái)輸出一個(gè)數組,形式為:
html
{dede:foreach array='數組名稱(chēng)'}
[field:key/] [field:value/]
{/dede:foreach}
include ?
引入一個(gè)文件,形式為:
html
{dede:include file='文件名稱(chēng)' ismake='是否為dede板塊模板(yes/no)'/}
文件路徑優(yōu)先順序
絕對路徑 > include文件夾 > CMS安裝目錄 > CMS主模板目錄
自定義函數 ?
html
{dede:標記名稱(chēng) 屬性='值' function='youfunction("參數一","參數二","@me")'/}
其中 @me
用于表示當前標記的值,其它參數由你的函數決定是否存在,例如:
html
{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")'/}
DedeCMS允許有限的編程擴展,格式為:
html
{dede:tagname runphp='yes'}
$aaa = @me;
@me = "123456";
{/dede:tagname}
注:
@me
表示這個(gè)標記本身的值,因此標記內編程是不能使用 echo
之類(lèi)的語(yǔ)句的,只能把所有返回值傳遞給 @me
。
此外由于程序代碼占用了底層模板 InnerText
的內容,因此需編程的標記只能使用默認的 InnerText
。