专栏首页ytkahdede:arclist orderby=weight dedecms列表页文章按权重排序无效问题

dede:arclist orderby=weight dedecms列表页文章按权重排序无效问题

  平时我们有时会发现dedecms列表页文章按权重排序无效问题,找到list解析文件include/arc.listview.class.ph,发现排序规则里面并没有按照weight排序的判断,于是乎修改程序加入排序规则,大概在771行,加入下面红色代码

    //排序方式
      $ordersql = '';
      if($orderby=="senddate" || $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=="weight") {
       $ordersql = "  order by arc.weight $orderWay";
      }
      else {
       $ordersql=" order by arc.sortrank $orderWay";
      }

  同时修改条件,在812行左右,加入|weight参数

        //如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
        if(preg_match('/hot|click|lastpost|weight/', $orderby))

  有的朋友反映说改了不能用,再改一个地方:/include/taglib/arclist.lib.php加入红色的语句

    //文档排序的方式
    $ordersql = '';
    if($orderby=='hot' || $orderby=='click') $ordersql = " ORDER BY arc.click $orderWay";
    else if($orderby == 'sortrank' || $orderby=='pubdate') $ordersql = " ORDER BY arc.sortrank $orderWay";
    else if($orderby == 'id') $ordersql = "  ORDER BY arc.id $orderWay";
    else if($orderby == 'near') $ordersql = " ORDER BY ABS(arc.id - ".$arcid.")";
    else if($orderby == 'lastpost') $ordersql = "  ORDER BY arc.lastpost $orderWay";
	else if($orderby == 'weight') $ordersql = "  ORDER BY arc.weight $orderWay";
    else if($orderby == 'scores') $ordersql = "  ORDER BY arc.scores $orderWay";
    //功能:增加按好评数和差评数调用
    else if($orderby == 'goodpost') $ordersql = " order by arc.goodpost $orderWay";
    else if($orderby == 'badpost') $ordersql = " order by arc.badpost $orderWay";
    else if($orderby == 'rand') $ordersql = "  ORDER BY rand()";
    else $ordersql = " ORDER BY arc.sortrank $orderWay"; 

  arclist 对weight的排序也不准确,在模板调用时,需要加上一个isweight的属性,如下红色代码

{dede:arclist typeid='32' pagesize='20' isweight='Y' orderby='weight' orderway='asc'}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • finecms同时调用子栏目和子栏目的文章怎么操作

      之前ytkah写过dedecms如何调用当前栏目的子栏目及子栏目文章,那如果是finecms如何同时调用子栏目和子栏目的文章呢?           {li...

    ytkah
  • 另类保存微信公众平台历史消息的方法 - 星标消息

      前面怎样把微信聊天记录导出备份到电脑【微信公众平台技巧】介绍的通过复制源代码来保存微信公众平台历史消息的方法,有网友反映说不会用批量替换、不会批量换行保存,...

    ytkah
  • 如何修改dedecms专题目录默认名称special

      专题有一个聚合的效果,一般会比普通的文章页更符合用户需求。如果用dedecms建专题的话,默认的目录是special,怎么修改修改dedecms专题目录名称...

    ytkah
  • 五分钟学Java:如何学习后端工程师都要懂的消息队列

    “RabbitMQ?”“Kafka?”“RocketMQ?”...在日常学习与开发过程中,我们常常听到消息队列这个关键词,可能你是熟练使用消息队列的老手,又或者...

    Java技术江湖
  • 五分钟学后端技术:如何学习后端工程师必学的消息队列

    “RabbitMQ?”“Kafka?”“RocketMQ?”...在日常学习与开发过程中,我们常常听到消息队列这个关键词,可能你是熟练使用消息队列的老手,又或者...

    黄小斜
  • 基于LP松弛的客观稳健离散优化的黑盒削减问题

    摘要:我们考虑稳健的离散最小化问题,其中不确定性由目标中的凸集定义。 我们展示了如何使用非稳健性问题的线性规划松弛的完整性间隙验证器来推导出稳健版本的近似算法。

    罗大琦
  • SAP UI5里note显示控件里对于使用者图标的控制逻辑

    We find so far, the person icon always displays a default icon even ( red ) even...

    Jerry Wang
  • mac python3 安装 mysqlclient包失败如何解救

    安装命令 pip3 install mysqlclient 报错信息1 Collecting mysqlclient Retrying (Retry(t...

    98k
  • harbor使用自签名证书实现https

    前面说了怎么搭建harbor仓库,这里讲一讲harbor实现https访问,因为只需要内网访问,没必要去申请一个ssl证书,所以我就用openssl颁发自签名证...

    kevinfaith
  • SwiftUI:使自定义类型符合 Comparable 协议

    在编写Swift代码时,我们会想到很多东西。例如,如果我们写4 < 5,我们期望返回true – Swift的开发人员(以及LLVM,Swift后面的更大的编译...

    韦弦zhy

扫码关注云+社区

领取腾讯云代金券