专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
PHP
当前位置:首页 > 技术文档 > PHP >  > 
dedecms List 分页标签自定义排序

织梦中  List 是分页列表所用标签,可惜不支持自定义排序。此修改针对于 独立模型 文章排序修改 /include/arc.listview.class.php 即可,原理同下。

/plus/list.php

if($tinfos['issystem']==-1) // 如果不是系统模型 则实例化 SgListView()
{
    $nativeplace = ( (empty($nativeplace) || !is_numeric($nativeplace)) ? 0 : $nativeplace );
    $infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype );
    if(!empty($keyword)) $keyword = FilterSearch($keyword);
    $cArr = array();
    if(!empty($nativeplace)) $cArr['nativeplace'] = $nativeplace;
    if(!empty($infotype)) $cArr['infotype'] = $infotype;
    if(!empty($keyword)) $cArr['keyword'] = $keyword;
    include(DEDEINC."/arc.sglistview.class.php");
    $lv = new SgListView($tid,$cArr);
}

打开 /include/arc.sglistview.class.php 690 行

  //如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
        if(true || preg_match('/hot|click/', $orderby) || $this->sAddTable) /./修改行
        {
            $query = "SELECT tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,
            tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,arc.aid,arc.aid AS id,arc.typeid,
            $addField
            FROM `{$this->AddTable}` arc
            LEFT JOIN `qrx_arctype` tp ON arc.typeid=tp.id
            WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";
            //echo $query;
        }

注意修改以后,使用自定义排序有损性能。生成的时间在长一些。