織夢文章列表中,比如我要求顯示最新文章,并按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";
- }