织梦栏目列表list增加多个字段排序

我们需要操作的就是修改织梦内核的文件

教程如下

打开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='10' orderby='arc.title desc,arc.id'}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfzps.html