国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > 織夢DEDE > 正文

DEDECMS給list標簽加上多字段排序功能

2024-07-12 08:24:53
字體:
來源:轉載
供稿:網友

dedecms的list標簽orderby屬性只支持按一個字段排序,假如想多個字段排序的話,就需要對PHP舉辦修改,使其可以支持多字段排序,修改如下:

打開include/arc.listview.class.php,找到:
 

//假如不消默認的sortrank或id排序,利用連系查詢(數據量大時很是遲鈍)       if(preg_match('/hot|click|lastpost|title/', $orderby))       {           $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,          tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath          $addField          FROM `js_archives` arc          LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id          $addJoin          WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";       }       //普通環境先從arctiny表查出ID,然后按ID查詢(速度很是快)       else       {           $t1 = ExecTime();           $ids = array();           $query = "SELECT id FROM `js_arctiny` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";           $this->dsql->SetQuery($query);           $this->dsql->Execute();           while($arr=$this->dsql->GetArray())           {               $ids[] = $arr['id'];           }           $idstr = join(',',$ids);           if($idstr=='')           {              return '';         }           else           {               $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,                      tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath                      $addField                      FROM `js_archives` arc LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id                      $addJoin                      WHERE arc.id in($idstr) $ordersql ";           }           $t2 = ExecTime();           //echo $t2-$t1;         }
 

替換為:

if($orderby=="default")       {           $t1 = ExecTime();           $ids = array();           $query = "SELECT id FROM `js_arctiny` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";           $this->dsql->SetQuery($query);           $this->dsql->Execute();           while($arr=$this->dsql->GetArray())           {               $ids[] = $arr['id'];          }           $idstr = join(',',$ids);           if($idstr=='')           {               return '';           }           else           {               $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,                      tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath                      $addField                      FROM `js_archives` arc LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id                      $addJoin                      WHERE arc.id in($idstr) $ordersql ";           }           $t2 = ExecTime();           //echo $t2-$t1;         }        else       {           $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,          tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath          $addField          FROM `js_archives` arc          LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id          $addJoin          WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";       }

找到:

	else {            $ordersql=" ORDER BY arc.sortrank $orderWay";      }

替換為:
 

else if($orderby=="default"){            $ordersql=" ORDER BY arc.sortrank $orderWay";        }        else{           $ordersql=" ORDER BY ".$orderby.",arc.sortrank $orderWay";        }
 

此刻在模板中就可以應用了多字段排序了,模板應用如下:

{dede:list pagesize='17' orderby='arc.title desc,arc.id'}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永登县| 平潭县| 石首市| 林周县| 璧山县| 刚察县| 凤台县| 长泰县| 自治县| 卓资县| 桂东县| 酒泉市| 晋中市| 耒阳市| 辽中县| 仙居县| 庆阳市| 沂水县| 济阳县| 兴和县| 寻甸| 定结县| 青神县| 崇左市| 泰宁县| 湖北省| 东丽区| 哈巴河县| 长兴县| 柳江县| 杨浦区| 龙川县| 罗甸县| 双牌县| 乌什县| 安岳县| 恩施市| 蒙城县| 嘉峪关市| 宜兰县| 页游|