dedecms dede:list arclist自定义字段排序

阅读 次  ·  发布日期 2018-07-11 11:41  · 

用dedecms做一个视频教程站,需要添加一个新字段(第几集),然后按照集数排序。在网上找了很多方法没有实现,自己整理了一个简单的方法。需要改dede:arclist和dede:list标签的源文件。

  • 在内容模型管理-普通文章模型添加新字段number

dede:arclist修改

 
  1. 1

    找到dede:arclist标签源文件-include\taglib\arclist.lib.php

  2. 2

    在arclist.lib.php文件查找“//文档排序的方式”

     第335行左右添加代码

     else if($orderby == 'number') $ordersql = "  ORDER BY addf.number $orderWay";

     

     

    dedecms自定义字段排序
  3. 3

    原因可以在“//获取附加表信息”这段代码查看

    addf是新字段附加表的sql别名

     

    有差别可以自己调整

     

    dedecms自定义字段排序
  4. 4

    然后就可以在dede:arclist标签用orderby='number'排序

    dedecms自定义字段排序
    END










dede:list修改

 
  1. 找到dede:list标签源文件-include\arc.listview.class.php

    这个文件代码修改要多一些

     

  2. 在arc.listview.class.php页面查找“//排序方式”

    大概738行添加代码

    else if($orderby=="number") {            $ordersql = " ORDER BY addf.number $orderWay";        }

    dedecms自定义字段排序
  3. 查找“//获得附加表的相关信息”

    大概749行修改代码,加“//”的是原代码,"\\"是修改的代码(下同)

    //$addJoin = " LEFT JOIN `$addtable`  ON arc.id = ".$addtable.'.aid ';

     

    \\$addJoin = " LEFT JOIN `$addtable` addf ON arc.id = addf.aid ";

    dedecms自定义字段排序
  4. 大概763行,修改if..else...中的代码

    if(!empty($arr['rename'])) {       

    //$addField .= ','.$addtable.'.'.$k.' as '.$arr['rename'];      

    \\$addField .= ',addf.'.$k.' as '.$arr['rename'];                       

    }      else {        

     // $addField .= ','.$addtable.'.'.$k;        

     \\$addField .= ',addf.'.$k;                        }

    dedecms自定义字段排序
  5. 查找“//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)”

    大概763行,修改代码       

     //if(preg_match('/hot|click|lastpost/', $orderby))       

    \\if(preg_match('/hot|click|lastpost|number/', $orderby))

    dedecms自定义字段排序
    END


注意事项

 
  • 行数不相同的仔细比较一下代码


本站关键词:信宏达网络,信宏达科技,北京网站建设公司,北京网站建设,北京网站设计,北京企业网站建设,朝阳网站建设,海淀设计制作,西城网页设计,网站制作公司,北京高端网站建设,企业网站建设,北京建站,营销型网站建设,自适应网站制作,html5网站制作,上地做网站公司,西二旗网站建设,中关村网站建设,信宏达网络科技有限公司,北京信宏达网络科技有限公司