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

织梦文章列表中,比如我要求显示最新文章,并按id降序排列,但是,附加表中有一个字段,就叫结束时间的endtime字段,要求按这个字段的值重新排序.比如要求,如果结束时间的值小于系统当前时间,则这个字段值对应的文档自动放到文章列表的最结尾显示.

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

 

 

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

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

修改为,意思是说,如果文档是已经结束活动的信息,与进行中的分开运算.最后进行拼接.这样,就可以把本已按id降序调用好的20个文章列表,进行重新调整位置后,再显示

 

 

 

if($row['myendtime']!=''){
					if($row['myendtime']<time()){//已结束的活动
					
					$artlist2 .= $this->dtp2->GetResult();
				}else{
					$artlist1 .= $this->dtp2->GetResult();
					}
					$artlist=$artlist1.$artlist2;
					
					}else{
					$artlist .= $this->dtp2->GetResult();
					}

 

 

 

 

 

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

$liststr = $dtp2->GetResult();
      $artlist.= $liststr."\r\n"; 

​整体替换为

$liststr = $dtp2->GetResult();
     
     if($row['myendtime']!=''){
     if($row['myendtime']<time()){//已结束的活动
     
                    $artlist2 .= $liststr."\r\n";
    }else{
   
                    $artlist1 .= $liststr."\r\n";
     }
     $artlist=$artlist1.$artlist2;
     
     }else{
      $artlist.= $liststr."\r\n";
     } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值