• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    Dedecms的列表页/内容页子栏目循环 实现方法
    POST TIME:2018-08-14 15:27

    在织梦(DedeCMS)系统中,可以用channelartlist标签进行循环子栏目及其栏目的文档数据,这也是织梦(DedeCMS)系统中,唯一一个支持标签嵌套的调用标签,以DedeV5.6新版举例,他的基本调用方法为:

    引用
    <div class="listbox">
    {dede:channelartlist}
    <dl class="tbox">
    <dt><strong><a href="{dede:field name=’typeurl’/}">{dede:field name=’typename’/}</a></strong><span class="more"><a href="{dede:field name=’typeurl’/}">更多…</a></span></dt>
    <dd>
    <ul class="d1 ico3">
    {dede:arclist titlelen=’60′ row=’8′}
    <li><span>[field:pubdate function="MyDate('m-d',@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li>
    {/dede:arclist}
    </ul>
    </dd>
    </dl>
    {/dede:channelartlist}
    </div>

    以上标签来源于DedeCMS V5.6 默认首页模板;

    至于该标签的具体含义这里不再一一熬述,我们重点讲解在列表页/内容页的具体使用;

    1)参数简介

    channelartlist标签暂时支持三个参数,分别为:

    typeid=’0′ 限制上级栏目ID;也可以用top,支持“,”表示多个栏目
    row=’20′ 循环的栏目数量,默认为20;
    cacheid = ” 标签缓存ID,一般为空

    很多人,经常将上诉标签支持复制到终极栏目页或内容页,很遗憾的是不会出现任何调用结果。因为这里大家可能受到了官方帮助文档不足所带来的遗憾,因为在这个标签中,当typeid为空,那么则表示当前栏目,但是终极栏目列表和内容页是没有下级栏目的,所以这里就会出错!

    2)调用实例

    在终极列表页或内容页,正确的调用方法应该是以下的:

    
    	
    1. <divclass="listbox">
    2. {dede:channelartlisttypeid='top'}
    3. <dlclass="tbox">
    4. <dt><strong><ahref="{dede:fieldname='typeurl'/}">{dede:fieldname='typename'/}</a></strong><spanclass="more"><ahref="{dede:fieldname='typeurl'/}">更多...</a></span></dt>
    5. <dd>
    6. <ulclass="d1ico3">
    7. {dede:arclisttitlelen='60'row='8'}
    8. <li><span>[field:pubdatefunction="MyDate('m-d',@me)"/]</span><ahref="[field:arcurl/]">[field:title/]</a></li>
    9. {/dede:arclist}
    10. </ul>
    11. </dd>
    12. </dl>
    13. {/dede:channelartlist}
    14. </div>

    这里是typied=’top’,这个top值可以换为你想要的上级栏目ID,但绝对是不可以为空的。这个大家一定要注意!

    3)栏目高亮

    从上面的代码中,大家可以看到,是可以直接分别用{dede:field name=’typename’/}与{dede:field name=’typeurl’/}来表示栏目名称与栏目链接的,当然还有一些其它特殊的变量,这里不防给大家贴出来:

    {dede:field name=’id’/}与{dede:field name=’typeid’/} 均表示循环中的栏目ID;

     

    {dede:global name=’itemindex’} 表示循环递增变量,从1开始;

    {dede:global name=’itemparity’} 表示循环魔法变量,单数为1,双数为2;

     

    以上就是可以在channelartlist中直接套用的,特别要注意的是第2个与第三个;拥有这两个变量,可以轻松制作出各类非常个性的效果,例如栏目的隔行变色等;

    关于这个栏目高亮,在channelartlist.lib.php虽然系统并没有自带,但我们可以自行制作,让当前栏目进行高亮。

    制作方法:

    打开channelartlist.lib.php文件,找到如下代码:

    在其下一行加入一下代码:

    引用

    $pv->Fields['typeurl']=GetOneTypeUrlA($typeids[$i]);
    if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){ $pv->Fields['currentstyle'] = ‘ id="pic_focus"’; } else{ $pv->Fields['currentstyle'] = ”; }

    然后,就可以在模板中进行使用{dede:field name=’currentstyle’/}进行调用了。

    4)效果预览


    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!