From 3cccabed0d6863d6e7d3d4b2ada212f7cb5318f5 Mon Sep 17 00:00:00 2001 From: brotherand2 <547996854@qq.com> Date: Wed, 27 Apr 2022 06:35:59 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=20=E5=B8=96=E5=86=85?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E5=B8=96=E5=AD=90=E5=9C=A8=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=88=96=E5=AE=A1=E6=A0=B8=E7=8A=B6=E6=80=81=E6=97=B6=E5=80=92?= =?UTF-8?q?=E5=BA=8F=E6=B5=8F=E8=A7=88=E6=A5=BC=E5=B1=82=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=20=E5=B8=96=E5=AD=90=E5=BC=82=E5=B8=B8,?= =?UTF-8?q?=E5=A6=82=E5=88=A0=E9=99=A4=E5=9C=A8=E5=9B=9E=E6=94=B6=E7=AB=99?= =?UTF-8?q?,=E5=AE=A1=E6=A0=B8=E7=8A=B6=E6=80=81=E6=97=B6,=E4=BC=9A?= =?UTF-8?q?=E5=9C=A8forum=5Fthreaddisablepos=E8=A1=A8=E8=AE=B0=E5=BD=95,po?= =?UTF-8?q?sition=E5=AD=97=E6=AE=B5=E5=B0=B1=E5=A4=B1=E6=95=88=E4=BA=86,?= =?UTF-8?q?=E8=A6=81=E9=87=8D=E6=96=B0=E6=8E=92=E6=A5=BC=E5=B1=82,?= =?UTF-8?q?=E5=80=92=E5=BA=8F=E6=97=B6=E4=BC=9A=E5=8F=91=E7=94=9F=E6=A5=BC?= =?UTF-8?q?=E5=B1=82=E5=BC=82=E5=B8=B8=E6=98=BE=E7=A4=BA=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=A6=82=E4=B8=8B:=201=20=E5=BD=93=E5=B8=96=E5=AD=90?= =?UTF-8?q?=E6=9C=89=E6=8E=A8=E8=8D=90,=E7=BD=AE=E9=A1=B6=E6=97=B6,?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E7=BD=AE=E9=A1=B6=E7=9A=84=E5=B8=96=E5=AD=90?= =?UTF-8?q?=E7=AE=97=E4=BA=86=E6=A5=BC=E5=B1=82=E7=BC=96=E5=8F=B7,?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E9=A1=B5=E6=9C=AC=E6=9D=A5=E6=98=AF=E5=87=8F?= =?UTF-8?q?=E5=88=B010,=E5=8F=98=E6=88=90=E5=A4=9A=E5=87=8F=E4=BA=86?= =?UTF-8?q?=E5=87=A0=E6=AC=A1,=E7=AC=AC=E4=B8=80=E9=A1=B5=E6=9C=AB?= =?UTF-8?q?=E5=B0=BE=E6=A5=BC=E5=B1=82=E7=BC=96=E5=8F=B7=E4=BC=9A=E5=81=8F?= =?UTF-8?q?=E5=B0=8F,=E5=AF=BC=E8=87=B4=E7=AC=AC=E4=BA=8C=E9=A1=B5?= =?UTF-8?q?=E7=AC=AC1=E4=B8=AA=E7=BC=96=E5=8F=B7=E6=AF=94=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E9=A1=B5=E6=9C=80=E5=90=8E=E4=B8=80=E4=B8=AA=E7=BC=96?= =?UTF-8?q?=E5=8F=B7=E5=A4=A7=E5=BE=88=E5=A4=9A,=E7=BC=96=E5=8F=B7?= =?UTF-8?q?=E4=B8=8D=E8=BF=9E=E7=BB=AD,=E6=89=80=E4=BB=A5=E5=8A=A0?= =?UTF-8?q?=E4=B8=8Acurpagepids=E8=AE=B0=E5=BD=95=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=BC=96=E5=8F=B7,=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E7=BD=AE=E9=A1=B6=E7=9A=84=E6=98=AF=E5=85=B6=E5=AE=83=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E4=B8=8D=E5=87=8F=E7=BC=96=E5=8F=B7=202=20?= =?UTF-8?q?=E6=9C=80=E5=90=8E=E4=B8=80=E9=A1=B5=E6=A5=BC=E5=B1=82=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=BC=82=E5=B8=B8,=E5=A6=82https://www.dismall.com/fo?= =?UTF-8?q?rum.php=3Fmod=3Dviewthread&tid=3D73&extra=3Dpage%3D1&ordertype?= =?UTF-8?q?=3D0&page=3D51=20=E6=9C=80=E5=90=8E=E4=B8=80=E9=A1=B5=E6=9C=897?= =?UTF-8?q?=E6=9D=A1,=E7=BC=96=E5=8F=B7=E5=BA=94=E6=98=AF7-2,=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=9A=84=E6=98=AF6-1,forum=5Fnumpost=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BA($page=20=3D=3D=20$totalpage=20=3F=201=20:=20?= =?UTF-8?q?0),=E6=9C=80=E5=90=8E=E4=B8=80=E9=A1=B5=E5=87=8F=E5=A4=9A?= =?UTF-8?q?=E4=BA=86,=E6=89=80=E4=BB=A5=E8=A6=81=E5=8A=A0=E5=9B=9E?= =?UTF-8?q?=E5=8E=BB1=203=20=E7=AC=AC=E4=BA=8C=E9=A1=B5,=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=BC=82=E5=B8=B8,=E5=A6=82https://www.dismall.com/forum.php?= =?UTF-8?q?=3Fmod=3Dviewthread&tid=3D73&extra=3Dpage%3D1&ordertype=3D1&pag?= =?UTF-8?q?e=3D2,=E7=AC=AC1=E4=B8=AA=E5=B8=96=E5=AD=90=E6=98=BE=E7=A4=BA49?= =?UTF-8?q?8,=E7=AC=AC1=E9=A1=B5=E6=9C=80=E5=90=8E=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E4=B9=9F=E6=98=BE=E7=A4=BA498=20=E6=89=80=E4=BB=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改后测试示例:https://zengyonghua.site/discuz35/forum.php?mod=viewthread&tid=3 --- upload/source/module/forum/forum_viewthread.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/upload/source/module/forum/forum_viewthread.php b/upload/source/module/forum/forum_viewthread.php index 3ee92fe19..108d41874 100644 --- a/upload/source/module/forum/forum_viewthread.php +++ b/upload/source/module/forum/forum_viewthread.php @@ -489,7 +489,7 @@ if(empty($_GET['viewpid'])) { $_G['forum_numpost'] = ($page - 1) * $_G['ppp']; if($ordertype != 1) { } else { - $_G['forum_numpost'] = $_G['forum_thread']['replies'] + 2 - $_G['forum_numpost'] + ($page > 1 ? 1 : 0); + $_G['forum_numpost'] = $_G['forum_thread']['replies'] + 2 - $_G['forum_numpost'] + ($page == $totalpage ? 1 : 0); } } else { $start_limit = $_G['forum_numpost'] = max(0, ($page - 1) * $_G['ppp']); @@ -499,7 +499,7 @@ if(empty($_GET['viewpid'])) { } if($ordertype != 1) { } else { - $_G['forum_numpost'] = $_G['forum_thread']['replies'] + 2 - $_G['forum_numpost'] + ($page > 1 ? 1 : 0); + $_G['forum_numpost'] = $_G['forum_thread']['replies'] + 2 - $_G['forum_numpost']; } } $multipage = multi($_G['forum_thread']['replies'] + 1, $_G['ppp'], $page, 'forum.php?mod=viewthread&tid='.$_G['tid']. @@ -623,6 +623,10 @@ if(!empty($isdel_post)) { $ordertype != 1 ? ksort($postarr) : krsort($postarr); } $summary = ''; +$curpagepids = []; +foreach($postarr as $post) { + $curpagepids[] = $post['pid']; +} if($page == 1 && $ordertype == 1) { $firstpost = C::t('forum_post')->fetch_threadpost_by_tid_invisible($_G['tid']); if($firstpost['invisible'] == 0 || $visibleallflag == 1) { @@ -667,6 +671,7 @@ foreach($postarr as $post) { $post['existinfirstpage'] = true; } + $post['incurpage'] = in_array($post['pid'],$curpagepids); $postusers[$post['authorid']] = array(); if($post['first']) { if($ordertype == 1 && $page != 1) { @@ -1075,12 +1080,12 @@ function viewthread_procpost($post, $lastvisit, $ordertype, $maxposition = 0) { $post['lastpostanchor'] = ($ordertype != 1 && $_G['forum_numpost'] == $_G['forum_thread']['replies']) || ($ordertype == 1 && $_G['forum_numpost'] == $_G['forum_thread']['replies'] + 2) ? '' : ''; - if(!$post['hotrecommended']) { + if(!$post['hotrecommended'] && $post['incurpage']) { if($_G['forum_pagebydesc']) { if($ordertype != 1) { $post['number'] = $_G['forum_numpost'] + $_G['forum_ppp2']--; } else { - $post['number'] = $post['first'] == 1 ? 1 : ($_G['forum_numpost'] - 1) - $_G['forum_ppp2']--; + $post['number'] = $post['first'] == 1 ? 1 : $_G['forum_numpost'] - $_G['forum_ppp2']--; } } else { if($ordertype != 1) { @@ -1091,7 +1096,7 @@ function viewthread_procpost($post, $lastvisit, $ordertype, $maxposition = 0) { } } - if($post['existinfirstpage']) { + if($post['existinfirstpage'] && $post['incurpage']) { if($_G['forum_pagebydesc']) { $_G['forum_ppp2']--; } else { -- Gitee