返回列表2017.02.22

常用方法

{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]
{/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]
{/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] 的时候有用到。只不过这种情况是极少的




{F}

作用:返回文件路径,本方法可以同时在 HTML 模板和 CSS 文件、JS文件中使用,注意在CSS和JS 中使用 的使用参数值必须使用双引号,且每行代码只能使用一次{F},需要注意的是,模板中任何出现文件路径应用的均需使用本方法,否则文件将找不到。

参数:

    file 基于模板的文件相对路径

语法:

{F file="images/banner.png"}


场景一:使用在HTML模板中

<a href="#">
    <img src="{F file="images/banner.png"}" width="200" height="100" alt="横幅"/>
</a>


场景二:使用在 CSS 文件中

div{ background:url({F file="images/tel_img.png"}) no-repeat center left;}


{yun_dump}

作用:在模板中打印变量

参数:

    val 需要打印的变量

语法:

{yun_dump val=$val}



{nocache}

作用:禁止缓存(成对)

语法:

{nocache}<htmlcode>{/nocache} //被{nocache}标签包围的地方不进行缓存
需要使用{nocache}包围的地方有:

需要用户登陆后可操作的地方,如发布文章按钮 和 编辑删除文章按钮等




{foreach}

作用:遍历数组(成对)

例子一:

<ul>
{foreach $list as $k => $v}
    <li>编号:{$k}<a href="{$_Y['basescript']}-article-{$v['aid']},html">{$v['title']}</a></li>
{/foreach}
</ul>

上例以数组的键名作为子元素的编号


例子二:

<ul>
{foreach $list as $v}
    <li>编号:{$v@index}<a href="{$_Y['basescript']}-article-{$v['aid']},html">{$v['title']}</a></li>
{/foreach}
</ul>

上例以数组子元素的下标(从0开始)作为编号


例子三:

<ul>
{foreach $list as $v}
    <li{if $v@iteration is div by 4} class="mr0"{/if}><a href="{$_Y['basescript']}-article-{$v['aid']},html">{$v['title']}</a></li>
    
{/foreach}
</ul>

$v@iteration 指的是循环的次数 从 1 开始,上例意思是在4的倍数的 li 上 应用 mr0 类


{for}

作用: 循环遍历数字 并赋值给 $foo

{for $foo=1 to 3}
    <li>{$foo}</li>
{/for}



{if}

作用:条件判断(成对)

语法

{if $i==1}
    <p>i等于1</p>
{elseif $i > 1}
    <p>i大于1</p>
{else}
    <p>i肯定是小于1</p>
{/if}



{date}

作用:返回格式化日期/时间(单标签)

参数:

    style 显示时间的格式 参考:点击跳转

    time 格林威治时间戳 

语法:

{date style="Y年m月d日 h:i" time=$v['dateline']}

说明:

    上例中的 $v['dateline'] 指的是时间戳变量




{isnavhover}

作用:返回导航高亮状态

参数:

    nav 需要判断的导航

    class[可选] 如果高亮的话 返回的类,默认为 a

语法:

<ul class="nav left cl">
    {if $_Y['nav']['top']}
    {foreach $_Y['nav']['top'] as $v}
    {if $v['level'] == 1 && $v['open']}
        <li {isnavhover nav=$v}><a href="{$v['url']}" target="{$v['target']}" title="{$v['subtitle']}">{$v['title']}</a></li>
    {/if}
    {/foreach}
    {/if}
</ul>

以上例子如果当前高亮的导航返回class="a"




{articlebysql}

作用:根据条件取出指定数目的文章信息

参数:

    mod 模块简称

    return    指定返回的数组名称

    catids    栏目ID

    pic    [可选] 是否过滤无封面内容 如果给定pic 的值(任何非空值)则会过滤无封面图片的文章

    limit     [可选] 数据条数 如果不给定该值 则默认返回 10 条数据

    notaids     [可选] 不包含的文章AID 给定的值将不在返回列表里,多个值用逗号隔开

    sub     [可选] 是否包含下级栏目内容 如果给定sub 的值(任何非空值)则会返回包含下级栏目的数据 

语法:

{articlebysql mod=$_Y['basescript'] limit=5 return="list" catids=$cat['catid']}
<ul>
{foreach $list as $v}
    <li{if $article['aid'] == $v['aid']} class="a"{/if}><a href="{$_Y['basescript']}-article-{$v['aid']}.html">{$v['title']}</a></li> 
{/foreach}
<ul>

以上例子会返回一个 变量名为 $list 的数组 并使用 foreach 打印出来 

{if $article['aid'] == $v['aid']} class="a"{/if}

****此处高亮判断仅在以文章标题为侧栏栏目时适用,非此状态下请删除该判断



{catsbysql}

作用:根据条件返回指定模块的栏目列表

参数:

    mod 模块简称

    return 返回的数组名称

    catid [可选]栏目ID 如果给定值则只返回该栏目在内的下级栏目,否则就返回指定mod下的所有栏目列表

语法:

{catsbysql mod="show" return="showcats"}
<ul>
{foreach $showcatsas as $v}
    <li><a href="show-list-{$v['catid']}-1.html">{$v['title']}</a></li> 
{/foreach}
</ul>



{catbymod}

作用:根据指定模块返回该模块的顶级栏目信息

参数:

    mod 模块简称

    return 返回的数组名称

语法:

{catbymod mod="show" return="showcat"}
<a href="show-list-{$showcat['catid']-1.html}">{showcat['title']}</a>