Discuz模板標籤詳解

Discuz模板標籤解釋

Discuz! 的模板採用近似 PHP 表達式的語法,支持的元素如下:

1. <!--{ ... }-->

   邏輯元素包圍符,該符號用於包含條件和循環元素,其中:

<!--{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

}

   邏輯元素包圍符在 { } 外面包含了 html 的註釋符號 <!-- -->,除了爲了和信息元素

   相區別外,也方便了使用 Dreamweaver 和 Frontpage 之類工具編輯模板的用戶.因邏

   輯元素會被識別爲 html 的註釋而不被顯示,對於絕大多數用戶,邏輯元素中的內容是

   完全不需要修改的,甚至修改錯一個字符就可能引起錯誤信息和整個系統無法運行.因

   此通常您在修改模板的時候,不要修改模板的邏輯信息,更不要將邏輯信息內部元素(如

   <!--{else}--> 等)的位置,否則可能會導致錯誤.如果您的模板被不慎修改損壞,請立

   即用原始模板覆蓋,即可恢復.

   對於高手而言,實際上外部的 <!-- --> 是可以省略不寫的,可以用於某些元素在模板

   中的定位,但強烈建議普通用戶不要輕易嘗試.

2. { ... }

   信息元素包圍符,其中

{CONSTANT}

可以引用界面替換變量,其中必須爲大寫字母,該符號實際的作用是引用 PHP 常量

CONSTANT,因此也可以通過它來引用其他的常量內容.

{lang variable}

可以在模板中引用語言變量 variable 的內容,語言變量經由 templates.php.lang

中數組 $language 定義.

如 {lang post_edit} 的內容在編譯模板的時候被替換爲 $language[\\\'post_edit\\\']

的內容,簡體中文版的意思是 \\\"編輯帖子\\\".

{faq variable}

可以在模板中引用 論壇幫助 的幫助關鍵字,在後臺=>其他設置=》論壇幫助=》具體某個幫助的詳情可以看到或者設置

3. {template name}

   模板嵌入符,爲了避免模板的冗長,可以使用本符號來將 name 模板的內容嵌入本模板

   中(實際上爲引用).

4. {eval statement}

   運行 PHP 語句體 statement.推薦只在特別必須的時候才使用該結構,因爲它會破壞

   模板的結構和可讀性.

   如 {eval echo \\\'template\\\';} 實現的功能爲 echo \\\'template\\\';

5. {LF}

   換行符,因爲 Discuz! 模板引擎會忽略掉多於的換行行(\\\\n),這個符號用來成生需要

   的 \\\\n.

6. {echo variable}

實現的功能爲 echo, 注意這個和直接在模板寫變量{$variable} 的區別是這個把echo後面的當成一個語句執行完成後才輸出;

看一個具體的例子:

{echo $i + 1} 編譯後 <? echo $i+1; ?>

$i + 1 編譯後 <?=$i?> + 1

7. {block variable}statement{/block}

實現的功能爲 $variable = <<<EOF

statement

EOF;

這個對於塊賦值非常的有用。

發佈了38 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章