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

    织梦的文章列表按权重排序
    POST TIME:2017-11-30 22:26

    DEDECMS(织梦)5.6系统支持文档权重weight排序,可以在模板中使用:

    {dede:arclistrow='10'titlelen='50'orderby='weight'}?[field:textlink/]<br/>{/dede:arclist}

    其中的orderby=’weight’就实现了文档按照权重排序了。这是arclist标签,可以用在任何位置来调用文档列表,然而,在栏目列表页,如果你要使用list标签(实现文档列表分页),也想用权重(weight)排序,

    {dede:listpagesize='10'titlelen='50'orderby='weight'}?[field:textlink/]<br/>{/dede:list}

    你 会发现,你的列表并没有按照权重(weight)排序,无论你怎么修改,它的顺序就还是老样子!经过多次测试,发现原来dedecms织梦对权 重weight排序的支持仅arclist标签,并不支持list标签,因此,就开始了对dedecms织梦系统的改造,让它支持list标签权 重weight排序,改造的文件主要是include目录下的arc.listview.class.php文件,打开文件,查找 “elseif($orderby==”lastpost”){”语句,大概在726行,在此行前面按下回车健,插入如下语句:

    elseif($orderby=="weight"){$ordersql="orderbyarc.weight$orderWay";}

    成为这样:

    //排序方式
    $ordersql='';
    if($orderby=="senddate"||$orderby=="id"){
    $ordersql="orderbyarc.id$orderWay";
    }
    elseif($orderby=="hot"||$orderby=="click"){
    $ordersql="orderbyarc.click$orderWay";
    }
    elseif($orderby=="lastpost"){
    $ordersql="orderbyarc.lastpost$orderWay";
    }
    elseif($orderby=="weight"){
    $ordersql="orderbyarc.weight$orderWay";
    }
    else{
    $ordersql="orderbyarc.sortrank$orderWay";
    }

    继续查找:

    if(ereg('hot|click|lastpost',$orderby))

    语句,修改为:

    if(ereg('hot|click|weight|lastpost',$orderby))

    修改完成后,保存,如果目标里面已经使用了weight排序,生成一下,就可以看到,文档列表已经安装weight排序
    后记:进行了上面的修改,可以实现按照权重weight排序,但是,如果不在模板中写明orderway=”asc”,无法实现权重越小越靠前,

    解决方案1:

    {dede:listpagesize='10'orderby='weight'orderway='asc'}?[field:textlink/]<br/>{/dede:list}

    要实现越重越大越靠前,只需要将上述代码中的“orderway=’asc’”去掉就可以了。
    究其深层原因,是arc.listview.class.php文件中,693行:

    $imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$innertext="",$tablewidth="100",$ismake=1,$orderWay='desc')

    默认排序方式是降序排列,而非升序,考虑其它常用排序,如puddate等,此处不要修改的好。

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

    截屏,微信识别二维码

    微信号:veteran88

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

     打开微信

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