One day about five years ago my boss called me into his office. There was a problem, he said. There had been some complaints and they needed to be promptly addressed. As I shifted nervously in my chair wondering who I had inadvertently angered, he opened his laptop and asked, "Have you ever heard of Drupal?"
Not the question I was expecting, but relieved nonetheless. Apparently a lot of users were unhappy with the content management system we were using and it needed to be replaced. After the initial feeling of relief at not being in trouble faded, a bit of dread began creeping in.
Switching content management systems is no minor thing and in my case it needed to be done as soon as possible. There was a lot to learn and the next months were a long and meandering (and sometimes painful) education on how to build a quality Drupal website. In retrospect, it was harder than it needed to be.
This story came to mind recently after reading a post by Tim Millwood on the challenges of building a quality website, particularly for new Drupal users.
What follows is a game plan for learning Drupal, particularly if you're on deadline. It's not a recipe for a particular site, but rather a strategy for new site builders to evaluate options and decide which ones will work best for their particular situation.
Pick a Distribution
The first step is to skip Drupal core and download a couple of distributions. Starting with Drupal core locks you into a steep learning curve because it's not a finished CMS, but is instead a framework for building one. That's an important distinction, particularly if you're coming from a WordPress or Joomla background. By comparison Drupal is definitely a "some assembly required" situation.
There are a lot of distributions available on the Drupal site, but a good way to decide which ones are right for you is to think a bit about what kind of site you'll be building. If you're building a community site, Drupal Commons is a good choice. If you're doing an eCommerce project, then Commerce Kickstart is a safe bet. I have an installation profile for Omega theme that you can try as well.
The important thing is to pick at least two, install them and then make your way to the modules page.
Evaluate the Modules
Modules are the workhorses of a content management system and figuring out which ones to use and how they work is one of the biggest challenges for new site builders.
To quickly orient yourself with the most important modules, go to the modules page on each site and make a list of the modules that are being used. Any modules that are present on both sites are probably modules you'll want to include on your site as well.
The next step is to take your list of modules common to each site and visit the project page for each module. One module you'll almost certainly end up using is Views. So just pop on over to the project page for Views and read up on it a bit. Then repeat for the others on your list.
The important thing at this point is not to understand any of the modules in great depth, but to understand what problem the module solves and then evaluate whether or not this is functionality you need on your site. Now just because a module was in both distributions, it doesn't necessarily mean you need it, so take the time to evaluate the modules well enough so that you aren't including modules on your site that you don't need.
Finally, take a look at the list of modules that are unique to each site and ask yourself why the module was included in the distribution. What unique problems are those modules trying to solve? This will really help you begin to sort out the different ways of putting together a quality Drupal website.
Consider Special Cases
After you've done your initial review of the modules, determine if the site you're building has any requirements that won't be met by the modules you've evaluated. Once you've got the list, start hunting for modules that will work for your site.
Here's an example. Say you know you're going to need to have unique layouts for some pages. The distributions that you looked at probably didn't address this, so what to do? Well, you'll probably turn to Google and you're going to find stuff on Display Suite, Panels and Context, among other approaches. The choices start to make your head hurt a little, huh?
That's one of the strengths of Drupal, but it's also a weakness. There is a lot of duplication of developer effort and picking the "right" module can be a challenge. I wish I had a great solution for this particular issue, but there are really only two ways to handle it. You can just pick one - maybe the one with the most downloads? - or install each of them and take them out for a test drive.
In the example I used above the best module to use is whichever one you prefer and is solving the problem. They're all good and once you have a bit more experience, you'll get fancy and use them together.
Pick a Base Theme
The landscape for Drupal themes is perhaps even more varied than with modules. You can buy a premium theme like the ones you'll find here on Friendly Machine (a good choice, I might add), download one of the freebies on the Drupal site or you might feel ambitious and decide to build one completely from scratch. Let me try to dissuade you from attempting the latter. It's a lot of work and in many cases a waste of time.
A good place to start learning about Drupal themes is by evaluating base themes. Base themes are what you might call "building block" themes that other themes, called sub-themes, use to take care of the common tasks that themes typically have to address.
Base themes are huge timesavers, especially for new site builders, but they also represent a big investment as far as learning how they work. My recommendation would be to limit your research to just three base themes - Zen, AdaptiveTheme and Omega. I use Omega as the base for my themes and it's awesome, but all three of the base themes listed are very good.
These themes come with "starter kits" that include a very basic sub-theme so you can evaluate them more quickly. The main thing you're going to want to look at is how things work on the theme settings page. Are there layout options? What functionality is available? Then check them out in the browser, particularly if you're building a responsive site.
The other thing about limiting it to these three is that there are a lot of articles evaluating each of them. For example, I have an introduction to Omega theme here on Friendly Machine. Take a look at a few of these articles and then decide which base theme you feel the most comfortable with.
Sub-Themes: Build, Buy or Freebie?
So now you have a feel for what's going on with Drupal base themes, but they're pretty bare bones. You're going to need something with more polish for your completed site. Each of these base themes have sub-themes that are available either for free or that you will have to purchase. For example, one of the better free themes for AdaptiveTheme is Corolla.
I would recommend taking a pass on most of the free themes. It's often a case of getting what you pay for and if you're on deadline, they will often need too much work to be a good option. If you're a designer, then building a sub-theme might be an option, but the learning curve there is quite steep.
I have had several people write me recently asking for a tutorial on building a theme from start to finish. Unfortunately, that's more of a book than a blog post. If you have a long time frame and you really want to take up Drupal theming, then definitely go for it. If the project is more time sensitive, you'll need to buy one.
The path you take when buying a theme depends on budget, of course. Custom themes typically start at around $7,500 but are often considerably more. Premium themes usually run between $50 and $100.
If you go the custom route, be sure the person you - or your firm - hires has experience with the base theme you're using. You don't want to be anyone's guinea pig.
If you're going with a premium theme, make sure it will be easy for you to customize given your level of expertise. Premium themes that come as installation profiles are also a good alternative to distributions if you want to see how a site is put together.
This Sounds Like a Lot of Work!
The ugly truth is that there isn't a content management system out there that doesn't require a lot of time to learn. What I've recommended is learning from the work of others in a systematic way. It's an excellent approach that will save you a lot of grief. Take a week or so to follow these steps and you'll get a basic understanding of the Drupal site building landscape. From there, you'll be able to go deeper with a better perspective.
Building your first site from scratch can be fun and a great learning experience under the right circumstances - no deadlines, quality not an issue. But if there is a real project you need to deliver, don't be a hero. Build on the work and experience of others. The end project will be much better and has the added benefit of preserving your sanity.