返回列表2015.09.24

用户自定义数据方法 diy

用户自定义数据方法 {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 属性,并且按照从里到外的优先级进行调用