Drupal forum module replacement

Dean C

Member
Note: I also posted this thread over at IPS before someone points it out

Background:

  • Long-time PHP developer specialising in vBulletin forums
  • Currently working on a drupal 5 site with the "forum module" (3 million users, 5000+ topics, 65000+ replies)
  • Looking for a forum solution to migrate our forum module to for various reasons.

We have a few requirements:

  • Import existing topics/comments into the new forum. Is there some importer available to import drupal 5 forum module topics into XF being released soon? We use threaded comments on drupal as it stands so we'd like to import them and maintain the same comment structure (at least until we think about changing to flat commenting).
  • Use drupal for *all* user authentication. We don't want to manage two user databases, we don't want to have two different registration processes, two login forms, two user profiles etc. And obviously it'd not be ideal for us to have another 2 million row user table. We'd want user profiles to point to their drupal profile, the login form to point to drupal login, and the registration process to also go through drupal.
  • Use an external header and footer provided by drupal (we're not sure how we'd do this at the moment but we certainly don't want to manage HTML in two places: drupal/XF templating system).

Obviously, I can't see the source code of XF so it's a bit difficult to judge things as it stands...

Thanks,
Dean
 
Time is money.
$140 is not expensive.
Time is.
Very very very expensive.

Making bad decisions = even more expensive.
I've only heard a smidge about your project and I can see bad research = super expensive.
 
With all due respect, as I said straight away we're not going to pay $149 to research a product. We'd have no qualms about buying the product if it fitted our needs but it'd be a waste of time and money for us to buy it if it's going to be too much work. That's why I posted here to ask some simple questions to help us better judge the product. If anyone whose had a play around with XF source-code cares to address the points in my first post it'd be greatly appreciated :) Otherwise, I'd appreciate no further comments about the price of the software :) Thanks.
 
* Import existing topics/comments into the new forum. Is there some importer available to import drupal 5 forum module topics into XF being released soon? We use threaded comments on drupal as it stands so we'd like to import them and maintain the same comment structure (at least until we think about changing to flat commenting).

There is no drupal importer right now, official or unofficial.

xenForo does not support threaded discussions. It's all flat. The devs have said that they do not plan to support threaded discussions.

* Use drupal for *all* user authentication. We don't want to manage two user databases, we don't want to have two different registration processes, two login forms, two user profiles etc. And obviously it'd not be ideal for us to have another 2 million row user table. We'd want user profiles to point to their drupal profile, the login form to point to drupal login, and the registration process to also go through drupal.

That requires an add-on. xenForo has a really nice add-on system, but you will have to code it or hire a developer. There are development forums available to you.

* Use an external header and footer provided by drupal (we're not sure how we'd do this at the moment but we certainly don't want to manage HTML in two places: drupal/XF templating system).

If that layout is contained in a central file then you can capture the output using code like this:

http://xenforo.com/community/threads/creating-a-page.5714/page-2#post-90582
 
That requires an add-on. xenForo has a really nice add-on system, but you will have to code it or hire a developer. There are development forums available to you.

Thanks for the reply Jake. About this, are you sure this could be achieved solely with an addon? I know in vBulletin the user system was tightly coupled to every other area so taking it out and replacing it with something else required source code modifications and a lot of work.
 
You're going to really struggle to not duplicate the user info - I'm not really sure how any system could get around this particularly comfortably. Each system has info it stores, in its own particular format. Trying to rip that out is going to be a nightmare.
 
Okay so let's say for arguments sake I didn't rip out the user table. How complex is the authentication system for XF and would it be easy for me to create the necessary cookies from within drupal to authenticate the user? Are there any XF instances out there with 2 million+ users?

I'm guessing that the link to login/registration pages is hardcoded in quite a few templates? If that's the case would you consider moving into into a configuration option for those users who want to use an external authentication system to make it easier for us to manage?

Someone mentioned there are no official importers, is that something on the roadmap? Any ETA?
 
AFAIK, the usual approach to this sort of integration is to allow a login via the standard XF approach, but if it fails to find a user, fallback to looking up the details from your source DB. If the user successfully authenticates, you then create the corresponding XF user. That approach should be doable (though we definitely want to make a more standard system to help it along). Adding SSO on top of that is a little more complex, but doable.

I don't know of an XF install with 2 million users (though some have multiple millions of posts).

The login link should only be in a couple templates, so you could change that. I can think of 3 places off hand.

There is an official importer for vBulletin 3.7/3.8. Other importers will come over time, based on demand.
 
I've been thinking about this over the last few days. What's the current state of the official vBulletin importer? Is it abstract enough for someone to build their own importer on top of similar to the way Impex worked or will it be a large undertaking?

Would it also be possible to see a little code snippet of how XF creates users/threads/replies so I could see how easy/hard it is to create my own very simple importer if necessary?

Thanks,
Dean
 
You have to do a fair amount of work to translate from your schema to XF's. There's really not that much that can be done about that really. But otherwise, there's a framework there to do a lot of the other stuff for you.

The code in the existing importer is quite complex (because of the amount that it converts), but distilling it down, the lines are usually something like this:
Code:
$nodeId = $this->_importModel->importForum($forum['forumid'], $import);
Where the first argument is the old ID, and the second is an array of information about the forum, using XF's column names.
 
Top Bottom