Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

尚未處理完畢,不小心按到了~#lastpost跳轉功能自行解決的方式(參考一下)

[复制链接]
kang812 发表于 2012-4-17 22:53:30 | 显示全部楼层 |阅读模式
本帖最后由 kang812 于 2012-4-18 22:15 编辑

關於 #lastpost 跳轉到最後一篇回文的 bug , 某部分的文章都失效。
查看原始碼 forum_viewthread.php 的第 945 行這一行
  1. $post['lastpostanchor'] = ($ordertype != 1 && $_G['forum_numpost'] == $_G['forum_thread']['replies']) || ($ordertype == 1 && $_G['forum_numpost'] == $_G['forum_thread']['replies'] + 2) ? '<a name="lastpost"></a>' : '';
复制代码
我將 $_G['forum_numpost'] 與 $_G['forum_thread']['replies'] 這兩個變數顯示出來 debug 後發現
那些失效的文章,這兩個變數並沒有符合這一行的判斷,難怪一直無法使用 #lastpost 的功能。

我將這一行改寫成下面這一行判斷
  1. $post['lastpostanchor'] = ($post['position'] == $_G['forum_thread']['maxposition'])?'<a name="lastpost"></a>' : '';
复制代码
使用後,可以正常使用 #lastpost ,但不確定是否會造成其他問題產生(至少目前我還沒碰到)
敬請官方能夠釋疑,或是可提供更好的解決方式,謝謝。

rohow 发表于 2012-4-18 09:07:01 | 显示全部楼层
我也发现这个问题!
回复

使用道具 举报

 楼主| kang812 发表于 2012-4-18 09:35:39 | 显示全部楼层
rohow 发表于 2012-4-18 09:07
我也发现这个问题!

那你可以先暂时改用我修改的方式,可以暂时解决。
希望官方可以正视这个问题~
回复

使用道具 举报

m.king 发表于 2012-4-18 11:25:06 | 显示全部楼层
你说的失效是啥情况 能否详细说说让我重现一下。
回复

使用道具 举报

rohow 发表于 2012-4-18 12:28:37 | 显示全部楼层
kang812 发表于 2012-4-18 09:35
那你可以先暂时改用我修改的方式,可以暂时解决。
希望官方可以正视这个问题~

就是直接在论坛页面点击帖子进去,就会出现这个问题
回复

使用道具 举报

 楼主| kang812 发表于 2012-4-18 14:57:00 | 显示全部楼层
本帖最后由 kang812 于 2012-4-18 14:59 编辑
m.king 发表于 2012-4-18 11:25
你说的失效是啥情况 能否详细说说让我重现一下。

一般想將文章跳到最後一個回文時,我會用這樣的方式
&mod=redirect&goto=lastpost#lastpost
但必須搭配下面這行 <a name></a> 的判斷(需符合他的條件)
  1. $post['lastpostanchor'] = ($ordertype != 1 && $_G['forum_numpost'] == $_G['forum_thread']['replies']) || ($ordertype == 1 && $_G['forum_numpost'] == $_G['forum_thread']['replies'] + 2) ? '<a name="lastpost"></a>' : '';
复制代码
但是我發現有些文章串 $_G['forum_numpost'] 的值會比 $_G['forum_thread']['replies'] 小,
所以導致這個判斷無法成立,沒有將 <a name></a> 這個標籤產生出來,才導致 #lastpost 失效
至於為什麼 $_G['forum_numpost'] 變數會變小,我無法知道原因~

所以我只好改用我在一樓寫的方式來暫時解決這個問題。
(使用 position 來判斷是否為最後一個回文,是的話就產生 <a name></a>)
但這個方式是否會產生其他問題,目前還在觀察....

對了,這個問題其實從 7.0 版 7.2 跟 1.5 我就一直有困擾啦~
只是當時沒去處理,

原本想說 2.5 看會不會改善囉~沒想到還是一樣,而且我是更嚴重,才趕緊自己先處理~
回复

使用道具 举报

 楼主| kang812 发表于 2012-4-18 18:21:05 | 显示全部楼层
m.king 发表于 2012-4-18 11:25
你说的失效是啥情况 能否详细说说让我重现一下。

不小心按了已解決,在麻煩官方這邊看一下這個問題喔~謝謝。
回复

使用道具 举报

xsbar 发表于 2012-4-18 19:30:41 | 显示全部楼层
先占位置。我的也有这个情况。。。
回复

使用道具 举报

 楼主| kang812 发表于 2012-4-18 22:16:42 | 显示全部楼层
xsbar 发表于 2012-4-18 19:30
先占位置。我的也有这个情况。。。

你可以先試試我的方法應該可以暫時解決這問題
回复

使用道具 举报

xsbar 发表于 2012-4-19 09:23:19 | 显示全部楼层
能测底去掉 #lastpost ?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-28 07:23 , Processed in 0.301788 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表