| By CMS-Zone,
on 10-04-2007 16:15
|
Views : 1049  |
Source: Tectonic Author: Jason Norwood-Young I've been on the hunt for a good open source content management system (CMS) – something that is both easy to set up and use, and yet offers good customisation. I don't want my site to look like every other blog in the world. I'd been hearing the rave reports of Drupal for some time. The Drupal project has a long history, starting life as a bulletin board system by founder Dries Buytaert. Today it finds itself hosting the likes of The Onion, Moby's web site, MTV.co.uk and Ubuntu's site. What's particularly interesting about Drupal is its claims to be more than just another blogger CMS. You could in theory roll it out for just about any kind of web site, although CMSs tend to favour content- rather than design-rich websites. I needed a CMS for a news site, and Drupal looked like it would fit the profile perfectly.
There was a minor hiccough during installation. I ran "apt-get install drupal" in Ubuntu and it tried to replace my PHP5 with PHP4, so instead I downloaded Drupal 5.1 from the Drupal web site. I also created a Drupal user for MySql and found out (the hard way) that the user needs quite a lot of permissions. Finally I created a database for the site. I unpacked the file and popped it into my web root, and pointed a browser at it, and the rest was point-and-click. Initial impression is good, with Drupal guiding you through the basics of setting up and customising your site after the initial install. As soon as you post an article, this guiding page disappears. It's this kind of attention to detail that makes you realise that you're dealing with a pretty polished CMS. What I did struggle with was the Drupal terminology, which I initially didn't find very clear; I also had a hard time finding documentation on the terminology. Drupal's been around so long that there is an overload of documentation on the web, and finding what you need among the noise is often difficult. To explain the core concepts briefly, Drupal is made up of nodes, blocks, modules, themes, taxonomy and menus. A node is a piece of content, be it a story, picture, comment or blog posting. It's interesting that Drupal doesn't differentiate much between types of content, but I can understand the logic behind it. Drupal is more of a framework than a custom CMS would provide, and nodes help to get to the heart of what a CMS is all about. In a custom CMS, such as the one we use to run Tectonic (called OneLite), a story could consist of words, pictures, and maybe a box of text. In Drupal, each of those elements are separate nodes, and you have to link the nodes to one another to get what we at Tectonic would consider a full story. A block is a section of the web site which can have specific elements in it. You could place a menu, or a search box, or specific content within a block. Once you've got the blocks you want, you place them on the page. A typical page consists of a header block, a left and right sidebar, a footer and a content block. The modules available for Drupal are simply add-ons, and there's a ton of them. It's quite tricky to choose the ones you want, and I soon found out that there are many more modules compatible with version 4 of Drupal than version 5. Add-ons include other types of nodes, added features performance enhancing add-ons, different types of menus, and a lot more. The modules are provided primarily by Drupal users, and as such the quality varies. Some are very good, but I found that what I needed most – image uploading and linking to stories – was pretty buggy. I'm told that the modules are quite easy to write, given some PHP experience, so it looks like I'll be writing my own image modules. The Drupal themes are just as prolific as the modules, and there really are some stunning ways to skin your site. However I wanted my site to be unique, so I modified the Zen theme to give me what I want. The themes really stand out for me as Drupal's best feature. I've found other CMS' to be somewhat clunky when it comes to really customising the look-and-feel of a site. Drupal's themes are simple to modify, and unless you're doing something particularly hard-core, you won't need to know PHP to do it. Drupal relies heavily on style sheets, which makes the initial work very simple. I found that I could do most of what I needed to do simply with the style sheets, without having to delve into the HTML or PHP. Although I imagine some themes are harder to work from, I found the Zen theme to be well thought-out, and hence simple to change. My final site didn't look at all like Zen, and yet it wasn't a big task to implement the new site, taking me only about two hours. (Bearing in mind it was the first time I'd even seen a Drupal theme.) Alternative "theme engines" are available for Drupal, but I was so happy with the standard engine that I did not explore this option. Taxonomy, in Drupal, refers to how content is organised. It really means "to categorise", and it took me a little while to figure out that I was looking for taxonomy features when I wanted to categorise the stories. Once I'd figured that out, I found a module that let me create a menu structure out of my categories, and I was pretty close to finishing my site. The menus are another element of Drupal that deserve some attention. You can create custom menus combining different elements, and then reuse them. I found this particularly helpful in including the main menu at both the top and bottom of the page. Once you've put in a bit of work customising Drupal, adding new features typically involves downloading a module, enabling it, and adding it to one of the blocks. This makes Drupal a little dangerous – your site could quite easily become bloated with features that will never be used. But it also makes Drupal particularly appealing. You can create a very unique site with a specific combination of modules, with very little work to get it customised just the way you want to. There have been some nay-sayers that note that Drupal is a framework, and as such doesn't lend itself to highly customised sites. I'd say that this is true to a degree – Drupal will not work for every web site in the world. But it will fit many a need quite comfortably. Certainly the next time I need a web site up quickly and easily, and the requirements of the site are not too specific, I'll use Drupal.
|
|
|