[問題] 全域公告所產生的第一頁(共0頁)之問題(已解決)

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

[問題] 全域公告所產生的第一頁(共0頁)之問題(已解決)

文章 HEICZG »

問題外掛:Global announcement 1.2.9(全區公告)
參考連結:以附於上方
使用版本: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/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

正常情況, 只要該版面有一篇以上文章的話,
無論該版面有多少篇全區公告, 都不至於出現 '第1頁(共0頁)' 才對.

事實上, 您很多沒有文章的版面, 不都是同樣出現 '第1頁(共0頁)' 嗎?

建議您:
忽略此一訊息!
當您的論壇文章數量很多時, 就不會在意 (出現) 這個訊息了.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

文章 HEICZG »

心靈捕手 寫:正常情況, 只要該版面有一篇以上文章的話,
無論該版面有多少篇全區公告, 都不至於出現 '第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/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

HEICZG 寫:
心靈捕手 寫:正常情況, 只要該版面有一篇以上文章的話,
無論該版面有多少篇全區公告, 都不至於出現 '第1頁(共0頁)' 才對.
嗯 這是我心中所想達到的正常情況@@
但目前的情況是
該版面的文章數必須大於全區公告數(全區公告若有4篇,該版面就得有5篇一般文章數才可以消除)

不曉得這是否也算正常情況?^^"

PS.其實只是為了"文章測試"的那一版所容易產生空版面的問題而想做的修正~"~
希望能做到至少該版面有一篇就不會有該問題,
而不用該版面文章數要超過全域公告文章數Orz

再ps.如有需要 , 可提供測試帳號供前輩們測試m(_._)m
建議您:
1. 先建立五篇全區公告
2. 提供測試用帳號與密碼
3. 若照 '正常狀況', 則可以在 '"文章測試"的那一版' 發表一篇 '公告' 的主題;
因為公告或置頂的主題, 並不會遭 '按時刪除'.
參考連結:
http://wang5555.dyndns.org/phpbb2/viewforum.php?f=34
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

文章 HEICZG »

測試帳號: TEST
密碼:test

此為版面連結,有勞心靈前輩看一下了>"<

並附上Viewforum.php檔案一個..點我下載
●架設主機作業系統: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/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

HEICZG 寫:測試帳號: TEST
密碼:test

此為版面連結,有勞心靈前輩看一下了>"<

並附上Viewforum.php檔案一個..點我下載
我猜想:
底下兩個外掛有相衝?
全區公告 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 裡頭, 關於 '主題類型' 的修改.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

文章 HEICZG »

後來分別照心靈前輩所講的..
單獨對二種外掛的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/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

您必須先確定, 您的實驗 (步驟) 程序是正確的.

照道理,
無論您是單獨還原 '全區公告' 或者是 '主題類型'
應該都可以恢復正常才對.

我之所以會建議您, 移除主題類型的部份,
主要是兩權相害取其輕.

主題類型不見得要在 viewforum 顯示功能,
全區公告卻一定得在 viewforum 顯示功能.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

文章 HEICZG »

心靈捕手 寫:您必須先確定, 您的實驗 (步驟) 程序是正確的.

照道理,
無論您是單獨還原 '全區公告' 或者是 '主題類型'
應該都可以恢復正常才對.

我之所以會建議您, 移除主題類型的部份,
主要是兩權相害取其輕.

主題類型不見得要在 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/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

HEICZG 寫:然後 把備份好的viewforum(有問題的版本:也就是二個外掛都有裝)覆製回來

再測試只針對主題類型裡對viewforum的部份修改回來

然後測試 畫面上的主題類型不顯示了 但仍會有第1頁(共0頁)的問題

這是我的測試步驟 不曉得對嗎^^"?
方法沒錯!
重點是, 當您移除主題類型的部份後, 是否有測試呢?

也就是說, 當您安裝全區公告後,
因為版面有新增全區公告, 所以一旦沒有其他的文章, 自然會顯示 '第1頁(共0頁)'.

正常情況, 只要有發表一篇文章, 即可顯示 '第1頁(共1頁)';
而不必要如您的論壇情況, 需要發表超過全區公告的文章數.

這地方, 才是問題的癥結.

--
也許, 您可以換個角度想:
用原始的 viewforum.php 只做 '全區公告' 的修改
試試看, 問題是否依舊?

雖然說此兩個外掛相衝,
可能是太過武斷的想法.

只是因為我個人, 只有安裝全區公告, 但是並未有您的情況發生.

--
不過, 話又說回來, 其實, 這個情況是可以忽略的.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

文章 HEICZG »

在還原主題類型裡的修改後

有測試 仍會顯示第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/
HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

文章 HEICZG »

題外話
不曉得和簡易子版面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
明天再試一天...如果弄不好 就真的死心無解了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/
HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

文章 HEICZG »

胡搞瞎搞後..

把這行拿掉或前面加上註解

代碼: 選擇全部

$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/
HEICZG
星球公民
星球公民
文章: 41
註冊時間: 2004-03-08 20:13

文章 HEICZG »

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/
頭像
hentaibbc
版面管理員
版面管理員
文章: 342
註冊時間: 2005-09-01 18:01

文章 hentaibbc »

剛剛看了一下程式...
結論...
的確是全域公告本身的問題...
心靈捕手大大...對不起捏...

因為$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'];


這樣應該就可以了...
試試看吧!

這樣你那一段就可以還原囉...!!
主題已鎖定

回到「外掛問題討論」