DesignHammer just relaunched its website as a Drupal 6 site.
Time for an upgrade
For the past few years Drupal has been our first choice when building custom websites. It gives us a lot of functionality right out-of-the-box, has a great community providing contributed modules, and allows us to write our own functionality when needed. Drupal lets us create almost anything without having to reinvent the wheel each time.
As we spent more time using Drupal it became increasingly obvious that our own site, designhammer.com, was lacking a lot of the features we had come to expect from a well-built Drupal site. The old site was a mixed bag of static HTML, JS and PHP. The blog and news articles ran on an outdated and difficult to use Textpattern install. It was time consuming to make routine updates or to change things like the site layout. As we expanded our SEO and mobile development, the amount of work required to maintain our own site grew.
There's been plenty of excitement around here about Drupal lately, including some contrib module development, a talk submission for DrupalCon in Chicago, and all of our ongoing Drupal projects. The time was right for us to upgrade designhammer.com.
Migrating to Drupal
I had been hesitant to start the process of migrating the site to Drupal because I knew it would take a good chunk of time. A lot of the pages had custom CSS styling that I knew would be a little difficult to implement with a CMS. But, I am fortunate to have two of the best Drupal developers I know working with me. They were able to teach me some great techniques on writing new page templates for each content type, with a little help from the Devel module. This way I didn’t have to totally rely on Drupal to generate the correct DIVs and CSS classes where I needed them. I now have a great deal of control over where on the page my CCK fields are placed and what DIVs I need to wrap around them.
For building the Drupal theme I used the Zen parent/starter theme. I find that Zen gives me a great starting point. I can get to work right away on my theme customizations, without a lot of set up. The documentation for installing and working with the theme is clear and concise. If you're new to theming, Drupal.org has plenty of resources to get you started.
One theme issue I came across, and needed some help with, was the "title" field for nodes. Many of our web page
<H1> tags had various
<BR /> tags inserted manually to help the title flow on the page more cleanly. This is a problem because node titles in Drupal are plain text, with no tags. We needed a way to provide custom titles for display on pages, while keeping the original plain text titles intact for other uses (mobile site, SEO, etc). We came across a tutorial that described a simple method for using a cck field whenever I needed to add HTML. It's a great, simple idea.
A few of the contributed modules that have helped me with my theming are:
- Block Class
Easily add CSS class names to blocks.
- Custom Pages
Add pagination to nodes, and in our case we used it for our blog and news articles.
- GeSHi Filter
- jQuery Updated
Installs a more recent version of jquery for Drupal which allowed us to use current plugins.
- Menu Block
Gives you move control for adding menus to regions along with choosing the link level to start at.
In the end, we were able to migrate the entire static site and all of our blog and news content into Drupal without doing any new design work. This is a testament to Drupal's flexibility and power.
Now that the migration to Drupal is complete, I feel like we’ve opened the door to a world of supported functionality. We can’t stop talking about what we want to add next, including a mobile subtheme, “useful” social networking on our team pages, and much much more. The fact that we now have our content in a real CMS means that the entire team has an easier time contributing content, and we have the flexibility to try new things. We are eating our own dog food, and it tastes good!