用户自定义数据方法 {diy}
作用:对页面自定义数据进行创建和管理
参数:
id 相对于当前模板的唯一识别号仅限英文和数字,如果该DIY是全局的 则必须以 "global_"开头
name 对该diy 快进行命名,以简明易懂为原则
type diy 类型,目前可选类型有一下6类,其中 news、show、job、team、about 被并称为内容模块,可在后期在前台相互转换类型
static 静态模块
news 文章模块
show 作品模块
job 人才招聘
team 团队成员
about 关于我们
minnum[可选] 最小数据数 默认为1
maxnum[可选] 最大数据数 默认为1
picwidth[可选] 指定图片裁剪宽度
picheight[可选] 指定图片裁剪高度
datestyle[可选] 指定日期/时间显示样式
案例一[type="static"]:
{diy id="thisid" name="这是名称" type="static" minnum="2" maxnum="10" picwidth="500" picheight="100" datestyle="Y-m-d h:i"} <ul> [loop] [order1 picwidth="600" picheight="200"] <li><img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]">[$title]<span>[$dateline]</span></li> [/order1] [order/3 datestyle="Y年m月 h点i分"] <li class="mr0"><img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]">[$title]<span>[$dateline]</li> [/order/3] <li><img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]"></li> [/loop] </ul> {/diy}
说明:
1、以上例子中是一个静态DIY模块,允许用户最多上传10张图片,如果没有上传图片的话界面上会有两个内容占位。
2、第一张图片以宽度 600 高度 200 来显示。
3、顺序是 3 的倍数的图片的 li 容器应用 "mr0" 类 并以 "Y年m月 h点i分" 的样式里显示发布时间
4、其余的图片按照 diy 定义的参数来显示
案例二[type="news"]:
{diy id="thisid" name="这是名称" type="news" minnum="2" maxnum="10" picwidth="500" picheight="100" datestyle="Y-m-d h:i"} <h3><a href="[$moreurl]">[$moretitle] / [$moresubtitle]</a></h3> <ul> [loop] <li> <img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]"> <span>[$title]</span> <p> <a href="[$caturl]" target="_bank">栏目:[$cattitle]<em>[$catsubtitle]</em></a> <span>日期:[$dateline]</span> </p> </li> [/loop] </ul> {/diy}
说明:
1、以上例子中是一个新闻模块[news],允许用户最多调用10篇文章,如果没有足够的文章数量的话会有两个内容占位。
2、图片以宽度 500 高度 100 来显示。
3、[$moreurl] [$moretitle] [$moresubtitle] 分别代表 当前DIY 块的 总栏目链接和标题、副标题
4、[$caturl] [$cattitle] [$catsubtitle] 分别代表 当前循环得到的单位数据的所属栏目链接和标题、副标题
注意:
[loop] 指的是将 diy 返回的数据进行数组遍历
[orderX] 指的是指定下标的数据的显示样式
[order/X] 指的是指定数字倍数为下标的数据的显示样式
如果 [orderX] 定位的数据下标和 [order/X] 定位的数据下标相同,则 [orderX] 具有优先性
例子中使用到的 [$pic] [$title] [$dateline] 均指的是当前 DIY 模块可用的字段 其中 [$dateline] 是按照 [order] 中或者是{diy} 中声明的datestyle 参数值来显示时间样式([order] 中声明的属性具有优先性)
[$picheight] 和 [$picwidth] 是用来裁剪图片尺寸的,如果数据中没有图片可省略,如果{diy}中和[order]中均有声明则按照就近原则才有层级最近的声明
实际上 可以在[order]中声明的参数 picheight picwidth datestyle 一样可以在 [loop] 中声明,这在一个 DIY 里面存在多个 [loop] 的时候有用到。只不过这种情况是极少的
diy 方法中的公共可用字段
公共可用字段(所有type 类型可用)
[$title] //标题
[$summary] //描述
[$pic] //图片路径
[$url] //链接
[$moretitle] //栏目(更多)名称
[$moresubtitle] //栏目(更多)副标题
[$moreurl] //栏目(更多)链接
[$<pic>] //img 标签简写,原形:<img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]" />
[$<apic>] //带链接的图片简写,
原形:<a href="[$url]" target="_block"><img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]" /></a>
静态DIY(static) 可用
[$title1]
[$title2]
[$title3]
[$summary1]
[$summary2]
[$summary3]
[$pic1]
[$pic2]
[$pic3]
[$url1]
[$url2]
[$url3]
动态DIY(news show team job about)可用
[$cattitle]
[$catsubtitle]
[$caturl]
注意事项
1、每个DIY返回数据可以被最多遍历([loop])9次,如:
{diy type="static" id="test1" name="测试1" maxnum="10"} [loop] <div style="color:#BEE709"> <div>[$title]</div> <P>[$summary]</P> </div> [/loop] [loop1] <div style="color: #F00609"> <div>[$title]</div> <P>[$summary]</P> </div> [/loop1] [loop2] <div style="color: #0B1EEB"> <div>[$title]</div> <P>[$summary]</P> </div> [/loop2] <!--[loop3]...[/loop3]...--> {/diy}
2、每个 [loop] 里面最多可以声明 12 个 [orderX]
3、每个 [loop] 里面最多可以声明 9 个 [order/X]
4、{diy}、[loop]、[order] 里面都分别可以声明 picwidth picheight datestyle 属性,并且按照从里到外的优先级进行调用