Monday, 7 May 2012

Getting Started with Drupal 7 for Newbies

Preparing The Take Off


After reading a lot about CMS (feedback and opinions), I understood that Drupal was probably the best option for someone who wants to create complex, professional, scalable and maintainable content management system. I decided to give it a try. The learning curve was steep, but worth it. No regrets for the time invested.

I can now confirm what many Drupal fans were claiming: Drupal is not just a CMS system. I totally agree. It is also much more than a framework. In fact, it can be used as a strong base for fully fledged web applications. It offers so many modules, maintained by such a large community that it makes me believe Drupal's future lies ahead.

This post is about making the Drupal learning curve a little less steep. It will be updated from time to time. There is an enormous amount of documentation and videos available on the net, which may lead to a lot of confusion for newbies, because Drupal concepts have evolved over time. Plugin in the pieces together was not easy, because some of the pieces are now obsolete and new ones are not always well documented.

I will focus on Drupal 7, which is currently the most mature version ready for production. My first advice is to resist the temptation of trying to 'code' something in Drupal (like 'Hello World'). This may frustrate your fingers a lot, but I guarantee it will pay over time. As you will find out, Drupal is a perfect opportunity to not re-invent the wheel and to apply the DRY (Don't Repeat Yourself) principle. First, you will spend a lot of time watching videos and doing some reading, together with installing Drupal systems and modules, and testing some configuration.

Before we carry on, I will address early anxieties: yes, you will be able to fully configure the layout of your page in crazy ways and won't have to resort to fiddling layout templates (unless you are really trying something insane). Yes, you will be able to inject all the CSS and Javascript you want in your pages. Yes, you will be able to make Ajax calls to your own PHP files (or others).

Before starting watching videos and reading tutorials, here is my second advice: do NOT read or watch anything about Drupal 6 (or less) if you know won't be dealing with Drupal 6 (or less). Just skip the material, because it will only make you confuse when trying to understand Drupal 7. Turn a blind eye. It will save you a lot of time.

Drupal is large and complex. It is impossible to get a complete understanding of it, even in a couple of days (in fact, don't worry, you don't need to understand it all before being productive). It is like eating a large excellent chocolate cake for 20 persons, alone. You can't do it all at once, a little everyday or it will quickly become indigestible.

Taking Off


We are now ready to take off. Start by watching the tutorial videos of Level Ten Design. This is the best starting point I could find on the Internet. It provides a step-by-step procedure to install Drupal on your local PC and presents all the basic Drupal concepts from a CMS perspective. It will take you a couple of hours, so go and get a coffee (or tea or whatever...) before you fasten your seat-belt.

I encountered one glitch during the installation procedure (I am using Windows 7). Acquia Dev Desktop tries to update a read-only file. Just right-click its properties and uncheck the read-only flag. Restart the installation procedure. Everything went fine after for me. If you need more help, search the web (there is a lot of information available) or try drupal.stackexchange.com.

After watching all these video's, keep in mind that Drupal is more than a CMS. This will become more and more clear later. It can be configured and used in many different ways. This is just a start. You have eaten a small part of the cake.

(More to follow in my next update).