久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發帖
查看: 1087|回復: 9

[求助] 首頁四格最新主題如何實現最新主題+最新回復共同排序

63

主題

377

回帖

507

積分

自成一派

貢獻
6 點
金幣
5 個
樓主
發表于 2024-7-25 00:44:43 | 只看樓主 |倒序瀏覽 |閱讀模式
論壇文章都需要審核(休息,忘記審核時)每次訪問論壇時總是看到相同的帖子,用久厭倦了
我知道答案 回答被采納將會獲得1 貢獻 已有9人回答
回復

使用道具 舉報

19

主題

911

回帖

1036

積分

已臻大成

貢獻
12 點
金幣
15 個
QQ
沙發
發表于 2024-7-25 02:00:37 來自手機 | 只看Ta
最新主題,生成前五個,最新回復,生成后五個。它們統一用最新時間排序
回復

使用道具 舉報

29

主題

5599

回帖

1萬

積分

應用開發者

貢獻
598 點
金幣
1442 個
QQ
板凳
發表于 2024-7-25 07:58:59 | 只看Ta
你自己想好算法,找人開發幾百塊。

讓別人連算法都要給你想,那估計就上千了
回復

使用道具 舉報

63

主題

377

回帖

507

積分

自成一派

貢獻
6 點
金幣
5 個
地板
 樓主| 發表于 2024-7-25 20:42:05 | 只看Ta
湖中沉 發表于 2024-7-25 07:58
你自己想好算法,找人開發幾百塊。

讓別人連算法都要給你想,那估計就上千了 ...

算法版塊回復時間排序就行了,新帖和回帖序保證新鮮內容+提升優質內容兩全其美
算法在source/module/forum/forum_index.php   管理可以指點一下如何修改嗎
  1. $grids = array();
  2. if($_G['setting']['grid']['showgrid']) {
  3.         loadcache('grids');
  4.         $cachelife = $_G['setting']['grid']['cachelife'] ? $_G['setting']['grid']['cachelife'] : 600;
  5.         $now = dgmdate(TIMESTAMP, lang('forum/misc', 'y_m_d')).' '.lang('forum/misc', 'week_'.dgmdate(TIMESTAMP, 'w'));
  6.         if(TIMESTAMP - $_G['cache']['grids']['cachetime'] < $cachelife) {
  7.                 $grids = $_G['cache']['grids'];
  8.         } else {
  9.                 $images = array();
  10.                 $_G['setting']['grid']['fids'] = in_array(0, $_G['setting']['grid']['fids']) ? 0 : $_G['setting']['grid']['fids'];

  11.                 if($_G['setting']['grid']['gridtype']) {
  12.                         $grids['digest'] = C::t('forum_thread')->fetch_all_for_guide('digest', 0, array(), 3, 0, 0, 10, $_G['setting']['grid']['fids']);
  13.                 } else {
  14.                         $images = C::t('forum_threadimage')->fetch_all_order_by_tid_for_guide(10, 0, $_G['setting']['grid']['fids']);
  15.                         foreach($images as $key => $value) {
  16.                                 $tids[$value['tid']] = $value['tid'];
  17.                         }
  18.                         $grids['image'] = C::t('forum_thread')->fetch_all_by_tid($tids);
  19.                 }
  20.                 $grids['newthread'] = C::t('forum_thread')->fetch_all_for_guide('newthread', 0, array(), 0, 0, 0, 10, $_G['setting']['grid']['fids']);

  21.                 $grids['newreply'] = C::t('forum_thread')->fetch_all_for_guide('reply', 0, array(), 0, 0, 0, 10, $_G['setting']['grid']['fids']);
  22.                 $grids['hot'] = C::t('forum_thread')->fetch_all_for_guide('hot', 0, array(), 3, 0, 0, 10, $_G['setting']['grid']['fids']);

  23.                 $_G['forum_colorarray'] = array('', '#EE1B2E', '#EE5023', '#996600', '#3C9D40', '#2897C5', '#2B65B7', '#8F2A90', '#EC1282');
  24.                 foreach($grids as $type => $gridthreads) {
  25.                         foreach($gridthreads as $key => $gridthread) {
  26.                                 $gridthread['dateline'] = str_replace('"', '\'', dgmdate($gridthread['dateline'], 'u', '9999', getglobal('setting/dateformat')));
  27.                                 $gridthread['lastpost'] = str_replace('"', '\'', dgmdate($gridthread['lastpost'], 'u', '9999', getglobal('setting/dateformat')));
  28.                                 if($gridthread['highlight'] && $_G['setting']['grid']['highlight']) {
  29.                                         $string = sprintf('%02d', $gridthread['highlight']);
  30.                                         $stylestr = sprintf('%03b', $string[0]);

  31.                                         $gridthread['highlight'] = ' style="';
  32.                                         $gridthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
  33.                                         $gridthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
  34.                                         $gridthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
  35.                                         $gridthread['highlight'] .= $string[1] ? 'color: '.$_G['forum_colorarray'][$string[1]] : '';
  36.                                         $gridthread['highlight'] .= '"';
  37.                                 } else {
  38.                                         $gridthread['highlight'] = '';
  39.                                 }
  40.                                 if($_G['setting']['grid']['textleng']) {
  41.                                         $gridthread['oldsubject'] = dhtmlspecialchars($gridthread['subject']);
  42.                                         $gridthread['subject'] = cutstr($gridthread['subject'], $_G['setting']['grid']['textleng']);
  43.                                 }

  44.                                 $grids[$type][$key] = $gridthread;
  45.                         }
  46.                 }
  47.                 if(!$_G['setting']['grid']['gridtype']) {

  48.                         $grids['slide'] = $focuspic = $focusurl = $focustext = array();
  49.                         $grids['focus'] = 'config=5|0xffffff|0x0099ff|50|0xffffff|0x0099ff|0x000000';
  50.                         foreach($grids['image'] as $ithread) {
  51.                                 if($ithread['displayorder'] < 0) {
  52.                                         continue;
  53.                                 }
  54.                                 if($images[$ithread['tid']]['remote']) {
  55.                                         $imageurl = $_G['setting']['ftp']['attachurl'].'forum/'.$images[$ithread['tid']]['attachment'];
  56.                                 } else {
  57.                                         $imageurl = $_G['setting']['attachurl'].'forum/'.$images[$ithread['tid']]['attachment'];
  58.                                 }
  59.                                 $grids['slide'][$ithread['tid']] = array(
  60.                                                 'image' => $imageurl,
  61.                                                 'url' => 'forum.php?mod=viewthread&tid='.$ithread['tid'],
  62.                                                 'subject' => addslashes($ithread['subject'])
  63.                                         );
  64.                         }
  65.                         $grids['slide'] = array_reverse($grids['slide'], true);
  66.                 }
  67.                 $grids['cachetime'] = TIMESTAMP;
  68.                 savecache('grids', $grids);
  69.         }
復制代碼
模板插入點

template/default/touch/forum/discuz.htm

  1.   </div>
  2.                 <div id="tabs-box" class="swiper-container listbox cl">
  3.                         <div class="swiper-wrapper">
  4.                                 <div class="swiper-slide">
  5.                                         <ul>
  6.                                         <!--{loop $grids['newthread'] $thread}-->
  7.                                         <!--{if !$thread['forumstick'] && $thread['closed'] > 1 && ($thread['isgroup'] == 1 || $thread['fid'] != $_G['fid'])}-->
  8.                                                 <!--{eval $thread['tid']=$thread['closed'];}-->
  9.                                         <!--{/if}-->
  10.                                         <!--{eval $i++;}-->
  11.                                         <!--{eval $typeid = $tids_typeids[$thread['tid']];}-->
  12.                                         <li><a href="forum.php?mod=viewthread&tid=$thread['tid']"{if $thread['highlight']} $thread['highlight']{/if}><span class="mybk">[{$typeid_name[$typeid][name]}]</span><span class="mnum">$i</span>{$thread['oldsubject']}</a></li>
  13.                                         <!--{/loop}-->
  14.                                         </ul>
  15.                                 </div>
復制代碼




回復

使用道具 舉報

29

主題

5599

回帖

1萬

積分

應用開發者

貢獻
598 點
金幣
1442 個
QQ
5#
發表于 2024-7-26 08:12:03 | 只看Ta
amw111 發表于 2024-7-25 20:42
算法版塊回復時間排序就行了,新帖和回帖序保證新鮮內容+提升優質內容兩全其美
算法在source/module/foru ...

現有的算法不是不滿足你嘛,你不是要混合排序嘛,那原來的算法就沒任何作用了,混合不是說兩個東西湊到一起就完事了的,混合是全新的一套算法了
回復

使用道具 舉報

63

主題

377

回帖

507

積分

自成一派

貢獻
6 點
金幣
5 個
6#
 樓主| 發表于 2024-7-26 09:27:07 | 只看Ta
湖中沉 發表于 2024-7-26 08:12
現有的算法不是不滿足你嘛,你不是要混合排序嘛,那原來的算法就沒任何作用了,混合不是說兩個東西湊到一 ...

啊啊啊啊啊啊啊啊
回復

使用道具 舉報

63

主題

377

回帖

507

積分

自成一派

貢獻
6 點
金幣
5 個
7#
 樓主| 發表于 2024-8-4 20:56:49 | 只看Ta
修改方法
第一步


template/default/touch/forum/discuz.htm
搜索<!--{loop $grids['newthread'] $thread}-->

修改為<!--{loop $grids['lastpost'] $thread}-->
第二步
source/module/forum/forum_index.php

搜索$grids['newthread'] = C::t('forum_thread')->fetch_all_for_guide('newthread', 0, array(), 0, 0, 0, 10, $_G['setting']['grid']['fids']);

修改為

$grids['lastpost'] = C::t('forum_thread')->fetch_all_for_guide('lastpost', 0, array(), 0, 0, 0, 10, $_G['setting']['grid']['fids']);

回復

使用道具 舉報

13

主題

3110

回帖

5287

積分

應用開發者

貢獻
366 點
金幣
158 個
QQ
8#
發表于 2024-8-6 07:32:33 | 只看Ta
amw111 發表于 2024-8-4 20:56
修改方法
第一步

查了一下  fetch_all_for_guide 這個方法,

按你這個寫法 僅僅是 按 "最后回復時間 " 倒序排列;

修改前 是按 主題發布時間 倒序排列;

回復

使用道具 舉報

63

主題

377

回帖

507

積分

自成一派

貢獻
6 點
金幣
5 個
9#
 樓主| 發表于 2024-8-6 08:09:28 | 只看Ta
天外飄仙 發表于 2024-8-6 07:32
查了一下  fetch_all_for_guide 這個方法,

按你這個寫法 僅僅是 按 "最后回復時間 " 倒序排列;

對啊  看不懂代碼 對于你來  僅是僅僅
回復

使用道具 舉報

13

主題

3110

回帖

5287

積分

應用開發者

貢獻
366 點
金幣
158 個
QQ
10#
發表于 2024-8-6 08:58:24 | 只看Ta
amw111 發表于 2024-8-6 08:09
對啊  看不懂代碼 對于你來  僅是僅僅

我說僅僅的意思是:

你這代碼 實現的效果 和 你前邊寫的 要求不符
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-7-4 21:24 , Processed in 0.071760 second(s), 10 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表