您现在的位置是:首页 > 教程 > dedecms教程dedecms教程

织梦dedecms列表页根据个别字段值实现排序的方法

春儿2023-09-17 21:45:51dedecms教程已有人查阅

导读织梦文章列表中,比如我要求显示较新文章,并按id降序排列,但是,附加表中有一个字段,就叫结束时间的endtime字段,要求按这个字段的值重新排序

织梦文章列表中,比如我要求显示较新文章,并按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";
}

本文标签:

很赞哦! ()

留言与评论 (共有 条评论)
验证码:

本栏推荐

相关标签