If geeks love it, we’re on it

The Icrontic switch to Vanilla forums

The Icrontic switch to Vanilla forums

Before Icrontic’s big migration to our new forum platform, I wrote about the search that led me to Vanilla. Now I want to talk about some of the technology behind it.

This is how Lincoln works

Pay no attention to the man behind the curtain

So, what did we do? Before today, Icrontic was really three separate WordPress sites and a vBulletin forum. The site was divided into four subdomains: icrontic.com (along with the forums), gaming.icrontic.com, tech.icrontic.com, and life.icrontic.com. The first step was to take Icrontic’s multi-site WordPress installation and fold it into one single blog. Second, our vBulletin forum was migrated to Vanilla, including the old member blogs (remember those?). Most importantly, we did it all without losing data and without breaking any links. Those two factors can turn any migration into a nightmare.

The vBulletin to Vanilla importer is probably the most robust of the transfer tools available for Vanilla. It accounts for everything from private messages to custom profile fields to the twisted way vBulletin 2.0 stored attachments. On the Vanilla side, we needed a number of plugins for the particular feature set we want for Icrontic. The last two plugins we wanted at launch, ButtonBar and ProfileExtender, were just finalized recently.

We run a custom Vanilla / WordPress integration designed to replicate the custom vBulletin / WordPress integration we previously used. Now, Vanilla has awesome WordPress integration out of the box. In fact, for most site owners, I would strongly recommend the existing tools for doing this. However, I wanted Icrontic’s integration to go even deeper. Not only did I want single sign-on—I wanted the entire WordPress user system to be force-synced to Vanilla. Although iframes are becoming more standard as a way of embedding comments, I also wanted to use WordPress’s native comment template and avoid extra HTTP calls. To do this, I wrote Glue. It’s a hot mess to set up, but it’s my weapon of choice for this challenge.

Beyond the Vanilla importer, over 600 lines of custom import code were written. Its first task was to combine the Home, Tech, Gaming, and Life sites we set up in WordPress years ago. Dealing with category and tag collisions was migraine-inducing. As far as I can tell, no one else has had to do this. If you stumble on this via Google and want to see how I did it, shoot me an email. The other tasks were to convert the vBulletin blogs into forum discussions, import all our guest users (Vanilla doesn’t do guests yet natively), and import our community gamification system. Whew.

Stand back: I’ve got root

Our new setup also shares a single WordPress code base with our sister sites, IntoDetroit and NewBuddhist. This greatly simplifies updates and security because it’s much simpler to maintain a single copy of the software. We use git and some custom shell scripts to push seamless updates to WordPress and Vanilla. Because I also work for Vanilla, I frequently want to upgrade one or more sites to the latest bleeding-edge of our development process. With our new setup I can do this with a few keystrokes.

Lastly is the most fun part: the redirects. Vanilla comes equipped with the ability to auto-forward your old forum URLs to their new locations, but it goes far beyond that. In all, Icrontic’s virtual host setup and URL rewrite rules currently take up approximately 300 lines in our Apache config files. We’ve run at least five different CMSs over the years (and on a different domain!) and nearly all those links still work.

How We Roll

Now that the huge migration is done, we can iterate. What’s that mean? The site still doesn’t do everything we want it to—not by a long shot. There’s a backlog a mile long of small to medium-sized ideas we’ve wanted to implement. But, there was little incentive to create a feature for vBulletin in the last two years knowing I was going to be scrapping it all anyway. I’m finally free. Vanilla’s flexibility means I can create a new feature in a weekend and try out new ideas. This is just the start of all the awesomesauce to come.

So if you ever need a two-year project to keep you busy, just decide to migrate your screamin’ busy, 11-year-old forum to new software that hasn’t been released yet. You’ll learn a helluva lot along the way.

Comments

  1. Jason
    Jason Impressive, sir. You're kind of incredible.
  2. UPSLynx
    UPSLynx When Matt stands up at his computer, hold on to your butts.
  3. SpencerForHire
    SpencerForHire Or he'll do it for you.
  4. Aranyic
    Aranyic Congratulations, I can't imagine the number of coding hours that had to go into this. Gotta feel good to see it actually come to life.
  5. Humerusmeg Matt you are fucking crazy, and so amazing!!! :) Congrats on getting this project off the ground~
  6. trooster89
    trooster89 Congratulations Linc. You're the man.
  7. Jokke
    Jokke Congrats man, and thanks! I know you've been working hard on this, and now it'll finally pay off!
  8. ardichoke
    ardichoke
    When Matt stands up at his computer, hold on to your butts.
    Especially when he does it so ardichoke can sit down... to deploy max sed-fu
  9. Straight_Man
    Straight_Man Other than some minor stuff, what appears here looks good. VERY good. The minor stuff has already been mentioned for the most part, will leave well enough alone. :D
  10. Tim Can we make the new Icrontic look EXACTLY like the old one, but run on this new Vanilla stuff?
  11. JudahTC
    JudahTC This is odd. But perhaps I'll get used to it like I did with Reddit.
  12. Koreish
    Koreish Tim's status as guest made me lol.
  13. primesuspect
    primesuspect
    Can we make the new Icrontic look EXACTLY like the old one, but run on this new Vanilla stuff?
    Yep! We'll get right on it.

  14. ardichoke
    ardichoke Oh sh--- Tim is posting from the future somehow. That's amusing considering he lives in the past.
  15. primesuspect
    primesuspect (Wordpress comments are afflicted by the timestamp bug)
  16. IcyLiquid
    IcyLiquid I think this draft autosaving feature exposes some SERIOUS privacy concerns. I don't know where these drafts are being saved, or how they are secured, and I find it very disconcerting that the, probably corrupt, administration can likely read my posts before I have decided to even send them.

    Please remove this functionality immediately.
  17. ardichoke
    ardichoke Can't tell if serious... or just stupid troll.
  18. GHoosdum
    GHoosdum This goes without saying, but I will say it anyway: switching from vBulletin to Vanilla makes Icrontic feel new. From the notification popups to the clean navigation, this is an amazing transformation.

    Thank you for your years of dedication and hard work, Lincoln.
  19. Linc
    Linc @ardichoke That Tim is one of the Vanilla devs. He is wearing his finest trollface.

    @GHoosdum Cheers :)
  20. ardichoke
    ardichoke Well, I guess that's better than someone actually being that dense.
  21. GHoosdum
    GHoosdum @Lincoln Did you implement the Networks feature in WordPress (the one that replaced WordPressMU) in order to share codebase, or did you do something custom for that? Also, does Vanilla have a similar feature that you implemented?
  22. Linc
    Linc
    @Lincoln Did you implement the Networks feature in WordPress (the one that replaced WordPressMU) in order to share codebase, or did you do something custom for that? Also, does Vanilla have a similar feature that you implemented?
    You mean for the integration? I rolled my own. It basically bootstraps Vanilla into WordPress. I can code in my WordPress template as if I were writing a Vanilla plugin. We no longer use WordPress MU or its offshoot functionality.
  23. Ryder
    Ryder Are you going back to the 3 "tabs" on the articles "front page"?
  24. primesuspect
    primesuspect
    Are you going back to the 3 "tabs" on the articles "front page"?

    No. The content stream has been unified.
  25. MiracleManS
    MiracleManS
    Are you going back to the 3 "tabs" on the articles "front page"?

    No. The content stream has been unified.
    That makes me a sad panda somewhat. Does that mean we'll have no way of determining what type of article is for what? I liked the ability to tell them apart outside the forums.

  26. primesuspect
    primesuspect
    That makes me a sad panda somewhat. Does that mean we'll have no way of determining what type of article is for what? I liked the ability to tell them apart outside the forums.
    Dustin, EVERYTHING we do makes you a sad panda :p

  27. LIN
    LIN Blown away, I am.
  28. MiracleManS
    MiracleManS

    Dustin, EVERYTHING we do makes you a sad panda :p
    It's possible. I just like customization/tailoring to my personal preferences. It's why I've stuck with reddit.

    Maybe with time I'll get over it.
  29. Tushon
    Tushon
    Are you going back to the 3 "tabs" on the articles "front page"?

    No. The content stream has been unified.
    That makes me a sad panda somewhat. Does that mean we'll have no way of determining what type of article is for what? I liked the ability to tell them apart outside the forums.

    I can see what type of article it is from looking on the right side where it has the classification. Right by the time of last posting.
  30. MiracleManS
    MiracleManS

    I can see what type of article it is from looking on the right side where it has the classification. Right by the time of last posting.
    On the home page? That's what I'm talking about.
  31. Linc
    Linc
    Blown away, I am.
    Howdy LIN! In a good way or a bad way? :D
  32. primesuspect
  33. Tushon
    Tushon

    I can see what type of article it is from looking on the right side where it has the classification. Right by the time of last posting.
    On the home page? That's what I'm talking about.
    Okay. I see what you are talking about now, and no.

  34. MiracleManS
    MiracleManS After review of my previous problems, I'm pretty sure I can get over them (or write a greasemonkey script).

    The only thing that I'm really looking for is the ability to customize my "all" tab without having to lose all the categories in the categories tab. Thankfully a script can fix that.

    Edit to show my dumb: If you unfollow categories etc. you can still set the Category tab to default to the "view all categories" section under Category Management on the right side and "Show unfollowed categories".
  35. QCH
    QCH Dark theme from Jared looks outstanding!!! I can read and enjoy IC without eye strain! Do we have a thread (locked) with a "To-Do-List" so we can stop reporting issues that have already been reported?
  36. Canti
    Canti Comment deleted because derp.
  37. LIN
    LIN

    Howdy LIN!
    Howdy, you! :)
    In a good way or a bad way? :D
    Lol, not quite sure yet! ;)

  38. Linc
    Linc
    Dark theme from Jared looks outstanding!!!
    Mine's better.

    Profile -> Edit Preferences (for Supporters only).
  39. fatcat
    fatcat
    Dark theme from Jared looks outstanding!!!
    Mine's better.

    Profile -> Edit Preferences (for Supporters only).
    not seeing it

  40. Linc
    Linc Scroll harder?
  41. fatcat
    fatcat unless style ID?
  42. Linc
    Linc Preferences, not Account
  43. Straight_Man
    Straight_Man StyleID 19 here. No Profile option, no Edit Profile option. I think my profile is stuck as original stock Vanilla. :(

    John.
  44. fatcat
    fatcat
    Scroll harder?
    so those of us who are subscribers, that for some reason aren't now

    how hard should we scroll?
  45. Nate_LapT
    Nate_LapT @lincoln permissions set correct? I dont see it either.
  46. NiGHTS
    NiGHTS @lincoln Thirded, not seeing it
  47. Straight_Man
    Straight_Man My Preferences pops a window here.... And does not have scroll bar in window. It talks only about notification options.
  48. Thrax
  49. Linc
    Linc May need to log out and back in. I think Vanilla caches your permissions at login.
  50. Straight_Man
    Straight_Man Hmmm.... nothing like the theme I am in, at all. Your hax has you looking at theme options just not in stock plain Vanilla options.
  51. Linc
    Linc @Straight_Man I have no idea why he qualified his statement with "but I have hax" - his screencap is exactly how the page should look once you've selected the dark theme.
  52. Thrax
    Thrax Just poking fun at the people who can't seem to get it working. I did nothing special.
  53. fatcat
    fatcat still not available with log out and cleared cache.
  54. Straight_Man
    Straight_Man Well, maybe the perms got messed up, the StyleID got set to default, and the default does not have a big enough box? Roles, member, supporter here.
  55. jared
    jared option isn't available to me it seems. is there a place where we can confirm our 'supporter' status?

    edit: oh wait I see it in my post bit :P
  56. Straight_Man
    Straight_Man Does this have to be done from a mobile device?
  57. Thrax
    Thrax
    Does this have to be done from a mobile device?
    No, the menu isn't even available from a mobile device.
  58. Straight_Man
    Straight_Man OR, will poor @Lincoln have to reset Style 19 also?
  59. fatcat
    fatcat
    OR, will poor @Lincoln have to reset Style 19 also?
    funny cause I have style 23
  60. Ryder
    Ryder Click your name, then click my preferences under your picture. You don't see it there?
  61. Linc
    Linc @Straight_Man, be quiet.

    1) StyleID does nothing. I've removed it.

    2) If you saw "StyleID" you were on the "Edit Account" page (wrong), not the "My Preferences" page (correct).
  62. Straight_Man
    Straight_Man Yes, but it only has a Notifications section in the pop-open window....
  63. Ryder
    Ryder Could it have to do with Mod status Matt? It works for me, it works for Thrax, both of us supermods. Fatcat and S_M are not.
  64. fatcat
  65. Straight_Man
    Straight_Man StyleID now shows at top in user info... I will leave this thread now.
  66. fatcat
    fatcat also I'm missing a shitton of badges
  67. Linc
    Linc
    Could it have to do with Mod status Matt?
    Nice catch. Fixed.
  68. Linc
    Linc
    a shitton of badges
    Metric or English?
  69. fatcat
    fatcat
    a shitton of badges
    Metric or English?
    all the anniversary ones, the cake is a lie for me right now
  70. Linc
    Linc
    all the anniversary ones, the cake is a lie for me right now
    It has to do with how Vanilla counts a "visit". It'll sort itself out. Still working on making those work more reliably.
  71. Straight_Man
    Straight_Man Fixed for me also, good catch Ryder, thanks.
  72. Nate_LapT
    Nate_LapT For all this work, dunno if I like this :P
  73. fatcat
    fatcat image

    dark theme needs some tender touchup love for fugly stars
  74. Snarkasm
    Snarkasm squeeee dark theme!

    Love you, Matt.
  75. QCH
    QCH SWEET, Matt!!! Thanks!
  76. Canti
    Canti Dark theme looks great but I can't tell which page of a thread I'm on, not sure if the default theme was like that too.
  77. Straight_Man
    Straight_Man
    Dark theme looks great but I can't tell which page of a thread I'm on, not sure if the default theme was like that too.
    No, all pages except page you were on was highlighted color (BRIGHT blueish). The page one was on was gray. Now no gray page number - perhaps intended, perhaps a buggy thing in theme. I would like page user is on different in color also please.

    Otherwise, can find no theme flaw. Great theme, Lincoln.

  78. ardichoke
    ardichoke I fixed the page number issue by adding this to a stylish theme applied to the site:

    .NumberedPager a, .NumberedPager span{ font-size: 12px; font-weight: normal; } .NumberedPager span, .NumberedPager a.Highlight{ font-size: 14px; font-weight: bolder; }
  79. Nate_LapT
    Nate_LapT wow did that not format very well on the dark theme :zombie:

    My eyes they bleed!!!
  80. ardichoke
    ardichoke OOH! OOH! I can fix that one in stylish as well!

    code, pre{ background-color: transparent; font-size: 12px; border-width: 0; }

    Of course, the font-size bit is my preference...
  81. Nate_LapT
    Nate_LapT no no, saying yellow highlight with white text on grey is bloody hell on the eyes :P
    @lincoln may want to adjust that
  82. ardichoke
    ardichoke
    no no, saying yellow highlight with white text on grey is bloody hell on the eyes :P
    @lincoln may want to adjust that
    Yeah, in the meantime the snippet I posted fixes that. Well, it nukes the yellow highlight anyway.
  83. fatcat
    fatcat lost all my credentials again. says all I am is a member.
  84. Linc
  85. soadeathdealer
    soadeathdealer Hello , I am currently tring to link my new word press install with a new vanilla install. i have vanilla on another sub-domian so i used that database for the new vanilla install and for the word press install and i used the Glue plugin to make one single user database well i went to enable the word press glue plugin and had a fatal error
    (Fatal error: require_once() [function.require]: Failed opening required

    '/*******/rftp2/vanilla/bootstrap.php'

    (include_path='.:/usr/lib/php:/usr/local/lib/php') in

    /****/****/****/rftp2/wp/wp-content/plugins/glue/vanilla.php on line 22)

    so i went and enabled the vanilla Glue plugin then i went back to the word press login and tried my vanilla admin account(its the same as my word press one ) and it tells me (You do not have sufficient permissions to access this page.) so was wondering what i need to edit to give my admin account in vanilla access to the wordpress admin side . any help would be useful . thank you
  86. primesuspect
    primesuspect It's strange that this comment didn't bump the conversation. I'll let @lincoln know :)

    Welcome to Icrontic!
  87. soadeathdealer
  88. soadeathdealer
    soadeathdealer i pmed him on the 17th as well but im assuming he was and is busy since i got no reply
  89. soadeathdealer
    soadeathdealer opps wrong date ment i pmed him the 15th or 16th lol i was looking at ur date
  90. soadeathdealer
    soadeathdealer could still use sum help please and thank you

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!