第 1 頁 (共 3 頁)
[問題] 請教偽子分區隱藏新疑難 (已解決了)
發表於 : 2006-04-03 16:25
由 kkt
問題外掛: 偽子分區-v2.0.1
參考連結:
http://phpbb-tw.net/phpbb/viewtopic.php ... 80&start=0
安裝狀況: 安裝在 2.015 版本上
遭遇情況: 清楚了解到安裝過程, 順利安裝.
但在後台欲把偽主題隱藏時失效. (明白後台如何隱藏, 指權限及子分區的隱藏設定.)
版面狀況圖:
參考倉大的指引:
~倉木麻衣~ 寫:應該是不會這樣子~
確認一下admin_forums_control.php是否為v2.0.1的版本\r
確認方式:
開啟並搜尋該檔案的內容~看看是否能找到「is_hideforum」
假若找的到~即表示為v2.0.1版~反之則為舊版本\r
如同上一篇所言~若您還是無法隱藏版面
請至phpMyAdmin裡手動將要隱藏的版面is_hideforum欄位設定成1
例如a版底下有b、c二個子版~則b、c這二個版面的is_hideforum欄位都必須設定成1
已確定 phpMyAdmin 裡, kktfriend_forums / is_hideforum欄位都必須設定成1
確定安裝版本是 v2.0.1版在2005/05/23 14:20分之後
現有一個疑問, 由於 db_create.php 上傳後在後台執行.
我恐怕是我的 phpMyAdmin 有問題, 因為資料庫內除了 kktfriend_forums 之外,
還有一個 phpbb_forums 是沒有 is_hideforum 這個欄位的.
==============================================
想請教倉大或老師我該如何試在phpbb_forums 建立呢 ?
但我未必確定是問題出於此, 因過往我在後台也是這樣執行 db 成功的.
還望指點一二, 先謝過!!
.
發表於 : 2006-04-03 16:47
由 ~倉木麻衣~
請開啟db_create.php檔, 找到底下的SQL
代碼: 選擇全部
"CREATE TABLE " . $table_prefix . "forums_control (control_id mediumint(8) UNSIGNED NOT NULL auto_increment, show_forums varchar(3) DEFAULT NULL, hide_forums varchar(255) DEFAULT NULL, PRIMARY KEY (control_id))",
"ALTER TABLE " . $table_prefix . "forums ADD is_hideforum TINYINT(1) DEFAULT '0'"
將它改成這樣
代碼: 選擇全部
CREATE TABLE phpbb_forums_control (control_id mediumint(8) UNSIGNED NOT NULL auto_increment, show_forums varchar(3) DEFAULT NULL, hide_forums varchar(255) DEFAULT NULL, PRIMARY KEY (control_id));
ALTER TABLE phpbb_forums ADD is_hideforum TINYINT(1) DEFAULT '0';
然後複製到phpMyAdmin裡直接執行
發表於 : 2006-04-03 19:03
由 kkt
多謝倉大回應, 可能真的大笨蛋.
請倉大稍加說明
複製到phpMyAdmin裡直接執行
按上篇修改後
因為我進入 phpMyAdmin/ 用瀏覽找到 db_create.php 然後執行, 出現:
代碼: 選擇全部
錯誤
SQL 語法:
& lt ; ? phpdefine(
'IN_PHPBB', true
)
代碼: 選擇全部
MySQL 傳回:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?php
define('IN_PHPBB', true)' at line 1
再嘗試修改後, 上載到phpbb 下後台執行, 出現:
但我直接複制這段卻執行成功:
在phpbb_forums 有見到 is_hideforum 這個欄位是 1
代碼: 選擇全部
CREATE TABLE phpbb_forums_control (control_id mediumint(8) UNSIGNED NOT NULL auto_increment, show_forums varchar(3) DEFAULT NULL, hide_forums varchar(255) DEFAULT NULL, PRIMARY KEY (control_id));
ALTER TABLE phpbb_forums ADD is_hideforum TINYINT(1) DEFAULT '0';
勞煩了, 汙顏..

發表於 : 2006-04-03 20:48
由 kkt
回倉大, 未知是我誤會了偽子分區否.
紅圈內的 B,C,D 已加進去"子分區主題測試"內, 但隱藏不了. (知道在權限設定裡可設定註冊會員隱藏, 但這個登入便可見. 明白不是指這個隱藏)
倒是在 "子分區主題測試" 之下的偽子分區全可隱藏 ?
這功能上是這樣的嗎 ? 有勞指教!!

發表於 : 2006-04-03 21:31
由 ~倉木麻衣~
資料庫裡都確認過BCD的is_hideforum欄位值是1了嗎?
另外, index.php檔是否有修改過了
發表於 : 2006-04-03 21:43
由 kkt
回倉大: 手動調整phpbb_forums/is_hideforum 0 改為 1 執行顯示如下:
代碼: 選擇全部
SQL 語法:
UPDATE `phpbb_forums` SET `prune_next` = NULL ,
`is_hideforum` = '1' WHERE `forum_id` =1 LIMIT 1 ;
檢視 is_hideforum 1 正確.
在phpbb_forums/is_hideforum 之內沒見到 B,C,D 啊!!
在kktfriend_forums/is_hideforum 內卻有見到 B,C,D 都是 1
index.php檔按外掛修改上傳後未有更動過了.
發表於 : 2006-04-03 23:01
由 ~倉木麻衣~
我的意思是指查看一下B、C、D這三個版面的is_hideforum是否為1
另外, 請提供一下index.php檔
發表於 : 2006-04-03 23:09
由 心靈捕手
kkt 寫:回倉大: 手動調整phpbb_forums/is_hideforum 0 改為 1 執行顯示如下:
代碼: 選擇全部
SQL 語法:
UPDATE `phpbb_forums` SET `prune_next` = NULL ,
`is_hideforum` = '1' WHERE `forum_id` =1 LIMIT 1 ;
檢視 is_hideforum 1 正確.
在phpbb_forums/is_hideforum 之內沒見到 B,C,D 啊!!
在kktfriend_forums/is_hideforum 內卻有見到 B,C,D 都是 1
index.php檔按外掛修改上傳後未有更動過了.
請您先確定一件事:
當您在控制台新增版面 B, C, D 之後,
所產生新的 'forum_id' 是出現在資料表 'phpbb_forums' 還是 'kktfriend_forums'?
發表於 : 2006-04-03 23:11
由 kkt
回倉大, 上文答了:
在phpbb_forums/is_hideforum 之內沒見到 B,C,D 啊!!
在kktfriend_forums/is_hideforum 內卻有見到 B,C,D 都是 1
index.php :
http://www.kktfriend.com/phpBB2/templat ... index1.rar
發表於 : 2006-04-03 23:33
由 ~倉木麻衣~
看起來沒有問題
那就請再確認一下心靈捕手兄講的吧, 記得你之前也曾因資料庫裡有不同資料表首開頭的資料表造成安裝上的困擾
另一件事就是, 後台新增的偽子分區記錄是否有寫到phpbb_forums_control資料表裡(或是kktfriend_forums_control ?)
發表於 : 2006-04-03 23:49
由 kkt
再回倉大及老師:
所產生新的 'forum_id' 是出現在資料表 'kktfriend_forums'
在 MyAdmin/kktfriend_forums/ 的
子分區的主題測試 forum_id 是 83
B 是84
C 是85
D 是86
而 cat_id 顯示皆同為 27, 即都歸入了子分區的主題測試 forum_id 83 內.
發表於 : 2006-04-03 23:59
由 心靈捕手
kkt 寫:再回倉大及老師:
所產生新的 'forum_id' 是出現在資料表 'kktfriend_forums'
在 MyAdmin/kktfriend_forums/ 的
子分區的主題測試 forum_id 是 83
B 是84
C 是85
D 是86
而 cat_id 顯示皆同為 27, 即都歸入了子分區的主題測試 forum_id 83 內.
既然您控制版面新增的資料表是 'kktfriend_forums'
那麼您在上頭執行的 SQL 指令, 恐怕得更改如下:
代碼: 選擇全部
CREATE TABLE kktfriend_forums_control (control_id mediumint(8) UNSIGNED NOT NULL auto_increment, show_forums varchar(3) DEFAULT NULL, hide_forums varchar(255) DEFAULT NULL, PRIMARY KEY (control_id));
ALTER TABLE kktfriend_forums ADD is_hideforum TINYINT(1) DEFAULT '0';
發表於 : 2006-04-04 00:03
由 kkt
老師先休息吧, 多謝您了.
按上執行後:
代碼: 選擇全部
錯誤
SQL 語法:
CREATE TABLE kktfriend_forums_control(
control_id mediumint( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
show_forums varchar( 3 ) DEFAULT NULL ,
hide_forums varchar( 255 ) DEFAULT NULL ,
PRIMARY KEY ( control_id )
)
MySQL 傳回:
#1050 - Table 'kktfriend_forums_control' already exists
發表於 : 2006-04-04 03:49
由 jwxinst
剛剛捕手老師所建議的:
CREATE TABLE kktfriend_forums_control (control_id mediumint(8) UNSIGNED NOT NULL auto_increment, show_forums varchar(3) DEFAULT NULL, hide_forums varchar(255) DEFAULT NULL, PRIMARY KEY (control_id));
ALTER TABLE kktfriend_forums ADD is_hideforum TINYINT(1) DEFAULT '0';
麻衣大大所更新的:
CREATE TABLE phpbb_forums_control (control_id mediumint(8) UNSIGNED NOT NULL auto_increment, show_forums varchar(3) DEFAULT NULL, hide_forums varchar(255) DEFAULT NULL, PRIMARY KEY (control_id));
ALTER TABLE phpbb_forums ADD is_hideforum TINYINT(1) DEFAULT '0';
但如果你的table都是以
kktfriend_開頭的話, 怎麼可能會成功輸入?
你現在如果加入剛才老師所建議的:
CREATE TABLE kktfriend_forums_control (control_id mediumint(8) UNSIGNED NOT NULL auto_increment, show_forums varchar(3) DEFAULT NULL, hide_forums varchar(255) DEFAULT NULL, PRIMARY KEY (control_id));
ALTER TABLE kktfriend_forums ADD is_hideforum TINYINT(1) DEFAULT '0';
你的SQL語法卻回應
CREATE TABLE kktfriend_forums_control(
control_id mediumint( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
show_forums varchar( 3 ) DEFAULT NULL ,
hide_forums varchar( 255 ) DEFAULT NULL ,
PRIMARY KEY ( control_id )
)
MySQL 傳回:
#1050 - Table 'kktfriend_forums_control' already exists
但是這裡你說
http://phpbb-tw.net/phpbb/viewtopic.php?p=233440#233440
回倉大: 手動調整phpbb_forums/is_hideforum 0 改為 1 執行顯示如下:
SQL 語法:
UPDATE `phpbb_forums` SET `prune_next` = NULL ,
`is_hideforum` = '1' WHERE `forum_id` =1 LIMIT 1 ;
你的TABLE開頭都應該是
kktfriend_吧?
這樣子看來你可能在發文之前, 是否已經先自行增加了以
kktfriends_開頭的語法?
如果是, 建議你, 首先把更新了的sql語法先刪除
至於語法, 應該直接先套用 剛剛老師給的
ps: 你的phpmyadmin好像有點亂?
以上我提到關於 phpbb_forums和 kktfriend_forums, 兩者都可以輸入成功
但是你裡面不是只有
kktfriend_開頭的嗎?
希望我以上所說的不會有問題~
(閃...

發表於 : 2006-04-04 04:36
由 kkt
jwxinst, 這個我真的要有空才再重灌MyAdmin 和 升級了. (題外話)
我資料庫確是 kktfriend_ 為首, 但選單之下都有 phpbb_ 的重複檔案,
搞得系統都不知讀那裡. SQL 的執行時有錯亂.
.