Discuz 模板標籤說明 Discuz! 的模板採用近似 PHP 表達式的語法,基本都是可識別的HTML,但涉及到變量和動態內容時,基本形式下: <!-{ 代碼內容 }-> 邏輯元素包圍符,該符號用於包含條件和循環元素 == 條件判斷 == <!-{if expr1}-> statement1 <!-{elseif expr2}-> statement2 <!-{else}-> statement3 <!-{/if}-> 這是一個典型的條件模板,當條件 expr1 爲真時,顯示模板 statement1 內容,不然當 expr2 爲真時,顯示模板 statement2 內容,不然顯示模板 statement3 的內容。如同其餘語言中的條件控制同樣,其中 <!-{elseif expr}-> 和 <!-{else} -> 是非必須的。 == 不帶下標變量的數組循環 == <!-{loop $array $value}-> statement <!-{/loop}-> 至關於 PHP 的數組循環語句: foreach($array as $value) { statement } == 帶下標變量的數組循環 == <!-{loop $array $key $value}-> statement <!-{/loop}-> 至關於 PHP 的數組循環語句: foreach($array as $key => $value) { statement } == 信息元素包圍符 == {CONSTANT}<br /> 能夠引用界面替換變量,其中必須爲大寫字母,該符號實際的做用是引用 PHP 常量 CONSTANT,所以也能夠經過它來引用其餘的常量內容。 {lang variable}<br /> 能夠在模板中引用語言變量 variable 的內容,語言變量經由 templates.php.lang 中數組 $language 定義。如 {lang post_edit} 的內容在編譯模板的時候被替換爲 $language['post_edit'] 的內容,簡體中文版的意思是「編輯帖子」。 {template name}<br /> 模板嵌入符,爲了不模板的冗長,能夠使用本符號來將 name 模板的內容嵌入本模板中(實際上爲引用)。 {LF}<br /> 換行符,由於 Discuz! 模板引擎會忽略掉多餘的換行(\n),這個符號用來成生須要的 \n。 {eval statement}<br /> 運行 PHP 語句體 statement。推薦只在特別必須的時候才使用該結構,由於它會破壞模板的結構和可讀性。如 {eval echo 'template';} 實現的功能爲echo 'template'; <!-{eval for ($i=1; $i<=5; $i++){ }-> <!-{eval echo "Hello World!";}-> <!-{eval}}-> 等同於 for ($i=1; $i<=5; $i++){ echo "Hello World!" } == 插入子模板 == <!-{subtemplate 路徑/模板名}-> 例如 <!-{subtemplate common/header_common}-> == 插入鉤子 == <!-{hook/viewthread_profileside $postcount}-> == 插入廣告 == <!-{ad/subnavbanner/a_mu}-> == 常量 == {STATICURL} static/ {IMGDIR} static/image/common/ {TPLDIR} 模板路徑 {CURMODULE} {VERHASH} {FORMHASH} {NOTICETEXT} {TIMESTAMP} {CHARSET} {STYLEID} {BORDERCOLOR} {SMFONTSIZE} {SMFONT} {UC_API}