本帖最后由 superrise 于 2010-11-23 20:08 编辑
就象合并版块一样,合并用户,帖子、相册等等。。后台里面没找到。。请官方给个方法。谢谢
————————————————————————————————————————————————
自己搞定了,原来在function_member.php 里面有一个 membermerge 函数,但是从来没有调用过,我在这个基础做了一些修改。
- function getuidfields() {
- return array(
- 'forum_access',
- 'forum_activity',
- 'forum_activityapply',
- 'forum_attachment',
- 'forum_attachmentfield',
- 'forum_creditslog',
- 'forum_debate',
- 'forum_debatepost',
- 'home_favorite',
- 'forum_medallog',
- 'common_member_magic',
- 'forum_memberrecommend|recommenduid',
- 'forum_moderator',
- 'forum_modwork',
- 'common_mytask',
- 'forum_order',
- 'forum_groupinvite',
- 'forum_groupuser',
- 'forum_pollvoter',
- 'forum_post|authorid',
- 'forum_thread|authorid',
- 'forum_threadmod',
- 'forum_tradecomment|raterid,rateeid',
- 'forum_tradelog|sellerid,buyerid',
- 'home_album',
- 'home_appcreditlog',
- 'home_blacklist|uid,buid',
- 'home_blog',
- 'home_blogfield',
- 'home_class',
- 'home_clickuser',
- 'home_comment|uid,authorid',
- 'home_docomment',
- 'home_doing',
- 'home_feed',
- 'home_feed_app',
- 'home_pic',
- 'home_share',
- 'home_userapp',
- 'home_userappfield',
- 'common_admincp_member'
- );
- }
- function membermerge($olduid, $newuid) {
- $uidfields = getuidfields();
- foreach($uidfields as $value) {
- list($table, $field, $stepfield) = explode('|', $value);
- $fields = !$field ? array('uid') : explode(',', $field);
- foreach($fields as $field) {
- DB::query("UPDATE `".DB::table($table)."` SET `$field`='$newuid' WHERE `$field`='$olduid'");
- }
- }
- $oldname = DB::result(DB::query("SELECT username FROM ".DB::table('common_member')." where uid = $olduid"), '');
- $newname = DB::result(DB::query("SELECT username FROM ".DB::table('common_member')." where uid = $newuid"), '');
- DB::query("UPDATE `".DB::table("forum_post")."` SET `author`='$newname' WHERE `author`= '$oldname'");
- DB::query("UPDATE `".DB::table("forum_thread")."` SET `author`='$newname' WHERE `author`= '$oldname'");
- DB::query("UPDATE `".DB::table("home_comment")."` SET `author`='$newname' WHERE `author`= '$oldname'");
- }
复制代码
然后调用 membermerge函数,比如:
membermerge(36108,3); //uid: 36108 -> uid: 3
除了个人资料、统计以外,其他都可以合并过去。
|