Importing data from phpBB2

CONTENT; //Connect to and select Database echo "Connecting to Database...\n"; $lnk = mysql_connect($host, $user, $pass) or die ('Not connected: ' . mysql_error()); mysql_select_db($db, $lnk) or die('Error: '.mysql_error()); echo "OK\n"; //Populate Categories echo "
Populating Categories...\n"; $query="TRUNCATE TABLE {$mosConfig_dbprefix}sb_categories"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); // Import the main categories $query="INSERT INTO {$mosConfig_dbprefix}sb_categories (id,parent,name,cat_emoticon,locked,alert_admin,moderated,moderators,pub_access,pub_recurse,admin_access,admin_recurse,ordering,future2,published,checked_out,checked_out_time,review,hits,description) SELECT cat_id + 500, 0, cat_title, 0, 0, 0, 0, NULL, 0, 0, 0, 0, cat_order, 0, 1, 0, '0000-00-00 00:00:00', 0, 0, '' FROM {$phpbb_dbprefix}categories ORDER BY cat_order"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); // Import the forums $query="INSERT INTO {$mosConfig_dbprefix}sb_categories (id,parent,name,ordering,description,pub_access,pub_recurse,published) SELECT forum_id, cat_id + 500, forum_name, forum_order, forum_desc, 0, 0, 1 FROM {$phpbb_dbprefix}forums"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); echo "OK\n"; //Populate Messages Table echo "
Populating Messages Table...\n"; $query="TRUNCATE TABLE {$mosConfig_dbprefix}sb_messages"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); $query="ALTER TABLE `{$mosConfig_dbprefix}sb_messages` ADD `phpbb_userid` int(10) NOT NULL default '1'"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); // Read all threads and posts from phpbb $query="SELECT p.post_id, p.poster_ip, p.topic_id, p.poster_id, p.post_time, t.topic_title, t.forum_id, t.topic_views" ." FROM {$phpbb_dbprefix}posts AS p, {$phpbb_dbprefix}topics AS t WHERE p.topic_id = t.topic_id" ." ORDER BY p.topic_id, p.post_id"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); // Iterate over all the posts and add them to simpleboard after some conversion $currentthread = ""; $lastpost = 0; while ($row = mysql_fetch_object($result)) { // Convert ip to sb-format $row->poster_ip = phpbb_decode_ip($ip); // Check if we have a new thread number if ( $currenttopicid != $row->topic_id ) { $currenttopicid = $row->topic_id; $currentthread = $row->post_id; $lastpost = 0; $subject = addslashes( $row->topic_title ); } else { $subject = "Re: " . addslashes( $row->topic_title ); } // Insert the post into the database $query="INSERT INTO `{$mosConfig_dbprefix}sb_messages`" ." (id, ip, phpbb_userid, userid, name, time, thread, subject, hits, catid, parent)" ." VALUES ('$row->post_id', '$row->poster_ip', '$row->poster_id', '$row->poster_id', '$row->poster_id', " ." '$row->post_time', '$currentthread', '$subject', '$row->topic_views', '$row->forum_id', '$lastpost')"; $updateresult = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); $lastpost = $row->post_id; } mysql_free_result($result); echo "OK\n"; //Populate Messages_Text Table echo "
Populating Messages_Text Table...\n"; $query="TRUNCATE TABLE {$mosConfig_dbprefix}sb_messages_text"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); $query="SELECT post_id, post_text FROM {$phpbb_dbprefix}posts_text"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); $mtext = array(); $mpostid = array(); while ($row = mysql_fetch_object($result)) { $text = addslashes($row->post_text); $mtext[] = prep($text); $mpostid[] = $row->post_id; } mysql_free_result($result); for ($i=0; $i < count($mtext); $i++){ $query="INSERT INTO `{$mosConfig_dbprefix}sb_messages_text`" ." (mesid, message) VALUES" ." (".$mpostid[$i].", \"".$mtext[$i]."\")"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); } echo "OK\n"; //Populate Users Table echo "
Populating Users Table...\n"; $query="TRUNCATE TABLE {$mosConfig_dbprefix}sb_users"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); // Get the group id:s for regular users and administrators in Mambo. $query = "SELECT group_id FROM {$mosConfig_dbprefix}core_acl_aro_groups WHERE name='Registered' OR name='Administrator' ORDER BY name ASC"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); $admingid = mysql_result( $result, 0, 0 ); $usergid = mysql_result( $result, 1, 0 ); // Read all users from phpBB2 $query="SELECT u.*, b.ban_userid FROM {$phpbb_dbprefix}users AS u LEFT OUTER JOIN {$phpbb_dbprefix}banlist AS b ON u.user_id = b.ban_userid WHERE user_id > 0 ORDER BY u.user_id"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); while ( $row = mysql_fetch_object( $result ) ) { // Is this user banned? $block = "0"; if ( $row->ban_userid ) { $block = "1"; } // Convert date for last visit and register date. $registerDate = date( "Y-m-d H:i:s", $joindate ); $lastvisitDate = date( "Y-m-d H:i:s", $lastlog ); // Set user type and group id if ( $row->user_level == "1" ) { $usertype = "administrator"; $gid = $admingid; } else { $usertype = "user"; $gid = $usergid; } // Convert bbcode in signature $row->user_sig = prep( $row->user_sig ); // No imported users will get mails from the admin $emailadmin = "0"; print "$row->username, "; // Insert user into Mambo user table $query = " INSERT INTO {$mosConfig_dbprefix}users (name, username, email, password, usertype, block, sendEmail, gid, registerDate, lastvisitDate) VALUES ('$row->username', '$row->username', '$row->user_email', '$row->user_password', '$usertype', '$block', '$emailadmin', '$gid', '$registerDate', '$lastvisitDate') "; mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); $newuserid = mysql_insert_id( ); // Add user to core acl groups map $query = "INSERT INTO {$mosConfig_dbprefix}core_acl_groups_aro_map ( group_id, aro_id ) VALUES ( $gid, $newuserid )"; mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); // Add user to core acl aro map $query = "INSERT INTO {$mosConfig_dbprefix}core_acl_aro (aro_id,section_value,value,order_value,name,hidden) VALUES ( $newuserid, 'users', $newuserid, 0, '$row->username', 0 )"; mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); // Update all posts from this user with the correct userid and username $query = "UPDATE `{$mosConfig_dbprefix}sb_messages` SET userid = '$newuserid', name = '$row->username' WHERE phpbb_userid = '$row->user_id'"; mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); // Add the user to the simpleboard usertable $query = "INSERT INTO `{$mosConfig_dbprefix}sb_users` (userid, posts, signature) VALUES ('$newuserid', '$row->user_posts', '$row->user_sig')"; mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); } //mysql_free_result($result); // Remove the placeholder for the userid from phpBB2 $query="ALTER TABLE `{$mosConfig_dbprefix}sb_messages` DROP `phpbb_userid`"; $result = mysql_query($query) or die("
Invalid query:
$query
" . mysql_error()); echo "OK\n"; echo "
Complete...\n"; echo << CONTENT; //--- Rewrite phpBB ip ---// function phpbb_decode_ip($int_ip) { if ($int_ip == '00000000') { return '0.0.0.0'; } else { return long2ip("0x{$int_ip}"); } } //--- Function to prepare strings for MySQL storage ---/ function prep($s) { // Parse out the $uid things that fuck up bbcode // $s = preg_replace('/\[b:(.*?)\]/', '[b]', $s); $s = preg_replace('/\[\/b:(.*?)\]/', '[/b]', $s); // $s = preg_replace('/\[i:(.*?)\]/', '[i]', $s); $s = preg_replace('/\[\/i:(.*?)\]/', '[/i]', $s); // $s = preg_replace('/\[u:(.*?)\]/', '[u]', $s); $s = preg_replace('/\[\/u:(.*?)\]/', '[/u]', $s); // quote $s = preg_replace('/\[quote:(.*?)\]/', '[quote]', $s); $s = preg_replace('/\[quote(:(.*?))?="(.*?)"\]/', '[b]\\3[/b]\n[quote]', $s); $s = preg_replace('/\[\/quote:(.*?)\]/', '[/quote]', $s); // image #$s = preg_replace('/\[img:(.*?)="(.*?)"\]/', '[img="\\2"]', $s); $s = preg_replace('/\[img:(.*?)\](.*?)\[\/img:(.*?)\]/si', '[img]\\2[/img]', $s); // color $s = preg_replace('/\[color=(.*?):(.*?)\]/', '[color=\\1]', $s); $s = preg_replace('/\[\/color:(.*?)\]/', '[/color]', $s); // size $s = preg_replace('/\[size=\d:(.*?)\]/', '[size=1]', $s); $s = preg_replace('/\[size=1[0123]:(.*?)\]/', '[size=2]', $s); $s = preg_replace('/\[size=1[4567]:(.*?)\]/', '[size=3]', $s); $s = preg_replace('/\[size=((1[89])|(2[01])):(.*?)\]/', '[size=4]', $s); $s = preg_replace('/\[size=2[234567]:(.*?)\]/', '[size=5]', $s); $s = preg_replace('/\[size=((2[89])|(3[01])):(.*?)\]/', '[size=6]', $s); $s = preg_replace('/\[size=3[2-9]:(.*?)\]/', '[size=7]', $s); $s = preg_replace('/\[\/size:(.*?)\]/', '[/size]', $s); // code $s = preg_replace('/\[code:(.*?):(.*?)\]/', '[code:\\1]', $s); $s = preg_replace('/\[\/code:(.*?):(.*?)\]/', '[/code:\\1]', $s); // lists $s = preg_replace('/\[list(:(.*?))?\]/', '[ul]', $s); $s = preg_replace('/\[list=([a1]):(.*?)\]/', '[ol]', $s); $s = preg_replace('/\[\*:(.*?)\]/', '[li]', $s); $s = preg_replace('/\[\/list:u:(.*?)\]/', '[/ul]', $s); $s = preg_replace('/\[\/list:o:(.*?)\]/', '[/ol]', $s); $s = addslashes($s); return $s; } ?>