作者: cnteacher
Discuz 4.0 修改: alan888
技術支援:
http://www.alan888.com/Discuz/index.php
演示: 只限會員
http://www.alan888.com/Discuz/pl ... ank&module=bank
修改檔案: include/cache.func.php
增加檔案: plugins/bank.inc.php, bank 模板, bank_submit 模板
本插件因是按 AL8 Forum 的條件編寫, 在其他 Discuz Forum 使用可能出現一些問題, 加上功能相當簡單, 只提供一般銀行存款服務, 故原本不打算發放, 但收到不少會員的查詢, 所以將部份較易出問題的部份修改後發放
按本站網存 i-servces 的意見, 在所有現有的銀行插件, 在查看 "財富資訊" 會大量數據庫的查詢, 在查詢時系統資源消耗達 100% (按 AL8 Forum 的服務器標準), 經查証原 php 碼, 確實可能會出現此問題, 故此版本在一些統計上的數據改用定時更新快取檔形式進行, 因在原基礎上查詢數據庫後直接寫入快取檔, 故不會在原基礎上增加額外的數據庫查詢, 而由於使用快取檔, 除 "銀行資產" 及 "客戶總數" 即時更新外, 其餘統計數據要在更新後才準確
另一般錯誤理解積分可以直接對換金錢或其他積分政策, 現再說明一下, Discuz 的積分 (credits) 是用公式計算出的總積分, 是不可直接對換金錢或其他積分政策的分數, 而大家在本站可以直接對換積分的原因是因為本站使用了其中一個積分政策 (extcredits) 作為積分, 而原來 Discuz 的積分 (credits) 本站是隱藏處理
重點注意:
如果對 Discuz 的結構不熟識, 強烈建議使用 Discuz 4 默認的 extcredits2 作為 "現金", 新增 extcredits3 作為存款, 不建議使用選擇其他積分策略, 如果不明白下列的修改辦法, 請勿強行安裝此插件
安裝辦法
1. 後台 -> 數據庫升級 (如果從 社區銀行 1.03CP for Discuz 2.x 升級則不用執行此步驟)
ALTER TABLE `cdb_members` ADD `savemt` INT(10) DEFAULT '0' NOT NULL;
2. 下載附件解壓後, 除 "discuz_plugin_bank.txt" 外, 其實按插件包內的目錄上載此相關的目錄
3. 進入後台 -> Discuz! 選項 -> 積分設置 -> 擴展積分設置
在 "積分代號" 下選取其中兩個代號分別作為現金及存款的數據, 下例使用原 Discuz 4 默認的 extcredits2 作為 "現金",新增 extcredits3 作為存款, 如果選擇其他積分策略, 可參考自行修改
extcredits2 的填寫辦法
積分名稱: 現金 (可填其他)
積分單位: 元 (可填其他)
兌換比率: 1 (按其他積分策略的 1 分 換 1 現金計)
註冊初始積分: 100 (例如希望設定注冊後便有 100 現金)
啟用此積分: 是
在帖子中顯示 : 是
extcredits3 的填寫辦法
積分名稱: 存款 (可填其他)
積分單位: 元 (可填其他)
兌換比率: 0 (
必須設定為 "0", 否則會員可在 "積分兌換" 中直接換成存款, 影響到正常利息的計算)
註冊初始積分: 0 (因沒有正式存款記錄, 所以不可設定註冊初始存款)
啟用此積分: 是
在帖子中顯示 : 是
4. 修改 include/cache.func.php
修改完成此文件後請即時到後台→更新緩存
找
array('bbcodes', 'smilies'),
在下面加上
'allbank' => array('allbankpeople', 'allbankmoney'),
'bank' => array('totalmoney', 'totalbank', 'totalall'),
再找
case 'smilies':
$table = 'smilies';
$cols = 'code, url';
$conditions = "WHERE type='smiley' ORDER BY LENGTH(code) DESC";
break;
在下面加上
注意下修改是按 extcrdeits2 為現金, extcredits3 作為存款, 如果選擇其他積分策略, 可參考自行修改紅字部份
case allbankpeople:
$table = 'members';
$cols = "COUNT(extcredits3)";
$conditions = "WHERE extcredits3 >0";
break;
case allbankmoney:
$table = 'members';
$cols = "SUM(extcredits3)";
$conditions = "WHERE extcredits3 >0";
break;
case totalmoney:
$table = 'members';
$cols = 'uid, username,extcredits2';
$conditions = "WHERE extcredits2 !=0 ORDER BY extcredits2 DESC Limit 22";
break;
case totalbank:
$table = 'members';
$cols = 'uid, username, extcredits3';
$conditions = "WHERE extcredits3 !=0 ORDER BY extcredits3 DESC Limit 22";
break;
case totalall:
$table = 'members';
$cols = 'uid, username,(extcredits2+extcredits3) AS allmoney';
$conditions = "WHERE (extcredits2+extcredits3!=0) ORDER BY (extcredits2+extcredits3) DESC Limit 22";
break;
5. 打開附件的 discuz_plugin_bank.txt 將內容剪帖至:
後台 -> 插件設置 -> 插件管理 -> 貼入 "導入插件數據" 下的空格內→提交
注: 如果使用 Discuz 4.1, 請同時勾選 "允許導入不同版本 Discuz! 的插件(易產生錯誤!!)"
6. 後台 -> 插件設置 -> 插件設置 -> 在 "社區銀行 1.03CP" 點擊 "[插件參數設置] " 及設定好各項細節
注意:
按第三步已設定好的積分策略代碼在,
"現金代碼設置" 內請填上 extcredits 後的編號, 例如 "2" = 現金 (注意: 只需填上編號, 默認為 "2")
"存款代碼設置" 內請填上 extcredits 後的編號, 例如 "3" = 存款 (注意: 只需填上編號, 默認為 "3")
7. 修改 templates/default/actions.lang.php
找
在下面加上
~完成~
如果是從 "社區銀行 1.03CP for Discuz 2.x" 升級, 可按下列辦法將原銀行數據保留
取回現金數據
如果新系統不是使用 extcrdeits2 為現金, 請修改紅字為設定的代碼
數據庫升級
UPDATE cdb_members SET extcredits2= money;
取回存款數據
如果新系統不是使用 extcrdeits3 為存款, 請修改紅字為設定的代碼
數據庫升級
UPDATE cdb_members SET extcredits3= bank;
完成已上步驟核對現金及存款無誤後, 可將原現金及存款數據刪除
數據庫升級
ALTER TABLE cdb_members DROP money;
ALTER TABLE cdb_members DROP bank;
~升級完成~
補丁:
凡於 2006年10月25日 13:00 前下載者, 請下載附件 patch.rar 解壓後選擇適當語系, 並上載及覆蓋完來文件