Archive for January 2010
Recently I’ve set myself of a new journey since I’ve decided to help my friend’s business to battle the crisis back home by creating them a new website. It’s a bit ironic but I didn’t know where to start, because at work I usually work with custom made websites which very rarely use a content management system.
The content management system I’ve chosen to use is Drupal – a widely adopted opensource content management system written in PHP. It has a vast community and enormous amounts of modules developed by other people. It took me about a week’s worth of evenings to get to know the system and launch the website. Here are the steps involved to create a Drupal website:
- Install Drupal. The installation was really easy and simple. Put it on your webserver, access the website, follow an easy guide and you’re done.
- Configure Drupal. To a new user Drupal configuration may seem hectic or chaotic at first. It may take a while to get the hang of things. Figuring out how to change website information, setting up menus, changing themes, hiding things that you don’t want to display.
- Pick a theme. It’s generally better to pick an already made theme and modify it to fit your needs. Themes are designed to integrate with Drupal nicely. They will likely look the same on all popular browsers, will be HTML standard compliant, optimized for SEO and may even be optimized usability wise. I found it very easy to pick a theme using theme garden.
- Install modules. Drupal is a modular content management system and comes with a few useful bundled modules it self. One of the strongest Drupal’s key points is that it has a vast community actively developing modules for it. If you ever need to do something on your website most likely there is a module to do it.
More about modules
Drupal has many useful modules such as Blog, Comments, RSS, Forum, Search, Localization, Content categorization. But the true power lies in modules developed by the Drupal community. A few examples:
- CCK. Content construction kit allows you to add custom fields to content nodes.
- Views. One of the most essential modules for Drupal. Alows to change website’s representation in many ways.
- Pathauto. Allows to configure how website’s URL’s are constructed. A very powerful module for anyone interested in SEO.
- Nodewords. Allows to change meta tags. Very useful to provide custom meta descriptions for content pages. Descriptions are important for SEO.
- Page Title. Another useful Drupal SEO module that allows to provide custom page titles.
- Lightbox2. Very nice plugin to display images on the website. Also supports slideshow.
- Wysiwyg. Allows to replace a simple content text editor with a rich text editor of your choice.
- Google Analytics. Adds google analytics tracking. Provides powerful per user configuration.
- Node Gallery. A nice lightweight image gallery for Drupal. Still in alpha stages but very easy to use and provides lot’s of configuration. Integrates with Lightbox2.
- Backup and Migrate. Creates scheduled website backups in case there’s an emergency.
- And many other modules…
Pros and Cons of Drupal
Drupal has many pros:
- Extremely easy to install on any webserver.
- Has a vast community developing modules and providing technical help.
- Has a huge amount of freely available themes to pick from.
- Is very well adopted and maintained which means that bugs are fixed, security patches are released and new cutting edge features are always on the horizon.
- Drupal is fast. Maybe it’s not the fastest content management system in the world but it certainly is fast. It’s very easy to set Drupal cache settings which give an immediate boost to the website.
- It’s relatively easy to set up a website that is Search Engine Optimized aka SEO.
Like everything in life Drupal has a few cons:
- For new users Drupal may be overwhelming somewhat chaotic and hectic. It’s still very easy to set up a theme and enter content. But you may have to scratch your head for a while how to add localization support to Drupal.
- Drupal is quite old and even it’s actively developed lot’s of it is written in procedural PHP. Which isn’t necessarily a bad thing, but in some way means that it’s not a top cutting edge software modelling masterpiece.
- Even though Drupal has a huge community which develops modules for it some of the modules don’t have very good documentation. More often than not these are the less used ones. It’s not Drupal’s fault but it’s still confusing and somewhat frustrating to try and figure out where and how you can configure some module you’ve just installed.
All in all I’m happy with Drupal and I think it’s an amazing project and I’m giving my thanks to the Drupal community for all the greats things they are doing.