Discuz模板标签说明

Standard

Discuz! 的模板采用近似 PHP 表达式的语法,支持的元素如下:
<!–{ … }–>
逻辑元素包围符,该符号用于包含条件和循环元素

条件判断
<!–{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}
可以引用界面替换变量,其中必须为大写字母,该符号实际的作用是引用 PHP 常量 CONSTANT,因此也可以通过它来引用其他的常量内容。
{lang variable}
可以在模板中引用语言变量 variable 的内容,语言变量经由 templates.php.lang 中数组 $language 定义。如 {lang post_edit} 的内容在编译模板的时候被替换为 $language[‘post_edit’] 的内容,简体中文版的意思是“编辑帖子”。
{template name}
模板嵌入符,为了避免模板的冗长,可以使用本符号来将 name 模板的内容嵌入本模板中(实际上为引用)。
{eval statement}
运行 PHP 语句体 statement。推荐只在特别必须的时候才使用该结构,因为它会破坏模板的结构和可读性。如 {eval echo ‘template!’;} 实现的功能为 echo ‘template’;
{LF}
换行符,因为 Discuz! 模板引擎会忽略掉多余的换行(\n),这个符号用来成生需要的 \n。

<!–{eval for ($i=1; $i<=5; $i++){ }–>
<!–{eval echo “Hello World!<br />”;}–>
<!–{eval}}–>

2 thoughts on “Discuz模板标签说明

  1. 谢谢,不过我觉得内容少了些,还有没有更完整的呢?另外我想把discuz的模板运用到jsp中,自己写一个模板引擎,不知道技术上是否可行?QQ26497775,有空联系一下!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.