找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1372|回复: 0

[分享] 织梦dedecms列表页显示顺序,根据个别字段值实现重新排列

[复制链接]
发表于 2018-7-29 14:43:01 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
织梦文章列表中,比如我要求显示最新文章,并按id降序排列,但是,附加表中有一个字段,就叫结束时间的endtime字段,要求按这个字段的值重新排序.比如要求,如果结束时间的值小于系统当前时间,则这个字段值对应的文档自动放到文章列表的最结尾显示.

在文章列表中.要求结束的活动自动排到最后面显示.怎么实现呢

需要修改系统文件.include\arc.listview.class.PHP

找到类似这句
$artlist1 .= $this->dtp2->GetResult();


修改为,意思是说,如果文档是已经结束活动的信息,与进行中的分开运算.最后进行拼接.这样,就可以把本已按id降序调用好的20个文章列表,进行重新调整位置后,再显示
  1. if($row['myendtime']!=''){  
  2.                     if($row['myendtime']<time()){//已结束的活动  
  3.                      
  4.                     $artlist2 .= $this->dtp2->GetResult();  
  5.                 }else{  
  6.                     $artlist1 .= $this->dtp2->GetResult();  
  7.                     }  
  8.                     $artlist=$artlist1.$artlist2;  
  9.                      
  10.                     }else{  
  11.                     $artlist .= $this->dtp2->GetResult();  
  12.                     }  
复制代码



如果是网站首页.用dede:arclist调用列表.则需要修改另外一个文件.\include\taglib\arclist.lib.php,找到下面两句.


  1. $liststr = $dtp2->GetResult();  
  2. $artlist.= $liststr."\r\n";
复制代码

  
&#8203;整体替换为
  1. $liststr = $dtp2->GetResult();  
  2.       
  3.      if($row['myendtime']!=''){  
  4.      if($row['myendtime']<time()){//已结束的活动  
  5.       
  6.                     $artlist2 .= $liststr."\r\n";  
  7.     }else{  
  8.      
  9.                     $artlist1 .= $liststr."\r\n";  
  10.      }  
  11.      $artlist=$artlist1.$artlist2;  
  12.       
  13.      }else{  
  14.       $artlist.= $liststr."\r\n";  
  15.      }   
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-30 15:38 , Processed in 0.042250 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表