“Discuz!X/模板标签说明”的版本间的差异
小 |
小 |
||
| (未显示同一用户的4个中间版本) | |||
| 第74行: | 第74行: | ||
} | } | ||
| + | 在dx3中,增加了一种用法,可以写整段的php代码 | ||
| + | <!-{eval}-> | ||
| + | <!- | ||
| + | function test(test) { | ||
| + | return 'test'; | ||
| + | } | ||
| + | -> | ||
| + | <!-{/eval}-> | ||
| + | |||
| + | {date(timestamp,'Y-m-d')} 格式化时间 | ||
| + | |||
| + | {avatar(uid,small)} 插入头像 | ||
== 插入子模板 == | == 插入子模板 == | ||
| 第85行: | 第97行: | ||
<!-{hook/viewthread_profileside $postcount}-> | <!-{hook/viewthread_profileside $postcount}-> | ||
| − | |||
| + | == 插入模块 == | ||
| + | <!-{block}-> | ||
| + | <!-{blockdata}-> | ||
| + | |||
| + | == 插入广告 == | ||
<!-{ad/subnavbanner/a_mu}-> | <!-{ad/subnavbanner/a_mu}-> | ||
| + | |||
| + | |||
| + | *ad 广告 subnavbanner 广告类型 [[Discuz!X/数据库字典/pre_common_advertisement#cite_note-0|广告类型列表]] a_mu 样式 还可以接更多的参数 | ||
| + | *自定义广告类型以 custom_ + customid 命名 | ||
== 常量 == | == 常量 == | ||
{STATICURL} static/ | {STATICURL} static/ | ||
{IMGDIR} static/image/common/ | {IMGDIR} static/image/common/ | ||
| + | {TPLDIR} 模板路径 | ||
{CURMODULE} | {CURMODULE} | ||
2013-06-11T16:00:12的最后版本
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}
可以引用界面替换变量,其中必须为大写字母,该符号实际的作用是引用 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!"
}
在dx3中,增加了一种用法,可以写整段的php代码
<!-{eval}->
<!-
function test(test) {
return 'test';
}
->
<!-{/eval}->
{date(timestamp,'Y-m-d')} 格式化时间
{avatar(uid,small)} 插入头像
插入子模板
<!-{subtemplate 路径/模板名}->
例如
<!-{subtemplate common/header_common}->
插入钩子
<!-{hook/viewthread_profileside $postcount}->
插入模块
<!-{block}->
<!-{blockdata}->
插入广告
<!-{ad/subnavbanner/a_mu}->
- ad 广告 subnavbanner 广告类型 广告类型列表 a_mu 样式 还可以接更多的参数
- 自定义广告类型以 custom_ + customid 命名
常量
{STATICURL} static/
{IMGDIR} static/image/common/
{TPLDIR} 模板路径
{CURMODULE}
{VERHASH}
{FORMHASH}
{NOTICETEXT}
{TIMESTAMP}
{CHARSET}
{STYLEID}
{BORDERCOLOR}
{SMFONTSIZE}
{SMFONT}
{UC_API}