- 最後登錄
- 2012-8-5
- 在線時間
- 978 小時
- UID
- 275
- 閱讀權限
- 140
- 精華
- 71
- 帖子
- 3799
- 日誌
- 0
- EXP
- 6040 點
- 金幣
- 4990 個
- 註冊時間
- 2008-3-27
- 帖子
- 3799
- EXP
- 6040 點
- 金幣
- 4990 個
- 好友
- 0
- 註冊時間
- 2008-3-27
|
作者: cnteacher
Discuz 4.0 修改: alan888
Discuz 6.0.0/6.1.0/F 修改: 044003
注意: 本插件有一處不符合XHTML標準,但能正常顯示,如有疑問可不使用,這問題將會修正
演示:
修改檔案: 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 6.0.0/6.1.0/F 默認的 extcredits2 作為 "現金", 新增 extcredits3 作為存款, 不建議使用選擇其他積分策略, 如果不明白下列的修改辦法, 請勿強行安裝此插件
安裝辦法
1. 後台 -> 數據庫升級 (如果從 社區銀行 1.03CP for Discuz! [X.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'
複製代碼
之下加上
注意下修改是按 extcrdeits2 為現金, extcredits3 作為存款, 如果選擇其他積分策略, 可參考自行修改紅字部份
- 'allbank' => array('allbankpeople', 'allbankmoney'),
- 'bank' => array('totalmoney', 'totalbank', 'totalall'),
複製代碼
再找
在上面加上
- 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 6.1.0F, 請同時勾選 "允許導入不同版本 Discuz! 的插件(易產生錯誤!!)"
6. 後台 -> 插件設置 -> 插件設置 -> 在 "社區銀行 1.03CP" 點擊 "[插件參數設置] " 及設定好各項細節
注意:
按第三步已設定好的積分策略代碼在,
"現金代碼設置" 內請填上 extcredits 後的編號, 例如 "2" = 現金 (注意: 只需填上編號, 默認為 "2")
"存款代碼設置" 內請填上 extcredits 後的編號, 例如 "3" = 存款 (注意: 只需填上編號, 默認為 "3")
7. 修改 templates/default/actions.lang.php
找
在下面加上
DiscuZ!6.0.0---------------------
8. 在 db_mysql.class.php 找
- function query($sql, $type = '') {
複製代碼
之上加
- function fetch_first($sql) {
- return $this->fetch_array($this->query($sql));
- }
- function result_first($sql) {
- return $this->result($this->query($sql), 0);
- }
複製代碼
DiscuZ!6.0.0---------------------
在 plugins/bank.inc.php 找
之後加
在 bank 模板 找
- {echo discuz_uc_avatar($discuz_uid)}
複製代碼
改為
- <!--{if $member[avatar]}--><img src="$member[avatar]" width="$member[avatarwidth]" height="$member[avatarheight]" alt="" /><!--{else}--><img src="images/avatars/noavatar.gif" alt="" /><!--{/if}-->
複製代碼
~完成~ |
|