Some good things about Drupal

I am often overwhelmed with feelings of bitterness when I think about Drupal. My wife thinks it is cute that I am so passionate about a platform.

Frequently, I tag entries referring to Drupal on my web journal with “suckage“. It’s horrible, but the sense of frustration I’ve had with Drupal is greater than I have ever had with any other FLOSS CMS. That being said, there are some things that are really just awesome.

Consequently, I’d like to talk about some great things I have found working with Drupal.

Here are some positives:

Views

Ever wanted to create a list of recent activities or a monthly archive page? The Views module (which I think will now be core in D7) is what you need. It’s usability isn’t the greatest, but it allows for the parsing of previously published content (nodes). These parsed lists can be presented as filtered, sorted and/or unordered/ordered lists within pages or blocks. It is very flexible. The recent activity list on the right hand side is a “view” that aggregates recent journal, quote, movie and picture content-types (nodes) that have been published.

modX has similar functioning core-snippet called Ditto. It aggregates blogs, articles/news collections (and does quite a bit more). To be honest, I didn’t understand how Ditto worked until I started working with the Views module. It was like a light went off and it became apparent why I would want that kind of functionality. ExpressionEngine also has an SQL Query Module that does much the same.

Content Types

From an Information Architecture stand-point, I love the notion of creating custom Content Types. I use it for Quotes, Statuses, Movies, Pictures, etc. One of the reasons for doing this is the improved editing experience (granted the authoring experience would improve quite a bit if they had vertical tabs—the pages are too damn long).

Taxonomy

It’s awesome to be able to create custom taxonomies (categories) for which to organize your site. To be honest, my site only uses a small subset of the taxonomy module (simple keyword tagging). However, if this site became more than I expected, I can at least grow it.

Drupal has room to grow

One of the often cited advantages is that Drupal does have room to grow. While I doubt that I will need this feature with my site, if need be, I can add such things as a forum or multiple authors rather easily. When 3rd party modules are added to the mix, you can develop quite a platform with Drupal

You can theme as much or as little as you want

This is a double-edge sword. I am not a great fan of Drupal’s default theming mechanism: PHPTemplate. I come from a Textpattern, ExpressionEngine, and modX background. The Tag/Variable/Parameter paradigm seems more intuitive to me as a Designer. I know it’s just a bit of PHP here and there, but why burden a designer with this?

Drupal code output suffers from “div”-itis and “class”-itis. In one sense, this is really powerful; I can customize a lot of the presentation layer through the copious amounts of CSS classes. However, the naming convention (e.g., block-block-1) and sheer amount class names make it almost impossible to visualize the inheritance through the stylesheets without a good CSS tool (like Mac Rabbit’s CSSedit). Theming seems over engineered. So I’m kind of torn on theming with Drupal. However, I have written about the net-negative results of theming several times already.

If there is one thing, I wish the class naming convention for Drupal was more intuitive.

However, theme and template overriding is super-duper useful.

Zen Theme

The Zen theme aims to be the ultimate standards-compliant starting theme for Drupal. Initially I was a bit taken aback about this process. Shouldn’t I be able to create a theme from scracth? However, after using it for a bit, I do appreciate it. The documentation for rolling a custom theme is lacking. I don’t think I could have built my site without the Zen Theme. I realise that my last point underscores what I think about custom theming in Drupal, but the guys at Lullabot did a really great job and they deserve recognition. Let’s hope it (or something similar) is included in D7. I do wish however, that it was based on “blueprint CSS” or any of the other emerging CSS frameworks.