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挖礦的也是可以(疑?
 

留言

這個網誌中的熱門文章