How Konigi is Built on Drupal

Quite a few people, among those that are aware that Konigi is a Drupal site, have asked how the site is built using the popular open source software. Based on the type of questions, I think those interested are mostly designers who want to do something more than just blog and show a reverse-chron list of entries. So this rough, unscripted video is mostly geared towards helping the non-developer who wants to get their feet wet with Drupal, or those that want to take the next step of making their Drupal blog something more. It may help to know that I'm not a developer myself, but have some scripting experience (self-taught) using PHP and Perl.

There's a perception out there that Drupal is hard for non-developers. A few years ago, Jeff Veen posted an excellent state of OSCMS blog entry. The improvement since then has been slow and gradual. Drupal 5, and maybe even 6 have a steeper learning curve than some other OSCMS out there. I'm confident, given what I've seen so far, that the UX effort on D7 will make a significant difference that we'll feel in the daily activities as admins and users.

Interface design ideas vary among the loads of contributed modules, and that's at times made it challenging to design a coherent experience without knowing how to customize what the modules output. So without a doubt, the biggest skill to bring to a Drupal site as a designer that wants to deploy on their own is some familiarity with how the theming engine works. Some basic PHP (knowledge of using variables, strings, and conditionals) will also get you far.

The biggest issues I have as a site builder using Drupal stem from the desire to make things simpler, and provide clearer paths to the functions I believe to be most important. Indeed, much of what I have done over the years when I've installed a Drupal site is simplify the interface, but mainly for the end-user experience--that of the reader or author, but not that of the administrator. And this all comes down to overriding module output and theming. Oh, and using CSS to do a lot of lifting as well.

I honestly don't think Drupal is that hard to use as a designer. Administration, on the other hand, can sometimes be enormously tasking. The code base I use on this site, for instance, is carried over from my urlgreyhot blog, the studioid blog before that, and iaslash. They've all been run off the same drupal code on my host since 2001/2. Some of the upgrades have been painless. Others epic and with great suffering. But that's beside the point. I've always been able to fix the things I screw up with the help of the Drupal community.

But back to the point of designing with Drupal. Developers who've used Drupal do what I do easily and in more efficient ways, but I thought I'd take a few minutes to just speak at a high level about how the site is built, as well as showing some specific examples of how I'm theming the pages with PHP-Template.

Among the things I cover in broad strokes:

  • Creating and using content types
  • Using views
  • Creating navigation and sections using PHP Template and CSS
  • Theming content types with PHP Template
  • Using taxonomies and faceted tagging
  • Making a simple wiki

The site is still running Drupal 5, but I think within the next few months I'll be able to upgrade to Drupal 6. I've been mainly waiting to test the shopping cart upgrade.

If you're looking for more info, I can highly recommend the book Pro Drupal Development by John VanDyk and Matt Westgate. If you have any other questions about how this site is built, feel free to ask. While I won't give away my theme, I can try to answer questions as best I can.