diff --git a/src/system/archive/listview.class.php b/src/system/archive/listview.class.php index b33bb118..6f821a95 100755 --- a/src/system/archive/listview.class.php +++ b/src/system/archive/listview.class.php @@ -417,12 +417,20 @@ class ListView } //排序方式 $ordersql = ''; - if ($orderby == "senddate" || $orderby == "id") { + if ($orderby == "senddate") { + $ordersql = " ORDER BY arc.senddate $orderWay"; + } else if ($orderby == "pubdate") { + $ordersql = " ORDER BY arc.pubdate $orderWay"; + } else if ($orderby == "id") { $ordersql = " ORDER BY arc.id $orderWay"; } else if ($orderby == "hot" || $orderby == "click") { $ordersql = " ORDER BY arc.click $orderWay"; } else if ($orderby == "lastpost") { $ordersql = " ORDER BY arc.lastpost $orderWay"; + } else if ($orderby == "scores") { + $ordersql = " ORDER BY arc.scores $orderWay"; + } else if ($orderby == "rand") { + $ordersql = " ORDER BY rand() DESC"; } else { $ordersql = " ORDER BY arc.sortrank $orderWay"; } @@ -463,7 +471,7 @@ class ListView $addJoin = ''; } //如果不用默认的sortrank或id排序,使用联合查询数据量大时非常缓慢 - if (preg_match('/hot|click|lastpost/', $orderby)) { + if (preg_match('/hot|click|lastpost|rand/', $orderby)) { $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face,mb.userid $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb ON arc.mid=mb.mid $addJoin WHERE {$this->addSql} $filtersql $ordersql LIMIT $limitstart,$row"; } //普通情况先从arctiny表查出id,然后按id查询速度非常快 @@ -831,12 +839,20 @@ class ListView } //排序方式 $ordersql = ''; - if ($orderby == "senddate" || $orderby == "id") { + if ($orderby == "senddate") { + $ordersql = " ORDER BY arc.senddate $orderWay"; + } else if ($orderby == "pubdate") { + $ordersql = " ORDER BY arc.pubdate $orderWay"; + } else if ($orderby == "id") { $ordersql = " ORDER BY arc.id $orderWay"; } else if ($orderby == "hot" || $orderby == "click") { $ordersql = " ORDER BY arc.click $orderWay"; } else if ($orderby == "lastpost") { $ordersql = " ORDER BY arc.lastpost $orderWay"; + } else if ($orderby == "scores") { + $ordersql = " ORDER BY arc.scores $orderWay"; + } else if ($orderby == "rand") { + $ordersql = " ORDER BY rand() DESC"; } else { $ordersql = " ORDER BY arc.sortrank $orderWay"; } @@ -877,7 +893,7 @@ class ListView $addJoin = ''; } //如果不用默认的sortrank或id排序,使用联合查询数据量大时非常缓慢 - if (preg_match('/hot|click|lastpost/', $orderby)) { + if (preg_match('/hot|click|lastpost|rand/', $orderby)) { $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face,mb.userid $addField FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb ON arc.mid=mb.mid $addJoin WHERE {$this->addSql} $filtersql $ordersql LIMIT $limitstart,$row"; } //普通情况先从arctiny表查出id,然后按di查询速度非常快