很多人發現他們的論壇有某些部份使用了啟用或禁用的外貌,而且他們很喜歡在 ACP 有一個開關可以很容易地來切換它們。下面的文章解釋了這麼做的方法。在這種特殊情況下,會員將被問到啟用或禁用聊天室;然而您可以使用它在許多不同的事情上-當然-您必須視您的需要去修改它。
好吧!讓我們從這裡開始:
- 資料庫
您首先要做的第一件事是在資料庫建立一個新的欄位。這欄位將被輸入 0(禁用)或 1(啟用):注意!如果在資料庫的資料表中已經有這個欄位,那麼您應該要視您的需要去建立不同的欄位名稱。(例如:當外掛已經建立自己的資料表,但是並無提供「是或否」顯示的方法。)代碼: 選擇全部
INSERT INTO phpbb_config (config_name, config_value) VALUES ('enable_chat', '0');
- 建立「開關」
我們需要做的第二件事是建立「開關」。這可以在「includes/functions.php」檔案中做到。
--找到----之後增加--代碼: 選擇全部
// The following assigns all _common_ variables that may be used at any point in a template.
代碼: 選擇全部
'S_ENABLE_CHAT' => ($config['enable_chat']) ? true : false ,
- 設定開關在 ACP 的位置
現在有了開關以後,我們也需要將它放置在 ACP,以便於當我們需要時可以使用它,對吧?如果外掛沒有存在 ACP 控制,那麼您總是可以將代碼放進「includes/acp/acp_board.php」檔案中。
--找到--注意兩件事:代碼: 選擇全部
switch ($mode) { case 'settings': $display_vars = array( 'title' => 'ACP_BOARD_SETTINGS', 'vars' => array(
a. case 'settings':
b. 'title' => 'ACP_BOARD_SETTINGS',
它實際上告訴您這個特殊的區域為何。
在這個情況下,它指的是在 ACP 的「Board Settings(討論區設定)」區域。
假如您想要將開關放在其他的地方,只要瀏覽像是「case 'blahblah':」去放置您的代碼。
例如:您想要將開關放在「Board features(討論區特色)」區域,正確的位置應該是我希望您已經明白。現在再回頭去編輯...代碼: 選擇全部
case 'features': $display_vars = array( 'title' => 'ACP_BOARD_FEATURES',
--在「includes/acp/acp_board.php」找到----之後增加--代碼: 選擇全部
'allow_birthdays' => array('lang' => 'ALLOW_BIRTHDAYS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
注意「'explain' => false」這部份:代碼: 選擇全部
'enable_chat' => array('lang' => 'ENABLE_CHAT', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
如果我們設定為「true」,那麼下一步我們必須建立額外的語言項目,做為這個開關的解釋。您不必在「includes/acp/acp_board.php」做任何額外的事 - 它是自動增加的。 - 建立語言項目
因此,現在我們已經建立了開關以及將它放置在 ACP。我們也需要為此建立語言項目。
--在「language/zh_cmn_hant/acp/board.php」找到----之後增加--代碼: 選擇全部
'BOARD_PM_EXPLAIN' => 'Enable or disable private messaging for all users.',
如果之前的步驟我們設定了「'explain' => true」,那麼我們將需要一個額外的語言項目:代碼: 選擇全部
'ENABLE_CHAT' => '啟動聊天室',
再次注意!這個語言所輸入的類別,視特殊的語言位置而定。代碼: 選擇全部
'ENABLE_CHAT_EXPLAIN' => '選擇「是」,將顯示聊天室;選擇「否」,則隱藏它。',
在這個情況下,我們增加語言項目在底下的區域:因為不久前,我們在相同的區域增加了開關。代碼: 選擇全部
// Board Features $lang = array_merge($lang, array(
這不是強制性的作法,但是它將保持您檔案的組織性。 - 在樣板使用開關
現在,剩下的一件事是使用我們已經建立的開關放進樣板檔案中。
大多數的外掛有它們自己的樣板檔,而使用底下的方式被包含在已存在的樣板檔中:在此,我們假設聊天室已經被包含使用底下的方式:代碼: 選擇全部
<!-- INCLUDE this_mod_template.html -->
我們可以如底下的方法來做:代碼: 選擇全部
<!-- INCLUDE chat_body.html -->
--開啟--
styles/yourstyle/template/chat_body.html
--找到第一行--
--之前增加----找到最後一行--代碼: 選擇全部
<!-- IF S_ENABLE_CHAT -->
--之後增加--儲存檔案後,清除論壇快取。代碼: 選擇全部
<!-- ENDIF -->
您只要在 ACP 設定「是或否」即可。
我希望您可以發現這篇有用的文章...
--
資料來源:
http://www.phpbb.com/kb/article/howto-m ... ch-in-acp/