- 13
- 0
- 约2.41千字
- 约 2页
- 2021-12-10 发布于福建
- 举报
DiscuzX 模板: 【模板制作】 - 【标签语法】详解
Discuz! X 模板的解析主要是 ./source/class/class_template.php 文件解析处理的,如
果需要深入了解请可以看看这个文件!
1. 模板嵌套语法
将被嵌套模板内容解析为 PHP 语句并合并入本模板中的写法
!--{subtemplate common/header}--
common/header 对应某个模板套系中的 common 目录的 header.htm 模板文件
程序运行时 include 嵌套模板内容
!--{template common/header}--
注释:当模板中有较多 loop 时,尽量用 subtemplate
2. 逻辑判断 if...else
I. 如果写在 HTML 表单元素中,可以省去使代码更清晰易读,如 {if
$my_var}xxx{/if}
!--{if $_G[uid]}-- 任意 html 语句 !--{/if}--
II. 带有分支条件的 if 写法
!--{if $_G[uid]}-- 任 意 html 语 句 !--{elseif
$_G[connectguest]}-- 任意 html 语句 !--{/if}--
III. 带有多条件的 if 写法,可使用 PHP 常规判断中的按位运算符等
!--{if empty($_G[forum][picstyle]) $_GET[orderby] ==
lastpost empty($_GET[filter]) }--
任意 html 语句
!--{/if}--
IV. CSS 书写时也可以按条件进行判断设置设置例如:
td class=fl_g{if $forumcolwidth}
width=$forumcolwidth{/if}
3. 直接执行 PHP 代码标签:
!--{eval echo $my_var;}--
!--{eval $my_arr = array(1, 2, 3);}--
!--{eval print_r($my_arr);}--
!--{eval output();}--
!--{eval exit();}--
4. 直接输出变量,等同于 PHP 的 ?php echo $my_var; ?, 花括号可以省略但不
建议去掉。(模块程序处理后才能在这里调用):
div id=ancul id=ancl$announcements/ul/div
!--{echo cutstr($group[lastpost][subject], 30)}--
5. 广告的嵌入点代码:
!--{ad/headerbanner/wp a_h}--
6. 插件的钩子标签:
!--{hook/global_usernav_extra2}--
hook 为关键词,意为将 index_top 定义为钩子
7. 循环语法(可以多重循环)
带有数组键的循环写法
!--{loop $my_arr $key $val}--
循环输出的 HTML语句
!--{/loop}--
没有数组键的循环写法
!--{loop $_G[setting
原创力文档

文档评论(0)