Nuketown’s redesign project has slowly crept forward for the last year, but it saw a nice surge in progress this summer. First off, I have a solid Drupal 7 foundation for the site, with all of my social media, audio and visual, and content tools chosen and functional. I’ve also learned a heck of a lot about drush — Drupal’s command line tool — and that’s helped considerably with quickly iterating through build outs.
Now I’m back to theming. A few months ago I finally solved my HTML5 issues with Internet Explorer 9, and had a complete (if static) template for the site. This month I’m focusing on turning that HTML prototype into a functional Drupal 7 theme.
It’s a complicated process with a sizable learning curve. At its most basic, I need to grok the code that Drupal is spitting out, and merge that with what I created for my design. My original design is straightforward HTML5 with a minimal number of divs and spans for structure and content. Drupal is verbose; almost every field it outputs ends up with a bunch of divs and spans. This means that you have a lot of hooks to hang your CSS hats on, but it does complicate things, particularly when I realized that I wasn’t specific enough with my original style sheets. That can lead to odd effects with nested containers, and I’ve had a fair amount of clean up.
The time consuming part has been learning the Drupalish way of theming: how to theme a node, how to theme a page, how to theme a view. Each and every dynamic component of the site, from social media links to bylines to inline photos, requires looking up the correct way to do it, and then implementing it.
I have made some major progress in this regard, the biggest being formatting my imported tweets. They now appear exactly as they did in my prototype: discrete blocks of content interspersed among the full-fledged articles. This was a big deal for me, as it was a cornerstone of the new design. I really wanted that microcontent to be an integral part of the design, not just content living in a sidebar block. I accomplished this by creating “microcontent” content type, and then theming it through a microcontent-specific node template.
To start I expect this will only be used on the home page, but later on I hope to experiment more with the Feeds module to see if I can get it to parse hashtags into Drupal categories.
Aside from the CSS work, the other challenge I’ve encountered is social media integration. Nine months ago I experimented the Social Media module, which seemed to do what I needed, but as of today most of its services aren’t working. I’m currently experimenting with the ShareThis module; it offers the sort of inline sharing I was looking for (e.g. ‘like this’, ‘tweet this’) and seems well maintained.
My current goal is to get the basic theme done. I’d like to have the article and category views done by the end of the month, and then launch into the Drupal 7 upgrade over Labor Day Weekend. After that I’ll launch the new site, and then quickly move on to building out the new home in September.
Ideally I’d launch it all at once, but honestly this project has been going on too long. It’s time to move beyond Drupal 6. Half my work projects are running on Drupal 7, and it’s more important for me to improve my D7-fu than it is to launch with a perfect site.