• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > DEDECMS给list标签加上多字段排序功能

DEDECMS给list标签加上多字段排序功能

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了等相关知识,希望对您有所帮助
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'} 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2022-04-29趣味讲解Node.js中的回调函数(附示例)
  • 2022-04-29PhotoShop图层样式制作透明质感玻璃文字效果教程
  • 2022-04-29HTML用JS导出Excel的五种方法
  • 2022-04-29PHP微信小程序解包过程实例详解
  • 2022-04-29解决Laravel在composer install时出现timeout问题
  • 2022-04-29WordPress如何插入视频?WP文章插入视频代码方法
  • 2022-04-29随着微信支付的升级,PHP微信支付类V3接口也来了
  • 2022-04-29详解PHP中的PDO::quote(附代码实例)
  • 2022-04-29浅谈小程序怎么实现“五星评价”功能(支持点击+滑动)
  • 2022-04-29Day.js :一个非常好用的轻量的处理时间和日期库

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 详解在TP中怎么引入ThinkWechat.php并打印日志
    • ThinkPHP框架实现的邮箱激活功能示例
    • Photoshop设计金属立体效果的APP图标
    • 网站上线前需要做的优化准备工作
    • 在CSS中怎么给按钮添加背景图片(详解及实例)
    • php浮点数float运算中转整型int问题
    • Windows/Linux下Composer的安装与使用(详解)
    • 实例详解之怎样使用css实现3D穿梭效果
    • PHP怎么判断一个客户端是手机还是电脑
    • Photoshop制作网页加载动画教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有