Joomla Fireboard Forum to PHPBB

This is an archive of the phpBB 2.0.x convertors forum. Support for phpBB2 has now ended.
Forum rules
Following phpBB2's EoL, this forum is now archived for reference purposes only.
Please see the following announcement for more information: viewtopic.php?f=14&t=1385785
ultrastaruser
Registered User
Posts: 3
Joined: Thu Feb 21, 2008 8:26 am

Re: Joomla Fireboard Forum to PHPBB

Post by ultrastaruser »

Thank you very much for this!
I was able to successfully convert too.
User avatar
amnion
Registered User
Posts: 34
Joined: Fri Jul 20, 2007 12:37 am
Location: Colorado
Contact:

Re: Joomla Fireboard Forum to PHPBB

Post by amnion »

I'm getting the following error:

Code: Select all

Connecting to Database... OK
Populating Categories...
Inserted 6 Rows... OK
Populating Forums...
Inserted 30 Rows... OK
Populating Topics...
Inserted 483 Rows... OK
Populating Posts...
Inserted 2303 Rows... OK
Populating Post Text & Converting Fireboard Syntax to phhBB Syntax... (This may take a while)
Inserted 2303 Rows... OK
Populating Users Table From Joomla...
Invalid query:
INSERT INTO phpbb_users (user_id, user_active, username, user_password, user_session_time, user_lastvisit, user_regdate, user_level, user_dateformat, user_email) SELECT id, CASE block WHEN 0 THEN 1 ELSE 0 END, username, password, UNIX_TIMESTAMP(lastvisitDate), UNIX_TIMESTAMP(lastvisitDate), UNIX_TIMESTAMP(registerDate), CASE gid WHEN 25 THEN 1 WHEN 24 THEN 1 ELSE 0 END, 'd M Y H:i', email FROM jos_users ORDER by id;
Table 'fatalfit_drupal.jos_users' doesn't exist
I checked, though, and I do have a jos_users table.
6600
Registered User
Posts: 2
Joined: Mon May 17, 2004 8:58 am

Re: Joomla Fireboard Forum to PHPBB

Post by 6600 »

Hi,

Would be great to get this working!

I am trying the script and get the following error,

Connecting to Database... OK
Populating Categories...
Invalid query:
INSERT INTO phpbb_categories (cat_id, cat_title, cat_order) SELECT id, name, ordering*10 FROM jos_fb_categories WHERE jos_fb_categories.parent = '0' ORDER by ordering
Table 'phpbb.jos_fb_categories' doesn't exist

Thing is jos_fb_categories does exist? Should I be working from two db's one phpbb and one joomla, ir should I have the phpbb tables in the joomla db?? I am using fireboard 1.0.4.

Thanks!
crazydiver
Registered User
Posts: 37
Joined: Fri Mar 14, 2008 1:08 am

Re: Joomla Fireboard Forum to PHPBB

Post by crazydiver »

Hello,


I am also interested in knowing how to convert from fireboard to phpbb3. I was directed here through a search I did, but unfortunately I do not understand the technical conversations happening on this post. Sorry!

I'm just trying to figure this one out...

do I just copy the code, name it convert.php, place it into my phpbb2 root folder and point my browser to it after installation or before installation of phpbb2? Then afterwards upgrade to phpbb3?


And I believe that there is another code... What is this code for? How do you run it?

Code: Select all

  SELECT id, parent, name, description, 0, ordering, c.posts, b.topics, d.last, NULL, 0, 0, 1, 1, 1, 1, 1, 3, 3, 1, 1, 0
    FROM jos_fb_categories
    LEFT JOIN (SELECT catid, COUNT(*) AS topics
    FROM jos_fb_messages WHERE id=thread GROUP BY catid) b ON jos_fb_categories.id=b.catid
    LEFT JOIN (SELECT catid, COUNT(*) AS posts
    FROM jos_fb_messages GROUP BY catid) c ON jos_fb_categories.id=c.catid
    LEFT JOIN (SELECT catid, MAX(id) AS last FROM jos_fb_messages GROUP BY catid) d ON jos_fb_categories.id=d.catid WHERE parent != 0 GROUP BY id;

and one more thing... I get this error on installation.

Importing data from Fireboard
Connecting to Database...
Warning: mysql_connect(): Can't connect to local MySQL server through socket '/usr/local/mysql-5.0/data/mysql.sock' (2) in /home/content/p/r/o/mysite/html/forums/convert.php on line 52
Not connected: Can't connect to local MySQL server through socket '/usr/local/mysql-5.0/data/mysql.sock' (2)

Is it the mysql database I'm using??? What the???

Apologies for the headache! but I thank everyone who made up this converter!!!

thanks!
Last edited by crazydiver on Sat Mar 15, 2008 2:23 pm, edited 1 time in total.
crazydiver
Registered User
Posts: 37
Joined: Fri Mar 14, 2008 1:08 am

Re: Joomla Fireboard Forum to PHPBB

Post by crazydiver »

can someone help me with this issue please?

Thank you!!!
mkruer
Registered User
Posts: 74
Joined: Mon Apr 28, 2003 7:49 pm

Re: Joomla Fireboard Forum to PHPBB

Post by mkruer »

Sorry guys/gals I don't really keep up with this stuff. But I will try to help using my limited knowledge.
mkruer
Registered User
Posts: 74
Joined: Mon Apr 28, 2003 7:49 pm

Re: Joomla Fireboard Forum to PHPBB

Post by mkruer »

amnion wrote:I'm getting the following error:

Code: Select all

Connecting to Database... OK
Populating Categories...
Inserted 6 Rows... OK
Populating Forums...
Inserted 30 Rows... OK
Populating Topics...
Inserted 483 Rows... OK
Populating Posts...
Inserted 2303 Rows... OK
Populating Post Text & Converting Fireboard Syntax to phhBB Syntax... (This may take a while)
Inserted 2303 Rows... OK
Populating Users Table From Joomla...
Invalid query:
INSERT INTO phpbb_users (user_id, user_active, username, user_password, user_session_time, user_lastvisit, user_regdate, user_level, user_dateformat, user_email) SELECT id, CASE block WHEN 0 THEN 1 ELSE 0 END, username, password, UNIX_TIMESTAMP(lastvisitDate), UNIX_TIMESTAMP(lastvisitDate), UNIX_TIMESTAMP(registerDate), CASE gid WHEN 25 THEN 1 WHEN 24 THEN 1 ELSE 0 END, 'd M Y H:i', email FROM jos_users ORDER by id;
Table 'fatalfit_drupal.jos_users' doesn't exist
I checked, though, and I do have a jos_users table.
The most likely reason you will get this error is because your are missing a field that it expects. In this case id, block, username, password, lastvisitdate, registerdate, gid, email. Run just the select statement

Code: Select all

SELECT id, CASE block WHEN 0 THEN 1 ELSE 0 END, username, password, UNIX_TIMESTAMP(lastvisitDate), UNIX_TIMESTAMP(lastvisitDate), UNIX_TIMESTAMP(registerDate), CASE gid WHEN 25 THEN 1 WHEN 24 THEN 1 ELSE 0 END, 'd M Y H:i', email FROM jos_users ORDER by id;
and it should return some results. If it does any you have not modified any tables, then I don't know where error is occurring. You might have to finagle the code, fireboad has a habit of just changing stuff.
mkruer
Registered User
Posts: 74
Joined: Mon Apr 28, 2003 7:49 pm

Re: Joomla Fireboard Forum to PHPBB

Post by mkruer »

6600 wrote:Hi,

Would be great to get this working!

I am trying the script and get the following error,

Connecting to Database... OK
Populating Categories...
Invalid query:
INSERT INTO phpbb_categories (cat_id, cat_title, cat_order) SELECT id, name, ordering*10 FROM jos_fb_categories WHERE jos_fb_categories.parent = '0' ORDER by ordering
Table 'phpbb.jos_fb_categories' doesn't exist

Thing is jos_fb_categories does exist? Should I be working from two db's one phpbb and one joomla, ir should I have the phpbb tables in the joomla db?? I am using fireboard 1.0.4.

Thanks!
It It sounds like fireboard changed the something in the database structure.

Run this is phpmy admin

Code: Select all

SELECT id, name, ordering*10 FROM jos_fb_categories
This should return some results if its working.
mkruer
Registered User
Posts: 74
Joined: Mon Apr 28, 2003 7:49 pm

Re: Joomla Fireboard Forum to PHPBB

Post by mkruer »

crazydiver wrote:Hello,


I am also interested in knowing how to convert from fireboard to phpbb3. I was directed here through a search I did, but unfortunately I do not understand the technical conversations happening on this post. Sorry!

I'm just trying to figure this one out...

do I just copy the code, name it convert.php, place it into my phpbb2 root folder and point my browser to it after installation or before installation of phpbb2? Then afterwards upgrade to phpbb3?
Yes copy the code into a new php file, the name and location of it is irrelevant, as long it is in the web tree.
And I believe that there is another code... What is this code for? How do you run it?

Code: Select all

  SELECT id, parent, name, description, 0, ordering, c.posts, b.topics, d.last, NULL, 0, 0, 1, 1, 1, 1, 1, 3, 3, 1, 1, 0
    FROM jos_fb_categories
    LEFT JOIN (SELECT catid, COUNT(*) AS topics
    FROM jos_fb_messages WHERE id=thread GROUP BY catid) b ON jos_fb_categories.id=b.catid
    LEFT JOIN (SELECT catid, COUNT(*) AS posts
    FROM jos_fb_messages GROUP BY catid) c ON jos_fb_categories.id=c.catid
    LEFT JOIN (SELECT catid, MAX(id) AS last FROM jos_fb_messages GROUP BY catid) d ON jos_fb_categories.id=d.catid WHERE parent != 0 GROUP BY id;

and one more thing... I get this error on installation.

Importing data from Fireboard
Connecting to Database...
Warning: mysql_connect(): Can't connect to local MySQL server through socket '/usr/local/mysql-5.0/data/mysql.sock' (2) in /home/content/p/r/o/mysite/html/forums/convert.php on line 52
Not connected: Can't connect to local MySQL server through socket '/usr/local/mysql-5.0/data/mysql.sock' (2)

Is it the mysql database I'm using??? What the???

Apologies for the headache! but I thank everyone who made up this converter!!!

thanks!
The most likely cause of the error is that you not all the information was supplied or that some part of it was supplied incorrectly. For all intents and purposes it should be the same information that you used to install phpbb2 This is the only section you should need to modify if you are using the same versions of the software i was. with newer software you might need to tweak the code a little do to some changes made in Fireboard. It is not difficult, it just takes some time, patients and a wee bit of effort to figure out what is going on.

Code: Select all

  -------------Config---------------------*/
    //MySQL Database host - usually 'localhost'
    $host='localhost';

    //MySQL Database user
    $user='database-username-goes-here';
   
    //MySQL Database password
    $pass='your-database-password-goes-here';
   
    //MySQL Database name
    $db='enter-database-name-here';

    // Mambo database prefix
    $mosConfig_dbprefix = "jos_";

    // phpBB2 database prefix
    $phpbb_dbprefix = "phpbb_";
crazydiver
Registered User
Posts: 37
Joined: Fri Mar 14, 2008 1:08 am

Re: Joomla Fireboard Forum to PHPBB

Post by crazydiver »

Hello Mkruer,

How are you?
I just got your message right now! Thank you for responding and I apologize for my late reply! I will try to figure this conversion thing out and I will reply with more results.

I wanted to say thanks!~
cwknox
Registered User
Posts: 9
Joined: Mon Apr 07, 2008 6:01 am

Re: Joomla Fireboard Forum to PHPBB

Post by cwknox »

I am running into too many bugs on Fireboard and am ready to take my non-technical user community through a migration to phpBB. I kicked off the "Christmas Script" that was posted above, but got an SQL error that I haven't seen reported previously in this thread. I should mention that I'm running Joomla! 1.5.1 and Fireboard 1.4 with Community Builder 1.1.

I'd appreciate a look:

Code: Select all

Connecting to Database... OK
Populating Categories...
Inserted 4 Rows... OK
Populating Forums...
Invalid query:
INSERT INTO phpbb_forums (forum_id, cat_id, forum_name, forum_desc, forum_status, forum_order, forum_posts, forum_topics, forum_last_post_id, prune_next, prune_enable, auth_view, auth_read, auth_post, auth_reply, auth_edit,auth_delete, auth_sticky, auth_announce, auth_vote, auth_pollcreate, auth_attachments) SELECT id, parent, name, description, 0, ordering, c.posts, b.topics, d.last, NULL, 0, 0, 1, 1, 1, 1, 1, 3, 3, 1, 1, 0 FROM jos_fb_categories LEFT JOIN (SELECT catid, COUNT(*) AS topics FROM jos_fb_messages WHERE id=thread GROUP BY catid) b ON jos_fb_categories.id=b.catid LEFT JOIN (SELECT catid, COUNT(*) AS posts FROM jos_fb_messages GROUP BY catid) c ON jos_fb_categories.id=c.catid LEFT JOIN (SELECT catid, MAX(id) AS last FROM jos_fb_messages GROUP BY catid) d ON jos_fb_categories.id=d.catid WHERE parent != 0 GROUP BY id;
The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
cwknox
Registered User
Posts: 9
Joined: Mon Apr 07, 2008 6:01 am

Re: Joomla Fireboard Forum to PHPBB

Post by cwknox »

I've solved part of my problem, and discovered a couple of new ones. For those who are interested, I got this thing to work -- a bit. I got around the SET SQL_BIG_SELECTS issue by adding the following entry just after the database connect:

Code: Select all

    //Connect to and select Database
        echo "Connecting to Database...\n"; flush();
        $lnk = mysql_connect($host, $user, $pass) or die ('Not connected: ' . mysql_error());
$sqlFix = "SET SESSION SQL_BIG_SELECTS=1";
$resFix = mysql_query($sqlFix);
Setting the variable $sqlFix and then executing mysql_query() with that parameter did the trick. Not being a PHP hand, figuring out that syntax was a bit of a trick. I stole the code from a drupal board: (http://drupal.org/node/163377) -- Thanks to Google and Drupal.

This got me through until I ran into a user whose signature had a bunch of backslashes (\\\\) in it. Fireboard has an odd bug that stacks backslashes in front of quotes or apostrophes in signatures. The script code isn't robust enough to anticipate odd sigs -- yet (I have faith!). I hacked around that by nulling out the signature lines. Sorry, guys, you can reset your own sigs. They'll have access to the FB installation for a while anyway.

But now I'm down to a puzzler. One board contains a bunch of child boards. None of those child boards was populated. I know precious little about PHP, MySQL, phpBB, or Fireboard, so it's not surprising that I should be stuck. I have no idea how to translate the Fireboard child boards to a phpBB board.

Suggestions?
Last edited by cwknox on Tue Apr 08, 2008 1:56 pm, edited 1 time in total.
cwknox
Registered User
Posts: 9
Joined: Mon Apr 07, 2008 6:01 am

Re: Joomla Fireboard Forum to PHPBB

Post by cwknox »

Hope you'll indulge me for answering my own posts, but I want to keep my questions current and not to leave any dangling threads.

Knowledgeable phpBB'ers will know immediately that the reason I'm not getting the child boards is that phpBB2 does not support nested boards.

Now some exploration whether the best way out is to a) upgrade the ported board to phpBB3 and then insert the child boards manually, b) hack up a migration of the child boards into the flat phpBB2 structure, or c) interest someone in refining the Xmas Script to account for phpbb3 and nested forums. My board is small enough that a) is still an option, but big enough that I'd rather automate it.

I'm continuing to explore, but if someone has a suggestion, I'd love to hear it.
mkruer
Registered User
Posts: 74
Joined: Mon Apr 28, 2003 7:49 pm

Re: Joomla Fireboard Forum to PHPBB

Post by mkruer »

Thanks for the “SET SESSION SQL_BIG_SELECTS=1” that may have been one of the reason why it didn’t run for some people in the past. I think that for people who use MySQL regularly, they just set it on by default in the startup config, that and the time out. Anyway from what you said sounds like some of the other stuff I did run into, expecial with the child branches. I had to do the same thing. This might be solved if the conversion was direct, but I am not a programmer by trade, nor do I know how to solve the user password issue. If you get the script to work for you, I would recommend reposting the entire script in its entirety with any improvements for future use, and up the version number, and place your name if you want for credit.
cwknox
Registered User
Posts: 9
Joined: Mon Apr 07, 2008 6:01 am

Re: Joomla Fireboard Forum to PHPBB

Post by cwknox »

Here is my very rough hack to Matt's Xmas Script. I made three significant changes:

Added the BIG_SELECT
I was able to run the script with it where it was bailing previously

Pruned the signatures
They were causing problems because many contained stacked backslashes which escaped the next character.

Did away with the pruning of child boards
I had to do a double jump, to phpBB2, then to 3 and I wanted the subordinate boards.

No question, it's a hack -- I'm not a programmer. Hope someone else finds it useful. I think Matt gave us a good start.

Xmas Script 0.2

Code: Select all

<?php
    /*
    Fireboard 1.0.x to phbBB2 2.0.x converter
    0.0  Based on the phpbb2tosb.php script by Olle Johansson http://mambo.theyard.org/ and from Marcos Osorno http://www.blort.com
    0.1  Based upon updated script from http://www.phpbb.com/community/viewtopic.php?f=10&t=371271&p=2026820
    0.2  The tweeks here are based on 
http://www.phpbb.com/community/viewtopic.php?f=10&t=588149#p3598205

    * Tested on: phpBB 2.0.22, Joomla 1.0.13 w/ Fireboard 1.0.3, PHP 5.2.3, MySQL 5.0.45
    * Tested by executing from within the phpBB directory
    * Will DESTROY all the data in your phpBB db and replace it with SB data! Does not append!

    -------------Config---------------------*/
    //MySQL Database host - usually 'localhost'
        $host='my.database.server';

    //MySQL Database user
       $user='my_user';

    //MySQL Database password
       $pass='my_password';

    //MySQL Database name
       $db='my_db';

    // Mambo database prefix
        $mosConfig_dbprefix = "jos_";

    // phpBB2 database prefix
        $phpbb_dbprefix = "phpbb_";

    // Temp DB prefix used for temporary tables in the script
    // set this to a prefix you are NOT using on your mySQL db
        $temp_dbprefix = "temp_";
    /* ---------------------------------------*/
        define("BBCODE_UID_LEN", 10);
        $bbcode_on = 'true';

        ini_set("magic_quotes_gpc", "1");
        set_magic_quotes_runtime ( 0 );

       echo "<?xml version=\"1.0\"?>";
       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
       echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">";
       echo "<head>";
       echo "<title>Importing data from Fireboard</title>";
       echo "<meta http-equiv=\"Content-Type\" content=\"text/html; iso-8859-1\" />";
       echo "</head>";
       echo "<body>";
       echo "<h1>Importing data from Fireboard</h1>"; flush();

    //Connect to and select Database
        echo "Connecting to Database...\n"; flush();
        $lnk = mysql_connect($host, $user, $pass) or die ('Not connected: ' . mysql_error());
$sqlFix = "SET SESSION SQL_BIG_SELECTS=1";
$resFix = mysql_query($sqlFix);

        mysql_select_db($db, $lnk) or die('Error: '.mysql_error());
        echo "OK\n"; flush();

    // PHPBB Categories > Forums > Topics > Posts > Posts Text

    // Part One - Populate Categories
        echo "<br />Populating Categories...\n"; flush();
    // Import the main categories
    // Prune those Fireboard categories which have a parent
    // Multiply the ordering by 10 to conform to phpbb2 format
    // if fb_categories.parent = 0 then category is a phpbb cateogory

	//I did away with the pruning of Fireboard categories with a 
	//parent.  I took the 0 out of the where clause and got 
	//everything since I had child boards.  This is an area that 
	//will need a clean up to go to phpBB3.  
    //clear phpbb categories table
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}categories";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

    // if fb_categories.parent = 0 then category is a category
        $query = "INSERT INTO {$phpbb_dbprefix}categories (cat_id, cat_title, cat_order)
               SELECT id, name, ordering*10
               FROM {$mosConfig_dbprefix}fb_categories
               ORDER by ordering";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

    //Count Rows Inserted
       $query = "SELECT COUNT(*)
               FROM {$phpbb_dbprefix}categories;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        list($count) = mysql_fetch_row($result);
        echo "<br />Inserted $count Rows... OK"; flush();

    // clear phpbb forums table
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}forums";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

    // Part Two - Populate Forums
    // phpbb2 considers category header messages as forums
    // these are indicated in sb by setting fb_messages.id=sb_messages.thread
    // the actual messages can be detected by seeing that fb_messages.parent != 0
       echo "<br />Populating Forums...\n"; flush();
        $query = "INSERT INTO {$phpbb_dbprefix}forums (forum_id, cat_id, forum_name, forum_desc, forum_status, forum_order, forum_posts, forum_topics, forum_last_post_id, prune_next, prune_enable, auth_view, auth_read, auth_post, auth_reply, auth_edit,auth_delete, auth_sticky, auth_announce, auth_vote, auth_pollcreate, auth_attachments)
               SELECT id, parent, name, description, 0, ordering, c.posts, b.topics, d.last, NULL, 0, 0, 1, 1, 1, 1, 1, 3, 3, 1, 1, 0
               FROM {$mosConfig_dbprefix}fb_categories
               LEFT JOIN (SELECT catid, COUNT(*) AS topics FROM {$mosConfig_dbprefix}fb_messages WHERE id=thread GROUP BY catid) b
               ON {$mosConfig_dbprefix}fb_categories.id=b.catid
               LEFT JOIN (SELECT catid, COUNT(*) AS posts FROM {$mosConfig_dbprefix}fb_messages GROUP BY catid) c
               ON {$mosConfig_dbprefix}fb_categories.id=c.catid
               LEFT JOIN (SELECT catid, MAX(id) AS last FROM {$mosConfig_dbprefix}fb_messages GROUP BY catid) d
               ON {$mosConfig_dbprefix}fb_categories.id=d.catid
               WHERE parent != 0
               GROUP BY id;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

    //Count Rows Inserted
       $query = "SELECT COUNT(*)
               FROM {$phpbb_dbprefix}forums;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        list($count) = mysql_fetch_row($result);
        echo "<br />Inserted $count Rows... OK"; flush();

    // Part Three - Populate Topics
    // if fb_messages.parent = 0 then messages is a topic
       echo "<br />Populating Topics...\n"; flush();
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}topics";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

           // Some messages still had the single quote in them without a \
        // which was causing import problems so we
        // removed the single quote and replaced it with HTML for the quote
       // Run a query taking simple board messages and finding which are topics by thread=id then merge with count table above
        // also subtract one from the reply count because it counts itself under this algorithm
        $query = "SELECT m.id, m.catid, m.userid, m.subject, m.time, m.hits, reply - 1 AS reply, locked, '0', '0', c.min, c.max, '0'
               FROM {$mosConfig_dbprefix}fb_messages AS m
               JOIN (SELECT thread, MIN(id) AS min, MAX(id) as max, COUNT(id) as reply
               FROM {$mosConfig_dbprefix}fb_messages GROUP BY thread) c
               WHERE m.thread=m.id AND m.parent=0 AND c.thread=m.thread";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

        while ( $row = mysql_fetch_object( $result ) ) {
          $subject = stripslashes( $row->subject );
          $subject = preg_replace ('/\'/', '\\\'', $subject);
          $query = "INSERT INTO {$phpbb_dbprefix}topics(topic_id, forum_id, topic_poster, topic_title, topic_time,topic_views, topic_replies, topic_status, topic_vote, topic_type,topic_first_post_id, topic_last_post_id, topic_moved_id)VALUES ('$row->id', '$row->catid', '$row->userid', '$subject', '$row->time','$row->hits', '$row->reply', '$row->locked', '0', '','$row->min', '$row->max', '0')";
          $updateresult = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        }
        mysql_free_result($result);

    //Count Rows Inserted
       $query = "SELECT COUNT(*)
               FROM {$phpbb_dbprefix}topics;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        list($count) = mysql_fetch_row($result);
        echo "<br />Inserted $count Rows... OK\n"; flush();

    // Part Four - Populate Messages Table
        echo "<br />Populating Posts...\n"; flush();
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}posts";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

        $query = "INSERT INTO {$phpbb_dbprefix}posts (post_id, topic_id, forum_id, poster_id, post_time, poster_ip, post_username, enable_bbcode, enable_html, enable_smilies, enable_sig, post_edit_time, post_edit_count)
               SELECT id, thread, catid, userid, time, HEX(INET_ATON(ip)), name, 1, 0, topic_emoticon, 1, NULL, 0 FROM {$mosConfig_dbprefix}fb_messages";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

       $query = "SELECT COUNT(*) FROM {$phpbb_dbprefix}posts;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        list($count) = mysql_fetch_row($result);
        echo "<br />Inserted $count Rows... OK"; flush();

    //Populate Messages_Text Table
        echo "<br />Populating Post Text & Converting Fireboard Syntax to phhBB Syntax... (This may take a while)\n"; flush();
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}posts_text";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

       $query = "SELECT m.id, m.subject, t.message
               FROM {$mosConfig_dbprefix}fb_messages_text AS t, {$mosConfig_dbprefix}fb_messages AS m WHERE m.id = t.mesid";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

    // uses phpbb's bbcode encoder to make a uid for each message
    // which is required for the bbcode to work in phpbb
        while ( $row = mysql_fetch_object( $result ) ) {
          $bbcode_uid = ( $bbcode_on ) ? make_bbcode_uid() : '';
          $message = prep ( $row->message);
          $message = fixquotes ($message);
          $subject = stripslashes( $row->subject );
          $subject = preg_replace ('/\'/', '\\\'', $subject);
          $query = "INSERT INTO {$phpbb_dbprefix}posts_text (post_id, bbcode_uid, post_subject, post_text)
                  VALUES ('$row->id','$bbcode_uid', '$subject', '$message')";
           $updateresult = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        }
        mysql_free_result($result);

    //Count Rows Inserted
       $query = "SELECT COUNT(*) FROM {$phpbb_dbprefix}posts_text;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        list($count) = mysql_fetch_row($result);
        echo "<br />Inserted $count Rows... OK\n"; flush();

    //Populate Users Table , Note user_sig_bbcode_uid is a radom, md5 checksum
        echo "<br />Populating Users Table From Joomla...\n";
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}users";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

        $query = "INSERT INTO {$phpbb_dbprefix}users (user_id, user_active, username, user_password, user_session_time, user_lastvisit, user_regdate, user_level, user_dateformat, user_email)
               SELECT id,
                CASE block
                   WHEN 0 THEN 1
                   ELSE 0 END,
                username,
                password,
                UNIX_TIMESTAMP(lastvisitDate),
                UNIX_TIMESTAMP(lastvisitDate),
                UNIX_TIMESTAMP(registerDate),
                CASE gid
                   WHEN 25 THEN 1
                   WHEN 24 THEN 1
                   ELSE 0 END,
                   'd M Y H:i',
                   email
             FROM {$mosConfig_dbprefix}users ORDER by id;";
       $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

       $query = "SELECT COUNT(*) FROM {$phpbb_dbprefix}users;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        list($count) = mysql_fetch_row($result);
        echo "<br />Inserted $count Users... OK\n"; flush();

    //Update Info From Fireboard
       echo "<br />Updating Users Table From Fireboard...\n";
        $query = "UPDATE {$phpbb_dbprefix}users, {$mosConfig_dbprefix}fb_users
               SET user_posts=posts, user_avatar=avatar, user_icq=ICQ, user_website=websitename, user_from=location, user_sig=signature, user_aim=AIM, user_yim=YIM, user_msnm=MSN, user_interests=personalText
               WHERE user_id=userid;";
       $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

    // uses phpbb's bbcode encoder to make a uid for each message
    // which is required for the bbcode to work in phpbb
    // clean up bbcode in signatures and ad bbcode_uid
	// Fireboard had inserted backslashes \\ everywhere which was 
	// causing lots of trouble.  I punted 
	// and selected the signature as null, in effect, leaving it 
	// behind.  Not worth the trouble for me to clean it up.  Users 
	// can put their sigs back themselves.
        //$query = "SELECT user_id, signature
        $query = "SELECT user_id, NULL
               FROM {$phpbb_dbprefix}users
               ORDER BY user_id;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

        while ( $row = mysql_fetch_object( $result ) ) {
          $bbcode_uid = ( $bbcode_on ) ? make_bbcode_uid() : '';
          $signature = prep ( $row->user_sig);
          $signature = preg_replace ('/\'/', '\\\'', $signature);
          $query = "UPDATE {$phpbb_dbprefix}users
                  SET user_sig='$signature', user_sig_bbcode_uid='$bbcode_uid'
                  WHERE user_id=$row->user_id";
          $updateresult = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        }
        mysql_free_result($result);

       $query = "SELECT COUNT(*) FROM {$phpbb_dbprefix}users;";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        list($count) = mysql_fetch_row($result);

    //Clean up avatar, only for off site avatar, Onsite Avatars will be deleted
        echo "<br />Updated $count Users... OK\n"; flush();
        $query = "UPDATE {$phpbb_dbprefix}users
               SET user_avatar_type = 3
               WHERE user_avatar LIKE 'http://%';";
       $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

       $query = "UPDATE {$phpbb_dbprefix}users
               SET user_avatar_type = 0, user_avatar = NULL
               WHERE user_avatar NOT LIKE 'http://%';";
       $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

       // create a group for each user
       echo "<br />Updating Users Groups...\n"; flush();
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}groups";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

        $query = "INSERT INTO {$phpbb_dbprefix}groups (group_id, group_type, group_name, group_description, group_moderator, group_single_user)
               SELECT user_id, '1', '', 'Personal User', '0', '1'
               FROM {$phpbb_dbprefix}users ORDER BY user_id";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

    // have each user join their own group
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}user_group";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        $query = "INSERT INTO {$phpbb_dbprefix}user_group (group_id, user_id, user_pending)
               SELECT user_id, user_id, '0'
               FROM {$phpbb_dbprefix}users
               ORDER BY user_id";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        echo "OK\n"; flush();

    //insert ranks
       echo "<br />Inserting User Ranks...\n"; flush();
        $query = "TRUNCATE TABLE {$phpbb_dbprefix}ranks";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());
        $query = "INSERT INTO {$phpbb_dbprefix}ranks (rank_id, rank_title, rank_min, rank_special, rank_image) SELECT rank_id, rank_title, rank_min, rank_special, rank_image
               FROM {$mosConfig_dbprefix}fb_ranks
               ORDER BY rank_id";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

        echo "OK\n"; flush();
        echo "<br />Complete...\n"; flush();

       echo "</body>";
       echo "</html>"; flush();

        //--- Function to prepare strings for MySQL storage ---/
        function prep($s) {
        // Insert bbcode_uid necessary for bbcode to be recognized by phpbb2
            global $bbcode_uid;

            // <strong> </strong>
            $s = preg_replace('/\[b\]/', '[b:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[\/b\]/', '[/b:'.$bbcode_uid.']', $s);

            // <em> </em>
            $s = preg_replace('/\[i\]/', '[i:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[\/i\]/', '[/i:'.$bbcode_uid.']', $s);

            // <u> </u>
            $s = preg_replace('/\[u\]/', '[u:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[\/u\]/', '[/u:'.$bbcode_uid.']', $s);

            // quote
            $s = preg_replace('/\[quote\]/', '[quote:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[\/quote\]/', '[/quote:'.$bbcode_uid.']', $s);

            // url with "
            $s = preg_replace('/\[url=\\\&quot\;(.*?)\\\&quot\;\](.*?)/', '[url=\\1]\\2', $s);

            // image
            $s = preg_replace('/\[img(.*?)\](.*?)\[\/img(.*?)\]/si', '[img:'.$bbcode_uid.']'.'\\2[/img:'.$bbcode_uid.']', $s);

            // color
            $s = preg_replace('/\[color=(.*?)\]/', '[color=\\1:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[\/color\]/', '[/color:'.$bbcode_uid.']', $s);

            // size fb uses size 1 to 5,  phpbb2 uses size 1 to 29; will use 1 = 7, 2=9, 3=12, 4=18, 5=24
            $s = preg_replace('/\[size=1\]/', '[size=7:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[size=2\]/', '[size=9:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[size=3\]/', '[size=12:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[size=4\]/', '[size=18:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[size=5\]/', '[size=24:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[\/size\]/', '[/size:'.$bbcode_uid.']', $s);

            // code
            $s = preg_replace('/\[code(.*?)\]/','[code:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[\/code(.*?)\]/', '[/code:'.$bbcode_uid.']', $s);

            // lists
            $s = preg_replace('/\[ul\]/', '[list:'.$bbcode_uid.']', $s);
          $s = preg_replace('/\[\/ul\]/', '[/list:u:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[ol\]/', '[list=1:'.$bbcode_uid.']', $s);
          $s = preg_replace('/\[\/ol\]/', '[/list:o:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[li\]/', '[*:'.$bbcode_uid.']', $s);
            $s = preg_replace('/\[\/li\]/', '', $s);

            return $s;
        }

    // fixed the quotes.
       function fixquotes($q) {
            global $bbcode_uid;
          $q = preg_replace('/\[b:'.$bbcode_uid.'\](.*?) wrote:\[\/b:'.$bbcode_uid.'\]\r\n\[quote:'.$bbcode_uid.'\]/', '[quote:'.$bbcode_uid.'="\\1"]', $q );
          return $q;
        }

    // function taken from phpbb2 functions file Unique ID for this message..
        function make_bbcode_uid()
        {
                $uid = md5(mt_rand());
                $uid = substr($uid, 0, BBCODE_UID_LEN);
                return $uid;
        }

    //last minute accounts to be added note phpbb2admin password is "admn" Besure to remove once you have tested the  site.
	//After doing this, I'd suggest copying the admin password from 
	//a known quantity, not this one.  It didn't work for me and 
	//phpbb2admin had to do the forgot password thing like everyone 
	//else.  Also, I'd suggest making the email address (just below 
	//here) a variable for the config lines at the beginning.
	//--Chris
       $query = "INSERT INTO {$phpbb_dbprefix}users (user_id, user_active, username, user_password, user_session_time, user_session_page, user_lastvisit, user_regdate, user_level, user_posts, user_timezone, user_style, user_lang, user_dateformat, user_new_privmsg, user_unread_privmsg, user_last_privmsg, user_login_tries, user_last_login_try, user_emailtime, user_viewemail, user_attachsig, user_allowhtml, user_allowbbcode, user_allowsmile, user_allowavatar, user_allow_pm, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_rank, user_avatar, user_avatar_type, user_email, user_icq, user_website, user_from, user_sig, user_sig_bbcode_uid, user_aim, user_yim, user_msnm, user_occ, user_interests, user_actkey, user_newpasswd) VALUES
             (-1, 0, 'Anonymous', '', 0, 0, 0, 0, 0, 0, 0.00, NULL, '', '', 0, 0, 0, 0, 0, NULL, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, NULL, '', 0, '', '', '', '', '', NULL, '', '', '', '', '', '', ''),
             (2, 1, 'phpbb2admin', '21232f297a57a5a743894a0e4a801fc3', 1198282415, 0, 1198282415, 0, 1, 1, 0.00, 1, 'english', 'd M Y h:i a', 0, 0, 0, 0, 0, NULL, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, '', 0, 'myadmin@my_site.com', '', '', '', '', NULL, '', '', '', '', '', '', '');";
        $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

       $query = "INSERT INTO {$phpbb_dbprefix}user_group (group_id, user_id, user_pending) VALUES
             (1, -1, 0),
             (2, 2, 0);";
       $result = mysql_query($query) or die("<br />Invalid query:<br />$query<br />" . mysql_error());

    ?>

Locked

Return to “[2.0.x] Convertors”