Discuz功能改進-後臺導出用戶訊息包含Email
最近因為公司需求,後臺導出會員資料的時候需要包含E-mail,可是因為Discuz本身系統似乎(HF猜的)不太重視E-mail這塊,所以導出才沒有E-mail欄位,HF在這邊查找了一些網路,也是有人跟我有相同的疑慮,這邊做一下修改註記。
修改系統DZ3.2!
修改系統這邊一定要注意,因為有些版本上可能會有點差異不同.....
這邊修改有兩步驟,首先第一步驟
1.打開路徑source\class\table\table_common_member.php
查找約117行
public function fetch_all_username_by_uid($uids) {
$users = array();
if(($uids = dintval($uids, true))) {
foreach($this->fetch_all($uids) as $uid => $value) {
$users[$uid] = $value['username'];
}
}
return $users;
}
在這段function下方再加入
public function fetch_all_useremail_by_uid($uids) {
$users = array();
if(($uids = dintval($uids, true))) {
foreach($this->fetch_all($uids) as $uid => $value) {
$users[$uid] = $value['email'];
}
}
return $users;
}
切記是加入,不是修改,一開始HF看網路教學整個講不清楚,大概是HF資歷太輕,哈
2.打開路徑source\admincp\admincp_members.php
查找約156行(可查找$operation == 'export')
然後找以下程式碼
$allusername = C::t('common_member')->fetch_all_username_by_uid($uids);
下方加入
$alluseremail = C::t('common_member')->fetch_all_useremail_by_uid($uids);
再來查找下方程式碼
$profile = array_merge(array('uid'=>$uid, 'username'=>$allusername[$uid]),$profile);
修改成以下
$profile = array_merge(array('uid'=>$uid, 'email'=>$alluseremail[$uid], 'username'=>$allusername[$uid]),$profile);
最後一步驟囉!
查找以下程式碼
$detail = "UID,".$lang['username'].",".$subject."\n".$detail;
然後修改成以下
$detail = "UID,"."Email,".$lang['username'].",".$subject."\n".$detail;
好了,這樣就可以匯出Email了
如果您覺得HF寫得還不錯,可以透過以下來贊助HF唷~
幣別
|
Bitcoin(BTC)
|
錢包地址
|
3PqFZKa5if4566u7xctKhd8jh6ypBccEAL
|
幣別
|
Litecoin(LTE)
|
錢包地址
|
LfRQQDDfpnTAedUotv1LBPR7XnUsEqaCAe
|
幣別
|
Ethereum(ETH)
|
錢包地址
|
0x5955a215e1066875b0cbb4a284d60aa0c8abddf2
|
幣別
|
Zcash(ZEC)
|
錢包地址
|
t1VbdgDNZJooYYw3mTqJHQLA1PRELWX4cUq
|
當然如果你想幫HF挖礦的也是可以(疑?
留言
張貼留言
留言時請注意句子內容,若有色情、廣告、引戰等都會刪除唷,請遵守網路規範及保持風度^____^
※基本上您問問題,HF都會盡最快速度來回您(基本上24H內),希望HF的回答及解釋可以替您解決問題。