TAG | drupal
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.
I’ve been developing web applications for quite a while now. And overs years it became as a form of art for me. Creating maintainable, performant, scalable, secure and highly available web applications trully requires a lot of knowledge and experience.
It’s easy to say some applications are better than others. Like paintings or music. Some are masterpieces and some are just a pile of crap. Maybe it’s just me but I think that it’s easy to learn what *good* music is, who the *greatest* painters are and see their work and learn something. So I dare to ask the question. Is it the same with web development?
And if you think what i’m thinking you are thinking then … Yes there are open source web projects! And yes some of them are great! But what kind of projects are these projects really?
There’s phpBB. The famous php forum. It’s crap inside. And there’s phpMyAdmin .. it’s also a view of art that you want to wash your eyes with a bleech after. Even though I use it everyday. OK I’m choosing bad examples here. Lets take … WordPress? Well it’s better .. But really? It’s still not a master piece. You can learn more than from others but still not much. And then there are content management systems like Drupal and others which also creeps me out. And finally iI see frameworks. I personally love the ZendFramework. I think it’s one of the greatest things that happened to PHP in recent years. But it’s a framework! You can’t find there any working models, controllers, web services and such. Ofcourse you can find a lot of *other stuff * there to learn from (like how to create libraries, components or frameworks).
Yes there are great books, blogs, conferences, your company projects. It adds up. But I want to find out who is Pablo Picasso in PHP. I want to see his work and say to myself .. “God! He’s a genius! I love it! It’s so simple and elegant. Why didn’t I do it the same way before?” I think it is healthy for one to evaluate himself among the best and see how far the road he is.
What do you think?