I will be going through the steps on how I achieved the following:
- Convert vBulletin 4 to bbPress (specifically, I converted from vBulletin 4.0.1 to bbPress 1.0.2)
- Integrate WordPress with bbPress to share the same users table
- Make the WordPress database contain the central user database (optional)
I decided to test out bbPress using my existing vBulletin 4 installation. This is rather tricky due to the lack of converters out there; as of this post, there are no direct converters from vBulletin 4 to bbPress. I also wanted to integrate (share the user database) between bbPress and WordPress. This allows a user to sign up only once to access both your WordPress and bbPress installations.
In my case, I wanted WordPress to contain the central user database table. This meant that my bbPress forum would connect to the WordPress user table. Why? Merely a personal preference. This takes a little more work (then simply using bbPress’ user table) and has its limitations.
I will explain all of this in detail below.
Initial thoughts on bbPress
To be blunt bbPress’ basic, out-of-the-box features are primitive compared to all the major forums I’ve used – myBB, phpBB, vBulletin, and Invision. bbPress is a forum stripped down to its core – it doesn’t even come with basic viewing permissions (yet). It is a massive downgrade from vBulletin 4. If you’re like me, you will get a lot of headaches downgrading to bbPress.
However, we must keep in mind that bbPress is still in its infancy. When I mentioned that bbPress was primitive, I don’t really mean that in a negative way. The developers are taking the correct approach in creating a solid core before moving on to the bells and whistles. Look at where WordPress is today. Its userbase is incredibly large and supportive, and I don’t doubt that hundreds of quality plugins will be available for bbPress as well.
The limitations of converting
Converting from vBulletin 4 to bbPress isn’t without its speed bumps. Since there’s no official converter, it will not go as smoothly as one would hope.
The only solution (as of this blog entry), is to convert vBulletin 4 to phpBB3. Then from phpBB3 to bbPress. What happens along the way?
- All your members will default to either the member or administrator role. This means groups like moderators will become ordinary members and you’ll need to reassign their role
- Passwords won’t work. All members will need to reset their password (by having them click the reset password link in bbPress to have a randomly-generated password sent to their e-mail accounts)
- Certain features like attachments may not transfer over (bbPress is no where near as feature-rich as vBulletin 4 and therefore won’t be able to retain everything)
If you’re fine with the above and mainly want to transfer your posts and members, then keep on reading!
Converting vBulletin 4 to bbPress
As mentioned above, you will first need to convert vBulletin 4 to phpBB3.
Step 1: Install phpBB 3
Install a fresh copy of phpBB 3 in the same domain as your vBulletin 4 forum. For example, if your vBulletin is located at www.yoursite.com/forums, then phpBB must be also located at www.yoursite.com.
However, you may install phpBB3 to a different mySQL database. I recommend that you select a database where you want bbPress to be installed (you will see why in step 3).
The official phpBB download page can be found here.
Step 2: Download the vBulletin 3 to phpBB 3 converter
That is correct, the vBulletin 3 (not 4!) converter as that’s the latest version out there. You can download it here.
After you have downloaded the .zip file, simply upload the 2 folders to your phpBB directory.
Do not run the convert yet as you will run into errors. The fix can be found in the modified convert_vb30.php file which can be find here (thanks for the fix excelcoder!) Be sure you rename that file before uploading it!
Proceed to run the converter. Instructions can be found at the official phpBB forum here. Basically, you will need to provide certain information such as where your current vBulletin folder is located and the database information.
Your conversion should go smoothly. The converter will probably tell you that the search index hasn’t been built yet. Don’t worry about this; when you convert to bbPress later, search will work. You may notice that viewing permissions aren’t functioning properly, for example, hidden forums are visible to all regular members. Don’t bother to tinker around in phpBB’s admin control panel to fix the permissions. When you convert from phpBB 3 to bbPress, you’ll just run into the same problem.
As long as all your posts are present and displaying properly, and all the members are transferred, proceed to the next step.
Step 3: Download the phpBB3 to bbPress converter
Instructions on running this converter and the download link can be found in the bbPress support forum here (thanks wmnasef!) I’ll summarize the steps here:
- Download and install bbPress. bbPress can be installed anywhere including a different domain. Use the database I mentioned in step 1! (Reason: the converter requires the phpBB forum to be installed in the same database as bbPress in order to run.)
- Download the converter
- Upload phpbb3tobbpress.php into your phpBB3 directory
- Upload _phpbb3_pass.php into the bb-plugins directory
- Run the phpbb3tobbpress.php, for example, http://www.yourforum.com/phpbb3/phpbb3tobbpress.php
Everything should convert smoothly. At this point, you’re probably looking at the admin panel and banging your head against your desk thinking – where are the bloody features?! Well, since you’re already there, be sure to set the appropriate members to the moderator role, etc.
WordPress integration allows both your bbPress forum and WordPress blog to share the same user database table. If you’re using the default prefixes, then the bbPress user table is named bb_users, and wp_users for WordPress.
If you followed my Converting vBulletin 4 to bbPress guide above, then all your users are currently residing in bb_users.
In the following, I will go through the steps for integrating bbPress with WordPress, regardless of whether you choose bb_users or wp_users as your main user table.
Step 1: Login to your bbPress
Once logged in, click on the Admin link. Click on the WordPress Integration tool (Settings > WordPress Integration).
Step 2: Set User Role Map
For WordPress administrators, the bbPress role would be bbPress Key Master. Everybody else should be set to bbPress Member. Click Save Changes and return to the same page.
Step 3: User Integration > Cookies (part 1 – the form)
Farther down the page, you should see an area named Cookies. Cookies allow users to login at your WordPress blog without having to login a second time at your bbPress forums, and vice versa.
I’ll divide cookie setup into 3 separate steps to make things easier.
The first part with the form contains instructions that are relatively straightforward and involve minor copy-and-pasting.
Step 4: User Integration > Cookies (part 2 – the plugin)
Near the bottom, it will ask you to install a bbPress plugin for WordPress. The easiest way to do so is in the admin area of your WordPress and clicking Plugins > Add New. Simply search for bbPress Integration and install it. What this plugin does is give you a simple piece of code to add to the config file for WordPress (wp-config.php). Save the file, but don’t close it yet!
Step 5: User Integration > Cookies (part 3 – the config files)
This is the final step for setting up cookies. It involves additional edits that you need to apply to wp-config.php and bbPress’ config file (bb-config.php).
First, access these randomly-generated constants. Find the related code in wp-config.php and paste the constants into it. Do the same for bb-config.php.
Step 6: User Integration > User Database
Step 2 is critical before you can perform this next step so make sure user roles have been mapped.
Note: the following assumes that you are using the default prefixes: bb_ for bbPress and wp_ for WordPress. If not, substitute the following instructions with your own prefixes.
The table prefix you select may depend on 4 different scenarios:
- Both your WordPress and bbPress have no registered members except for yourself. Either bb_ or wp_ will work depending on your personal preferences.
- WordPress contains all your users. Use wp_.
- bbPress contains all your users. Use bb_.
- bbPress contains all your users but you want to use the user table in WordPress. Use wp_ and do step 7.
If you chose scenario 4, hit Save Changes, and move on to step 7.
Otherwise, you’re basically done! Just fill out the advanced database settings if your WordPress is installed on a different database than bbPress. Hit Save Changes and skip the rest of this guide.
Step 7: Renaming users and usermeta tables
This step is required for scenario 4 (as outlined in step 6) because if you set the table prefix to wp_ and do nothing else, the threads and posts in bbPress will no longer be linked to the original user from the bbPress user table. That’s because at this point, bbPress is accessing all posts/threads in the bbPress database while attempting to access the users from the WordPress database.
For this step, you’ll need access to phpMyAdmin.
If bbPress and WordPress are installed on the same database, you can execute a simple SQL query such as:
RENAME TABLE wp_usermeta TO wp_usermeta_ignore;
RENAME TABLE wp_users TO wp_users_ignore;
RENAME TABLE bb_usermeta TO wp_usermeta;
RENAME TABLE bb_users TO wp_users;
This basically swaps the user tables (and their related usermeta data) by renaming the tables. The bbPress user and usermeta tables basically replace the WordPress counterparts (the code simply renames the original tables instead of deleting them).