DEDECMS給list標簽加上多字段排序功能,DEDE技術
導讀:DEDE技術DEDE技術dedecms的list標簽orderby屬性只支持按一個字段排序,假如想多個字段排序的話,就需要對PHP舉辦修改,使其可以支持多字段排序,修改如下:打開incdede模板下載dede網站模板。
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.m手機模板dedeoresite,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 $limitstadede下瓻模板下載rt,$row"; }聲明: 本文由我的SEOUC技術文章主頁發布于:2023-07-19 ,文章DEDECMS給list標簽加上多字段排序功能,DEDE技術主要講述標簽,字段,CMS網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_30315.html