Discuz!X/模板标签说明

本文介绍了Discuz!论坛系统的模板标签用法,包括条件判断、数组循环等动态内容的处理方式,以及如何引用常量、语言变量等内容。还介绍了模板嵌入和其他特殊符号的用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Discuz 模板标签说明

Discuz! 的模板采用近似 PHP 表达式的语法,基本都是可识别的HTML,但涉及到变量和动态内容时,基本形式下:


<!-{ 代码内容 }->


逻辑元素包围符,该符号用于包含条件和循环元素

[b]条件判断[/b]

<!-{if expr1}->
statement1
<!-{elseif expr2}->
statement2
<!-{else}->
statement3
<!-{/if}->


这是一个典型的条件模板,当条件 expr1 为真时,显示模板 statement1 内容,否则当 expr2 为真时,显示模板 statement2 内容,否则显示模板 statement3 的内容。如同其他语言中的条件控制一样,其中 <!-{elseif expr}-> 和 <!-{else} -> 是非必须的。

[b]不带下标变量的数组循环[/b]

<!-{loop $array $value}->
statement
<!-{/loop}->


相当于 PHP 的数组循环语句:


foreach($array as $value) {
statement
}

[b]带下标变量的数组循环 [/b]

<!-{loop $array $key $value}->
statement
<!-{/loop}->

相当于 PHP 的数组循环语句:


foreach($array as $key => $value) {
statement
}


[b]信息元素包围符 [/b]{CONSTANT}

可以引用界面替换变量,其中必须为大写字母,该符号实际的作用是引用 PHP 常量 CONSTANT,因此也可以通过它来引用其他的常量内容。

{lang variable}

可以在模板中引用语言变量 variable 的内容,语言变量经由 templates.php.lang 中数组 $language 定义。如 {lang post_edit} 的内容在编译模板的时候被替换为 $language['post_edit'] 的内容,简体中文版的意思是“编辑帖子”。

{template name}

模板嵌入符,为了避免模板的冗长,可以使用本符号来将 name 模板的内容嵌入本模板中(实际上为引用)。

{LF}

换行符,因为 Discuz! 模板引擎会忽略掉多余的换行(\n),这个符号用来成生需要的 \n。

{eval statement}

运行 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!"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值