[問題] 全域公告所產生的第一頁(共0頁)之問題(已解決)
版主: 版主管理群
[問題] 全域公告所產生的第一頁(共0頁)之問題(已解決)
問題外掛:Global announcement 1.2.9(全區公告)
參考連結:以附於上方
使用版本:phpBB 2.0.21 utf8
網站位置:ffxi.servehttp.com
狀況描述:
曾參考過此篇,也了解了原因為何
但我剛好有個特殊情況,因為小弟的論壇有一區是測試文章區,七日會自動刪除
因此,常會是空版面狀況(只剩全域公告),但由於有安裝全域公告的關係
因此版面即會產生第1頁(共0頁)的情況,可點這觀看
本來想說沒關係,那就在裡面放一篇置頂文之類的
(因為如果照上面那篇解釋來看,公告也算是不在計算內)
伹仍會發生假設全域公告有三篇,那置頂文和一般主題合計就要4篇,第1頁(共0頁)的標籤才會消失
如果全域公告有4篇,那置頂文和一般主題合計就要5篇,該標籤才會消失
也就是普通主題文一定要大於公告文一篇Orz
雖然這是個小問題@@ ,並不影響到整個版面,但仍想請教有無解決辦法或變通的方法~"~?
先謝謝各位了m(_._)m
參考連結:以附於上方
使用版本:phpBB 2.0.21 utf8
網站位置:ffxi.servehttp.com
狀況描述:
曾參考過此篇,也了解了原因為何
但我剛好有個特殊情況,因為小弟的論壇有一區是測試文章區,七日會自動刪除
因此,常會是空版面狀況(只剩全域公告),但由於有安裝全域公告的關係
因此版面即會產生第1頁(共0頁)的情況,可點這觀看
本來想說沒關係,那就在裡面放一篇置頂文之類的
(因為如果照上面那篇解釋來看,公告也算是不在計算內)
伹仍會發生假設全域公告有三篇,那置頂文和一般主題合計就要4篇,第1頁(共0頁)的標籤才會消失
如果全域公告有4篇,那置頂文和一般主題合計就要5篇,該標籤才會消失
也就是普通主題文一定要大於公告文一篇Orz
雖然這是個小問題@@ ,並不影響到整個版面,但仍想請教有無解決辦法或變通的方法~"~?
先謝謝各位了m(_._)m
最後由 HEICZG 於 2006-08-10 23:18 編輯,總共編輯了 2 次。
●架設主機作業系統:Linux Fedora Core 5
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
嗯 這是我心中所想達到的正常情況@@心靈捕手 寫:正常情況, 只要該版面有一篇以上文章的話,
無論該版面有多少篇全區公告, 都不至於出現 '第1頁(共0頁)' 才對.
但目前的情況是
該版面的文章數必須大於全區公告數(全區公告若有4篇,該版面就得有5篇一般文章數才可以消除)
不曉得這是否也算正常情況?^^"
PS.其實只是為了"文章測試"的那一版所容易產生空版面的問題而想做的修正~"~
希望能做到至少該版面有一篇就不會有該問題,
而不用該版面文章數要超過全域公告文章數Orz
再ps.如有需要 , 可提供測試帳號供前輩們測試m(_._)m
●架設主機作業系統:Linux Fedora Core 5
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
建議您:HEICZG 寫:嗯 這是我心中所想達到的正常情況@@心靈捕手 寫:正常情況, 只要該版面有一篇以上文章的話,
無論該版面有多少篇全區公告, 都不至於出現 '第1頁(共0頁)' 才對.
但目前的情況是
該版面的文章數必須大於全區公告數(全區公告若有4篇,該版面就得有5篇一般文章數才可以消除)
不曉得這是否也算正常情況?^^"
PS.其實只是為了"文章測試"的那一版所容易產生空版面的問題而想做的修正~"~
希望能做到至少該版面有一篇就不會有該問題,
而不用該版面文章數要超過全域公告文章數Orz
再ps.如有需要 , 可提供測試帳號供前輩們測試m(_._)m
1. 先建立五篇全區公告
2. 提供測試用帳號與密碼
3. 若照 '正常狀況', 則可以在 '"文章測試"的那一版' 發表一篇 '公告' 的主題;
因為公告或置頂的主題, 並不會遭 '按時刪除'.
參考連結:
http://wang5555.dyndns.org/phpbb2/viewforum.php?f=34
我猜想:
底下兩個外掛有相衝?
全區公告 1.2.9 http://phpbb-tw.net/phpbb/viewtopic.php?t=40483
主題類型 3.3.1 http://phpbb-tw.net/phpbb/viewtopic.php?t=39648
建議您:
試試移除 (還原) viewforum.php 裡頭, 關於 '主題類型' 的修改.
後來分別照心靈前輩所講的..
單獨對二種外掛的viewforum.php修改的地方做實驗
1.單獨還原成未安裝全域公告的viewforum裡的修改
(正常了)
2.單獨還原成未安裝主題類型的viewforum裡的修改
(仍有此問題)
因此 貼出安裝全域公告裡對於viewforum裡的修改部份...
希望能找出問題點~"~
附上該文字連結(為了不佔竹貓資源)
麻煩高手們指點了m(_._)m
能否看出是其中那一段所造成的誤判...
單獨對二種外掛的viewforum.php修改的地方做實驗
1.單獨還原成未安裝全域公告的viewforum裡的修改
(正常了)
2.單獨還原成未安裝主題類型的viewforum裡的修改
(仍有此問題)
因此 貼出安裝全域公告裡對於viewforum裡的修改部份...
希望能找出問題點~"~
附上該文字連結(為了不佔竹貓資源)
麻煩高手們指點了m(_._)m
能否看出是其中那一段所造成的誤判...
●架設主機作業系統:Linux Fedora Core 5
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
唔 @@ 應該是對的吧..心靈捕手 寫:您必須先確定, 您的實驗 (步驟) 程序是正確的.
照道理,
無論您是單獨還原 '全區公告' 或者是 '主題類型'
應該都可以恢復正常才對.
我之所以會建議您, 移除主題類型的部份,
主要是兩權相害取其輕.
主題類型不見得要在 viewforum 顯示功能,
全區公告卻一定得在 viewforum 顯示功能.
首先 我先只針對全域公告裡的viewforum裡的修改部份做還原
然後測試...畫面上的全域公告消失...也不會有第1頁(共0頁)的問題
然後 把備份好的viewforum(有問題的版本:也就是二個外掛都有裝)覆製回來
再測試只針對主題類型裡對viewforum的部份修改回來
然後測試 畫面上的主題類型不顯示了 但仍會有第1頁(共0頁)的問題
這是我的測試步驟 不曉得對嗎^^"?
●架設主機作業系統:Linux Fedora Core 5
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
方法沒錯!HEICZG 寫:然後 把備份好的viewforum(有問題的版本:也就是二個外掛都有裝)覆製回來
再測試只針對主題類型裡對viewforum的部份修改回來
然後測試 畫面上的主題類型不顯示了 但仍會有第1頁(共0頁)的問題
這是我的測試步驟 不曉得對嗎^^"?
重點是, 當您移除主題類型的部份後, 是否有測試呢?
也就是說, 當您安裝全區公告後,
因為版面有新增全區公告, 所以一旦沒有其他的文章, 自然會顯示 '第1頁(共0頁)'.
正常情況, 只要有發表一篇文章, 即可顯示 '第1頁(共1頁)';
而不必要如您的論壇情況, 需要發表超過全區公告的文章數.
這地方, 才是問題的癥結.
--
也許, 您可以換個角度想:
用原始的 viewforum.php 只做 '全區公告' 的修改
試試看, 問題是否依舊?
雖然說此兩個外掛相衝,
可能是太過武斷的想法.
只是因為我個人, 只有安裝全區公告, 但是並未有您的情況發生.
--
不過, 話又說回來, 其實, 這個情況是可以忽略的.
在還原主題類型裡的修改後
有測試 仍會顯示第1頁共0頁
不過 我再檢查看看那裡有問題...
如果仍解決不了..還是忽視好了~"~ 不然會活活操死吧...Orz
有測試 仍會顯示第1頁共0頁
不過 我再檢查看看那裡有問題...
如果仍解決不了..還是忽視好了~"~ 不然會活活操死吧...Orz
●架設主機作業系統:Linux Fedora Core 5
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
題外話
不曉得和簡易子版面1.3有沒有關係哦@@?
----------
睡前找到這裡..
全域公告裡的
這段若不加入,即不會有這問題..不過當然連全域公告也沒有顯示了
明天再試一天...如果弄不好 就真的死心無解了orz
不曉得和簡易子版面1.3有沒有關係哦@@?
----------
睡前找到這裡..
全域公告裡的
這段若不加入,即不會有這問題..不過當然連全域公告也沒有顯示了
代碼: 選擇全部
#-----[ OPEN ]------------------------------------------------
#
viewforum.php
#
#-----[ FIND ]------------------------------------------------
#
//
// All announcement data, this keeps announcements
// on each viewforum page ...
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
//
// All GLOBAL announcement data, this keeps GLOBAL announcements
// on each viewforum page ...
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username
FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2
WHERE t.topic_poster = u.user_id
AND p.post_id = t.topic_last_post_id
AND p.poster_id = u2.user_id
AND t.topic_type = " . POST_GLOBAL_ANNOUNCE . "
ORDER BY t.topic_last_post_id DESC ";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain topic information", "", __LINE__, __FILE__, $sql);
}
$topic_rowset = array();
$total_announcements = 0;
while( $row = $db->sql_fetchrow($result) )
{
$topic_rowset[] = $row;
$total_announcements++;
}
$db->sql_freeresult($result);
// End add - Global announcement MOD
●架設主機作業系統:Linux Fedora Core 5
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
胡搞瞎搞後..
把這行拿掉或前面加上註解
這樣連全域公告都會算入篇數裡.....(勉強的替代方案)
這樣就算該版只有1篇全域公告(且那篇全域主要還不是發在該版)
也不會顯示第1頁(共0頁)....
有人知道會不會連帶有其它的影響嗎???^^"
把這行拿掉或前面加上註解
代碼: 選擇全部
$topics_count -= $total_announcements;這樣就算該版只有1篇全域公告(且那篇全域主要還不是發在該版)
也不會顯示第1頁(共0頁)....
有人知道會不會連帶有其它的影響嗎???^^"
●架設主機作業系統:Linux Fedora Core 5
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
若之後有問題的話..HEICZG 寫:胡搞瞎搞後..
把這行拿掉或前面加上註解這樣連全域公告都會算入篇數裡.....(勉強的替代方案)代碼: 選擇全部
$topics_count -= $total_announcements;
這樣就算該版只有1篇全域公告(且那篇全域主要還不是發在該版)
也不會顯示第1頁(共0頁)....
有人知道會不會連帶有其它的影響嗎???^^"
就請各位自行加入滅掉$total_announcements是否為負數或0的判斷式
再個別去定義囉>"<~
●架設主機作業系統:Linux Fedora Core 5
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
●快速架站程式:無
●您的上網方式:HINET ADSL 2M/512K(1固定,7浮動)
●您的 phpBB2 版本:phpBB 2.0.2.1
●您的 domain(網域名稱) :ffxi.servehttp.com
●您的 phpBB2 連結網址:http://ffxi.servehttp.com/
剛剛看了一下程式...
結論...
的確是全域公告本身的問題...
心靈捕手大大...對不起捏...
因為$topics_count這個變數在取的是forum_topics這欄的資料
而除了原本的公告數之外
全域公告又會加上非該版面的全域公告的主題數...
所以...才會造成你這樣的問題...="=
打個比方好了...
全域公告有4篇
公告有2篇
一般有1篇
那麼最後的$topics_count = (1 + 2) - 2 - 4 = -3;
這時...你就必須再有4篇一般主題...才能將它變成1以上...
這樣了解了吧!!
===========================================
要解決這個問題嘛...
把
改成
這樣應該就可以了...
試試看吧!
這樣你那一段就可以還原囉...!!
結論...
的確是全域公告本身的問題...
心靈捕手大大...對不起捏...
因為$topics_count這個變數在取的是forum_topics這欄的資料
而除了原本的公告數之外
全域公告又會加上非該版面的全域公告的主題數...
所以...才會造成你這樣的問題...="=
打個比方好了...
全域公告有4篇
公告有2篇
一般有1篇
那麼最後的$topics_count = (1 + 2) - 2 - 4 = -3;
這時...你就必須再有4篇一般主題...才能將它變成1以上...
這樣了解了吧!!
===========================================
要解決這個問題嘛...
把
代碼: 選擇全部
$topic_rowset = array();
$total_announcements = 0;
while( $row = $db->sql_fetchrow($result) )
{
$topic_rowset[] = $row;
$total_announcements++;
} 代碼: 選擇全部
$topic_rowset = array();
$total_announcements = 0;
while( $row = $db->sql_fetchrow($result) )
{
$topic_rowset[] = $row;
$total_announcements++;
$topics_count++;
}
$sql = "SELECT COUNT(topic_id) AS total
FROM " . TOPICS_TABLE . "
WHERE forum_id = $forum_id
AND topic_type = " . POST_GLOBAL_ANNOUNCE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain topic information", "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$topics_count -= $row['total'];
這樣應該就可以了...
試試看吧!
這樣你那一段就可以還原囉...!!


