当前位置:首页 > 开发教程 > dede教程 >

dedecms自定义字段排序

时间:2015-03-05 09:22 来源:互联网 作者:源码搜藏 收藏

用dedecms做一个视频教程站,需要添加一个新字段(第几集),然后按照集数排序。在网上找了很多方法没有实现,自己整理了一个简单的方法。需要改dede:arclist和dede:list标签的源文件。 工具/原料 dedecms 5.7 在内容模型管理-普通文章模型添加新字段number de

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

 

工具/原料

  • dedecms 5.7
  • 在内容模型管理-普通文章模型添加新字段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. 5

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

    大概763行,修改代码       

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

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

    dedecms自定义字段排序
    END

注意事项

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


dede教程阅读排行

最新文章