Discuz! 論壇在後台有很多配置選項,通過這些配置選項可以實現很多功能。在 Discuz!論壇的二次開發過程中,我們也同樣要經常添加一些配置,然後根據配置來進行不同的操作。下面我就來介紹一下如何在 Discuz! 論壇中添加配置選項。
我們以 Discuz!6.0 為例。首先我們來看一下 Discuz! 論壇後台的配置界面,以管理員身份登錄論壇後台,依次選擇‘基本設置’ -> ‘基本設置’後會出現以下的界面:
圖1
這個頁面用了框架,我們在右下方的頁面中點擊右鍵選擇‘屬性’,在彈出的窗口中,我們發現這個頁面的 URL 是 '/admincp.php?action=settings&do=basic' ,這個頁面用的程序是admincp.php ,先來分析一下這個文件。
這個文件的第 172-290 行大致的內容如下:
代碼如下:
$cpscript = '';
if($adminid == 1) {
if($action == 'home') {
$cpscript = 'home';
} elseif($action == 'runwizard' && isfounder()) {
$cpscript = 'runwizard';
} elseif ……
} elseif($adminid == 2 || $adminid == 3) {
if($action == 'home') {
$cpscript = 'home';
} elseif((($allowedituser || $allowbanuser) && ($action == 'editmember' || $action == 'banmember')) || ($allowbanip && $action == 'ipban')) {
$cpscript = 'members';
} elseif……
}
if($cpscript) {
} elseif……
}
if($cpscript) {
require_once DISCUZ_ROOT.'./admin/'.$cpscript.'.inc.php';
} ……
這段程序主要就是根據 $action 變量來給 $cpscript 賦值,然後根據 $cpscript 的值來引入 admin 目錄下的程序文件。我們注意一下 179 行左側的 $action 值的判斷,會發現其$cpscript 的值是 'settings' ,那就是說 283 行引入的程序文件是 'admin/settings.inc.php' 。
然後打開 settings.inc.php 文件,會發現裡面的內容好長呀,不要被這給嚇壞了,仔細分析一下就好了。
第 14 行:
代碼如下:
$operation = $operation ? $operation : (!empty($do) ? $do : '');
這裡會根據 GET 過來的 $do 值來給 $operation 賦值,這個例子中其值是 'basic' 。
第 17 行:
代碼如下:
$query = $db->query("SELECT * FROM {$tablepre}settings");
while($setting = $db->fetch_array($query)) {
$settings[$setting['variable']] = $setting['value'];
}
這些程序段是從數據庫把數據讀出來存到數組 $settings 中以便下面調用。
下面的程序結構如下:
代碼如下:
if(!submitcheck('settingsubmit')) {
if($operation == 'access') {
……
} elseif($operation == 'styles') {
……
} elseif ……
} else {
&n
123下一頁