dede:list orderby=weight 按权重排序无效问题

找到list解析文件include/arc.listview.class.php
 发现排序规则里面并没有按照weight排序的判断,于是乎修改程序加入排序规则

 代码如下 复制代码
//排序方式
  $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";
  }

同时修改条件if(ereg('hot|click|lastpost',$orderby))为if(ereg('hot|click|lastpost|weight',$orderby)), [搜索 hot|click|lastpost 定位]
另外:
 
arclist 对weight的排序也不准确,需要加上一个isweight的属性

 代码如下 复制代码
{dede:arclist typeid='32' pagesize='20' isweight='Y' orderby='weight' orderway='asc'}
时间: 2024-10-27 17:17:59

dede:list orderby=weight 按权重排序无效问题的相关文章

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 $orderW

织梦cms利用weight排序无效的解决方法

涉及的文件是includetaglibarclist.lib.php文件: 第570行左右:  代码如下 复制代码 if ( $isweight=='y' ) 这一行代码简直是废柴,$orderWeight = list_sort_by($orderWeight, 'weight', 'asc');  对结果进行排序. 这个是有问题的,因为在得到这个$orderWeight之前,检索文档表的语句为:  代码如下 复制代码 SELECT arc.*,tp.typedir,tp.typename,t

dedecms 标签按照权重排序

arclist  标签按照权重排序,修改arclist.lib.php   大约在74 .75行找到:       // arclist是否需要weight排序,默认为"N",如果需要排序则设置为"Y"     $isweight = $ctag->GetAtt('isweight'); 把这行修改为:   $weight = $ctag->GetAtt('weight'); 大约在327行找到     //文档排序的方式     $ordersql =

solr入门之edismax权重排序使用之Java代码实现自定义权重

package com.git.edismax;   import java.io.IOException;      import org.apache.solr.client.solrj.SolrClient;   import org.apache.solr.client.solrj.SolrQuery;   import org.apache.solr.client.solrj.SolrServerException;   import org.apache.solr.client.so

link中OrderBy怎么按照星期排序?DayOfWeeks星期天排在了最前面,怎么回事?

问题描述 link中OrderBy怎么按照星期排序?DayOfWeeks星期天排在了最前面,怎么回事? link中OrderBy怎么按照星期排序?DayOfWeeks星期天排在了最前面,怎么回事? 解决方案 最简单的,你想要从某天开始就是 + 7 - n 再mod7 比如星期天 OrderBy(x => ((int)x.date.DayOfWeek + 6) % 7) 解决方案二: 西方国家,星期天认为是一周的第一天 解决方案三: 默认情况是星期天为一周的第一天, 但这个设置是可以修改的,所以合

解决mysql中文排序无效方法

解决方法: 1.对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary". 2.如果你使用源码编译MySQL,可以编译MySQL时使用 --with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了(默认的是latin1).也可以用 extra-charsets=gb2312,gbk 来加入多个字符集 解决方法二,不影响到其它mys

Dedecms 5.6/5.7 文章增加按权重weight排序小结

DEDECMS后台是有一个权重值,而且会提示你权重越小,文章排名越靠前,但是让人觉得扯淡的是,在DEDE老版本和新版本中,并没有相关的一个标签来调用这个种排列方式,只有通过我们自己修改,来达到我们想要的效果. 一.织梦 v5.6列表页标签{dede:list}增加按权重排序标签 织梦 v5.6版本已经中已经添加权重字段,并且在{dede:arclist标签中默认可以使用.但在列表页的标签 {dede:list中是还是无法按权重实现排序.其实解决方法很简单,下面给出方法: 1.在织梦系统中找到以下

sql-两个表各自排序后再按权重合并后排序问题?求指点,谢谢

问题描述 两个表各自排序后再按权重合并后排序问题?求指点,谢谢 原需求:这是个仓库自动入库策略, 共6台堆垛机,同时入库工作,要求根据入库物料在各堆垛机的分布数量,平均分布入库,同时考虑堆垛机入库任务数和繁忙程度.(对物料分布查询的结果和堆垛机任务查询的结果分别作比重排序(例如物料分布排序1-6,堆垛机任务数量排序1-6,两者相加最后综合排序1-6)找出需要入库的堆垛机.)实现过程:1.先查询需要入库的物料在各堆垛机所在巷道的分布,找出各个巷道物料数从小到大排序:排序的结果如下:(这个是从表A中

Java实现的权重算法(按权重展现广告)_java

基本算法描述如下: 1.每个广告增加权重 2.将所有匹配广告的权重相加sum, 3.以相加结果为随机数的种子,生成1~sum之间的随机数rd 4..接着遍历所有广告,访问顺序可以随意.将当前节点的权重值加上前面访问的各节点权重值得curWt,判断curWt >=  rd,如果条件成立则返回当前节点,如果不是则继续累加下一节点. 直到符合上面的条件,由于rd<=sum 因此一定存在curWt>=rd. 特别说明: 此算法和广告的顺序无关 import java.util.ArrayList