DIY模块模板语法详解

出自Discuz! 技术文库

在2012年9月28日 (五) 05:19由Bilicen (讨论 | 贡献)所做的修订版本
(差异) ←上一修订 | 最新修订 (差异) | 下一修订→ (差异)
跳转到: 导航, 搜索

目录

基本语句

  • [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个)以实现同一条数据多处展示

通用变量

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

特殊字段变量

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

百变幻灯片语法

幻灯片的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>

主体显示部分

  • 识别样式名为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>

控制部分

  • 识别样式名为slidebar、slidebarup、slidebardown
slidebar元素下的每一个子节点元素(非空白节点)将做为一个控制元素,
slidebarup为上一个按钮,slidebardown为下一个按钮,slidebarup和slidebardown这两个不是必须的
  • 属性值
mevent 控制元素鼠标响应事件,click或mouseover,默认为click
  • 示例代码
<ul class="slidebar" mevent="mouseover">
[loop]
<li>{currentorder}<li>
[/loop]
</ul>

附加显示部分

  • 识别样式名为slideother,一个幻灯片里可以有多个slideother,slidebar元素下的每一个子节点元素(非空白节点)将做为一个附加显示元素
  • 示例代码
<ul class="slideother">
[loop]
<li>{summary}<li>
[/loop]
</ul>
<ul class="slideother">
[loop]
<li>{avatar_big}<li>
[/loop]
</ul>

一个完整的代码示例

<div class="module cl slidebox" timestep="3000">
	<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>
	<ul class="slidebar" mevent="mouseover">
		[loop1]
		<li>{currentorder}</li>
		[/loop1]
	</ul>
	<ul class="slideother">
		[loop2]
		<li>{summary}</li>
		[/loop2]
	</ul>
</div>
<script type="text/javascript">
runslideshow();
</script>
个人工具