Joachim Farncombe Digital Projects

Drupal - the steep CMS learning curve

Drupal is all powerful.

Drupal is brilliant at providing easy to manage, effective websites.

Drupal is also a hard thing to learn for us web builders.

It’s very easy to give up when something is really hard, and I don’t blame you, however if you can see the huge potential of Drupal and stick with it, we can traverse the steep sides of Mount Drupal together, and I promise not to push you off the top when we get there.

I started working in the wild world of the web on a purely HTML website.

Pure HTML sites are fine in many ways; they offer complete flexibility in terms of layout,  design and are very lightweight. Pages load quickly and good results can be achieved when combined with cascading style sheets (CSS). 

This is how websites have traditionally been built. HTML was and still is the foundation of the web.

The main issue with HTML websites are that you  need a pretty solid knowledge of the language. HTML is fundamentally simple, and WYSWIG tools like Dreamweaver and Frontpage provide a simple way to create websites without too much knowledge.

CSS is again easy to grasp at first but more challenging when it comes to laying out content.

My experience is that most people/businesses/organisations don't really want to get their hands dirty with code; code is reserved for IT geeks who sit in darkened rooms. Most people want to be able to pass the hard work over to someone else.

A website that serves any semblance of use should be something that gets updated regularly. This should be achieved cheaply, without the need to employ a code monkey every time a news story is added or say a price list is added.

The second major problem with HTML sites is that they are not clever. It is not easy to create a site homepage that updates automatically when a new blog entry is written or a new page is added to the menu. Invariable, this means hand coding or manually updating all the pages on the site - not exactly an efficient way of working.

My early experience of this HTML only situation was working on the Cambridge University Hospitals site.

Due to a lack of budget and in-house skill, the site had rapidly grown into a sprawling, unplanned mass of HTML pages. I was the content management system. Not only was it hugely time consuming to add the simplest of news stories, it was nearly impossible to allow other hospital staff access to create/update content without buying expensive software and intensively training them.

When working in a large hospital whose various departments are increasingly aware that an online presence is key to their business, their need to add lots of content grows rapidly.

Implementing a CMS seemed the essential thing to do if only for the sake of this web editors' sanity. Various business cases were put to the board in order to gain funding to purchase a commercial system, but to no avail. It’s hard to find money in the NHS at the best of times especially when the choice is a new incubator for the premature baby unit or a website system.

When telling fellow web professionals that we still had a HTML CUH site I was met with incredulity. How could one of the country’s leading hospitals have such an archaic online situation? 

I was aware of the growing availability and respectability of Open Source solutions so began a rudimentary selection process, looking at three main systems: JoomlaWordpress and Drupal. More about that in another blog…

Coincidentally I became involved in a freelance job working on redesigning a site that was already in Drupal. I was able to look at how someone else had set things up.

My initial reaction was: "help – there’s this thing called PHP everywhere!" There's a lot to take in, and a new way of thinking required. Hours of Lynda.com training videos (highly recommended) and days pouring over Drupal documentation later I was only just beginning to realise the power of Drupal.

After several weeks of trial and error and setting up test sites I was able to create my first Drupal site. It was not an easy process.

Drupal often sells itself as a framework rather than a system. This may seem rather pedantic, but I think it’s an important distinction to make. Drupal allows you to build a CMS, rather than simply setting up an out-of-the-box tool. This is where its true power lies.

Just about any functionality can be achieved with add on modules including manipulating the admin area which allows the ‘back end’ interface to be tailored to the client’s needs.

Like most systems, Drupal takes a modular approach. Modules, which are developed by altruistic developers, are submitted to Drupal.org for use by anyone. The community stringently tests these submissions and there are very active forums and issue queues to overcome problems. Site builders download and install modules to add functionality - text editors, Twitter feeds, calendars, forms etc. There are thousands.

Because most functionality can be achieved via add on modules, the need to hand code is minimal. Sure, it helps to understand how things work and a working knowledge of PHP is desirable. However it is possible to build a site without having to get your hands dirty with PHP code. The real skill comes in knowing which modules to use for each requirement and how modules play together.

The main obstacles to overcome when learning how to use Drupal:

  • Embrace the fact that learning continues. I came to Drupal on version 6, but quickly moved to 7 and eagerly await 8, which promises much. It’s a work in progress. Things have changed, and it’s essential to keep abreast of things. Modules get subsumed into the ‘core’ install; modules become obsolete or no longer function with new updates.
  • Security updates and fixes are rolled out regularly. These are essential to keep your website up and running and protected against malicious code attacks.
  • Persevere when looking for help. It will be out there, either on a Drupal issue queue or forum or another website. Clever use of search terms is paramount.
  • Don't get carried away installing modules - there is a real temptation to install as much as possible with the idea that functionality might be required.

Overcome the temptation to alter the core code of Drupal. It might be possible to solve problems by doing this, but this will open up a whole big can of juicy worms when it comes to update the core code.

If you want to know more about getting to grips with Drupal read Fredric Mitchel's article The 7 Stages of Drupal’s Learning Curve

 

Add new comment