Please realize that I am extremely busy and probably won't be able to support this much. I do plan to integrate something more robust into vBulletin so you no longer need to come here to gain this functionality. Perhaps you can bug feldon23 for support? The 3.0/3.5 code differences are easy enough to understand when you compare the two.
Save this as ezimport.php and place it in your admincp directory. Also note that it has no Admincp permission checking so buyer beware.
PHP Code:
<? /*************************************************************************** * ezboard import member converter 3.0b2 * Originally By Jason "DarkReaper" Rodzik * Special Thanks to Firefly and Stallion * Updated to vBulletin 3.0.x by Feldon * Updated to vBulletin 3.5.x by Freddie, pester Feldon for support * * http://www.unrealtournament.org/forums * * Support for this hack at: * http://vbulletin.com/forum/showthread.php?t=31443 *******************************************************************************/
// ######################## SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE);
// ##################### DEFINE IMPORTANT CONSTANTS ####################### define('THIS_SCRIPT', 'ezimport');
// #################### PRE-CACHE TEMPLATES AND DATA ###################### $phrasegroups = array(); $specialtemplates = array(); $globaltemplates = array(); $actiontemplates = array();
echo '<table cellpadding="4" cellspacing="0" border="0" align="center" width="90%" class="tborder"><tr><td class="alt1" style="padding-left: 20px; padding-top: 20px;">'; if (!empty($vbulletin->GPC['oldusername']) AND !empty($vbulletin->GPC['newusername'])) { if (!($getuser = $db->query_first("SELECT userid FROM " . TABLE_PREFIX . "user WHERE username='" . $db->escape_string($vbulletin->GPC['newusername']) . "'"))) { echo "<b>You have entered an invalid vBulletin username!</b><br />\n"; echo "There is no user by the name of <b>" . $vbulletin->GPC['newusername'] . "</b> registered on this forum.<br><br>\n"; } else { // get hold of his/her posts and update threads echo "Associating vB user <b>" . $vbulletin->GPC['newusername'] . " (#" . $getuser['userid'] . ")</b> with their EZBoard posts under username <b>" . $vbulletin->GPC['oldusername'] . "</b>..."; $db->query_write(" UPDATE " . TABLE_PREFIX . "post SET userid = $getuser[userid], username = '" . $db->escape_string($vbulletin->GPC['newusername']) . "' WHERE username = '" . $db->escape_string($vbulletin->GPC['oldusername']) . "' "); $db->query_write(" UPDATE " . TABLE_PREFIX . "thread SET postuserid = $getuser[userid], postusername = '" . $db->escape_string($vbulletin->GPC['newusername']) . "' WHERE postusername = '" . $db->escape_string($vbulletin->GPC['oldusername']) . "' "); $db->query_write(" UPDATE " . TABLE_PREFIX . "thread SET lastposter = '" . $db->escape_string($vbulletin->GPC['newusername']) . "' WHERE lastposter = '" . $db->escape_string($vbulletin->GPC['oldusername']) . "' "); $db->query_write(" UPDATE " . TABLE_PREFIX . "forum SET lastposter = '" . $db->escape_string($vbulletin->GPC['newusername']) . "' WHERE lastposter = '" . $db->escape_string($vbulletin->GPC['oldusername']) . "' "); echo "<b>Done!</b><br /><br />\n";
// Update post counts if (!($totalposts = $db->query_first("SELECT COUNT(postid) AS posts FROM " . TABLE_PREFIX . "post WHERE userid = $getuser[userid]"))) { // some versions of mysql like to return nothing if there are no matching rows when they should return 0 $totalposts['posts'] = 0; } $db->query_write("UPDATE " . TABLE_PREFIX . "user SET posts = $totalposts[posts] WHERE userid = $getuser[userid]"); echo "New post count is <b>" . $totalposts['posts'] . "</b><br />\n";
echo "You should now update your member titles.<br /><br />\n"; } } else { echo "<b>You have not entered a vBulletin username!</b><br />\n"; echo "Please enter new and old usernames and then click Update!<br />\n"; } echo '</td></tr></table>'; }
Actually I will try to see if it does so now. Wish me luck. Really it would be great if this was a standard feature on the admin cp
OK... the udpate is ....... wait for it.......... this all seems to work flawlessly on my new inport and subsequent upgrade form 3.6 to 3.6.1
thanks to all for making this possible
I have run into one small problem. I have setup new user titles to match those in my old board. Once mapping the userid's the script suggests that I update the titles section, i.e. rerun it. I have done this several times and have also rerun the post counts for the users several times. The news users posts count all is displaying and searching correctly however the titles are remaining as if they have a post count of 0.
<? *************************************************************************** * ezboard import member converter 3.0b2 * Originally By Jason "DarkReaper" Rodzik * Special Thanks to Firefly and Stallion * Updated to vBulletin 3.0.x by Feldon * Updated to vBulletin 3.5.x by Freddie * * *******************************************************************************/
It helps me to merge deleted members' posts with the "Misafir" account. I'm going to add this script to the modcp but there is a problem.
It doesn't check if a user is deleted or still registered. Moderators can move registered members' posts to "Misafir" account and i want to prevent this.
Shortly, i need a usergroup id check for
PHP Code:
if $vbulletin->GPC['oldusername'] = $vbulletin->userinfo['usergroupid'] == 1
Not sure how to do this.
Can you PLEASE tell me how to check if 'oldusername' is a usergroupid=1 or NOT.
Am just reporting back that I've used this script fine with v3.6.8 (latest patch).
Re the comment on User Titles - if you go to User Titles in Admin after you've all your linking, change titles to what you want & click on the link on that screen 'Update User Titles' (or something similar), it works fine & all my users have their correct titles.