My Vanilla Work

Or, my search for the perfect web framework.

Several clients have given me similar conditions. “We need a database application up on the web in a week. It needs to authenticate users and secure them into groups with permissions, have a method for communication between users, and also do this complete unrelated random function that doesn’t exist anywhere else.”

Inevitably, the server winds up on an old PHP and MySQL version (if I have MySQL to work with at all), and maybe only FTP access to the server. Developer’s worst nightmare, right?

Well, I’ve tried and failed at using many of the “php frameworks” out there, in an attempt to find something that can be my “Rails for PHP”. I tried every single one I could find; I’m not kidding or exaggerating. Over 40 of them altogether. The best one I found was Symfony, but it only runs on PHP5.

So faced with 7 days to create a fully functional community site that really doesn’t warrant a CMS like Joomla or Drupal, what do I do?

I Get Vanilla.

For those that aren’t experienced with the Vanilla forum software by Mark O’Sullivan, you must check it out. It’s like no other forum package out there. And at first, it’s kinda daunting, until you use it. You change your whole forum paradigm from needing strict hierarchy with multiple forums for many categories to “why not just keep them all on one page, with generalized categories for each?” Not to mention the code is well designed and is standards-compliant.

And best of all, it sits right on top of its very own framework, complete with authentication, user and role management, and the ability to use Extensions, Themes, and Styles to add functionality. It’s all localized which makes multilingual sites easier.

Basically, it allows me to spend time either finding the perfect extension for each feature, rewriting an extension to improve a feature, or creating one from scratch. Instead of coding a complete layer of authentication and session management and roles and permissions, I can use something already set up for that purpose (complete with registration, password resetting, and Remember Me functionality), and spend my time on the individual quirky features.

The best part is, most features already have an extension. And if there isn’t one, it’s trivial to create a new one. I mean, trivial. It took me about an hour to write a small extension that added dynamic content to specific elements on the page, and that’s with the overhead of learning how to write an extension.

So, enough proselytizing, I just wanted to speak well of not only a great forum package, but a great framework for web applications.

However, this results in my creating of many extensions. Sadly, if the feature is proprietary to the site, I must refuse to release that extension anywhere in the public domain out of respect for the client. However, general purpose extensions are probably ok, and especially extensions I modify. I will put any extensions I release on this page.

My Vanilla Add-ons

MassMailer

MassMailer was created as a solution to enabling members to send mass emails to the entire member list. There already exists an extension NewsMailer, that allows administrators to send mass mail, but it wasn’t quite suitable for the requirement. I heavily modified that code to branch it into MassMailer, which I plan to add quite a few more features to.

Read the discussion

Download the extension