discuz模板标签loop循环语句用法举例

发布时间:2019-11-17编辑:脚本学堂
有关discuz模板标签的用法,重点介绍discuz模板标签中loop语句的用法,包括loop语句中使用的通用变量、特殊变量,以及一个百度幻灯片的语法示例。

discuz模板标签loop循环语句用法

一、基本语句
[loop]...[/loop]标签来循环显示模块中的数据;如果要在模板中多处循环可以使用[loop1]...[/loop1]的方式扩展(只能扩展1-9个)
[order=N]...[/order]标签来替代默认loop中的第N个位置数据的展示,你可以使用[order1=N]...[/order1]的方式来扩展(对应[loop1],只能扩展1-9个)
其中:[order=odd]为奇数行,[order=even]为偶数行
[index=N]...[/index]的方式来指定第N条数据的展示方式,由该语法指定的数据不再在loop循环中出现,可以通过[index1]...[/index1]的方式来扩展(只能扩展1-9个)以实现同一条数据多处展示

1、通用变量
当前数据的链接地址:{url}
当前数据的标题:{title}
当前数据的图片地址:{pic}
当前数据的简介:{summary}
当前数据顺序:{currentorder}
当前数据是否在奇数行:{parity},奇数行为1,偶数行为0
可设置打开方式的链接:<a href="{url}"{target}>{title}</a>
可设置缩略图大小的图片:<img src="{pic}" width="{picwidth}" height="{picheight}" />

2、特殊字段变量
在PHP数据类的fields方法中定义的变量都可以使用,如帖子类有{author},{authorid},{forumname},{dateline}等等
变量只在[loop]、[order]、[index]标签内生效

3、百变幻灯片语法
幻灯片的HTML结构分为整体大结构和三个内部部分,你可以在自己的模板中使用,也可以在DIY模块模板中使用

整体大结构
幻灯片的识别样式名为slidebox,可以使用任何容器类的HTML标签,如div,table等
属性值
timestep 控制幻灯片播放的速度,单位是毫秒,默认是2500毫秒
slidenum 表示显示数量,默认是0
slidestep 表示每点击一次左右(上下)按扭 移动的个数,默认是0
当slidenum和slidestep同时有值时,幻灯片将不自动播放,需要配合左右(上下)按钮来实现变动
必须的JS代码
 

<script type="text/javascript">
runslideshow();
</script>
 

普通幻灯片代码
 

<div class="module cl slidebox" timestep="3000">
...
</div>


列表显示代码
 

<div class="module cl slidebox" slidenum="4" slidestep="1">
...
</div>

1、主体显示部分
识别样式名为slideshow,slideshow元素下的每一个子节点元素(非空白节点)将做为一个显示元素
示例代码
 

<ul class="slideshow">
[loop]
<li style="width: {picwidth}px; height: {picheight}px;"><a href="{url}"{target}><img src="{pic}" width="{picwidth}" height="{picheight}" /></a><span class="title">{title}</span></li>
[/loop]
</ul>
 

2、控制部分
识别样式名为slidebar、slidebarup、slidebardown
slidebar元素下的每一个子节点元素(非空白节点)将做为一个控制元素,
slidebarup为上一个按钮,slidebardown为下一个按钮,slidebarup和slidebardown这两个不是必须的
属性值
mevent 控制元素鼠标响应事件,click或mouseover,默认为click
代码:
 

<ul class="slidebar" mevent="mouseover">
[loop]
<li>{currentorder}<li>
[/loop]
</ul>
 

3、附加显示部分:
识别样式名为slideother,一个幻灯片里可以有多个slideother,slidebar元素下的每一个子节点元素(非空白节点)将做为一个附加显示元素

代码:
 

<ul class="slideother">
[loop]
<li>{summary}<li>
[/loop]
</ul>
<ul class="slideother">
[loop]
<li>{avatar_big}<li>
[/loop]
</ul>