I love WordPress, let me get that out of the way at the beginning. But Drupal is really powerful. And terribly exciting—you can do so much with it! But I only like Drupal. Bit of a difference.
I’ll let that serve as introduction to letting you know that I have two projects that will require Drupal as a CMS and I don’t think that WordPress will cut it. WordPress, like I’ve said before, makes a great little CMS. But it’s not for everything. One project is a site for a complex and growing organization that will need finely grained user permissions and the other, a hobby site, is something like a Digg-clone for rating and sorting user-generated content. Sort of the standard “you need Drupal” projects.
Anyway, Drupal 6 is coming out (It’s available as a Release Candidate now and expected to be finished soon) so I downloaded it to take it for a spin. My first impressions of developing a theme for it may give you an idea of why I only like it and not love it (but don’t get me wrong, I really do like it).
Drupal has a terrific Module (modules are just like plugins) called the Devel Module. It’s essentially Firebug for Drupal but instead of what’s going on in the DOM it shows you what Drupal functions can be overridden in your theme—which is a lot. It’s insanely cool and really opens Drupal for the newcomer trying to bend a theme to their will.
When I try to install it, however, I get the dreaded white-screen of death. Not good. I’m using Mamp and I’ve upped the memory in PHP.ini (never mind that I shouldn’t even have to know this) and it still won’t work (fixed: I turned off the Zend Optimizer). Now I know I’m using a beta module for beta software but if Drupal wants to attract designers, they really should be getting code-clueless designers installing Drupal on their Macs and watching how they break it. It’ll help the project and, you know, I might find out how to get that Devel module working—I really want to use it!
The Zen theme, Lullabot’s starter theme—what they call the ultimate starting theme for Drupal—is terrific. It’s there for guys like me who don’t know what they’re doing and want to get going fast. And although I won’t be using it except to study (I want to start from scratch, for various reasons) I love that it no longer tries to look like anything except, maybe, a wire-framing theme. And I love the over-documentation in it. As the Sandbox theme moves into the WordPress core I’d like to see it model the documentation in this theme, for the core version that is. If it’s there for developers, document it for developers.
But, while the documentation is great, the markup for Zen just can’t compare to Sandbox. Have a look at the source code.
I’m not looking to disparage anyone’s work but, when it comes to first impressions, the Sandbox theme is a bit neater and surprisingly (given it’s reputation in the WordPress community) far less intimidating.
Starting a Zen sub-theme is pretty easy, though—overriding the Zen styles is another matter—the instructions are very clear— but it surprises me that it’s not a scripted process. I mean, that there’s no script in the Zen package that automates the initial production of a sub-theme. Not that I’m saying there should be, just that it surprises me, after doing it, that there isn’t one.
But making a theme from scratch is incredibly easy. Drupal requires one file with a few lines to get started, a .INFO file that really only needs a name for your theme. The required minimum code is stored in the Template Engine. A theme’s template files are just overriding it. The template files are easy to produce and just like WordPress there’s a lot of well-coded examples (although there’s far too many examples, still included in the core, using tables for layout. It’s 2008, Drupal!). That’s a cool idea.
One last thing, Don’t believe people when they say Drupal is too complex to learn. Whether you’re using Drupal or WordPress or building static sites, nothing is too complex for you to learn. Nothing. Those people think you’re dumb. You’re not.
… although Nuclear Physics is kind of hard. Especially if you’re trying to use it as a blogging platform. I think it’s the quantum uncertainty around draft vs. published that really hangs everyone up there.