What is Drupal?

Well, what is it? What is Drupal? This is a question I get quite a lot when I tell people what we do as a company. I did have a look around the web for a suitable explanation or "elevator pitch" to arm myself when I get this question again, and I'm surprised to find that a lay-person's answer is lacking. Most of the answers I found, including the one on Drupal.org and Acquia's website are slightly tech-slanted. They contain jargon like "open source", "content" (yes, that is jargon too), "CMS" and "platform". 

So how do you tell, say a book author or gardener (who are not tech savvy), what Drupal is? Of course, the answer to "What is Drupal" depends on who's asking the question. Here's my attempt at answering it for the 'person on the street':

Drupal allows you to create websites for free without requiring you to have any technical knowledge or experience. 

Too generic? Yes it is. But at least you don't lose people right within your first sentence. It sells the benefit clearly (I hope) to start with. If they are still interested, you can continue with further insight and explanations. Like:

You can do all kinds of things with it out of the box, like having a blog, or publishing your own writings, or sell things online, or create a social network like Facebook. 

And then:

If your Drupal website becomes successful, you can extend it yourself to include other features, or hire any Drupal programmer to do it for you.

What do you think? Too simplistic? Too misleading?

If you are Drupal professional, how would you answer the question "What is Drupal"?

 

Filed under  //  cms   content management   drupal   how to build a website   joomla   what is drupal   wordpress  
Posted by Farez Rahman 

Fine-grained #weight values in Drupal

This may not be immediately obvious but whenever you need to assign #weight values in Drupal, for example when ordering form elements, you can use floats as well as integers. This is useful if you need to insert a field in between two fields with weights that are 1 apart:

$form['field_a']['#weight'] = 1;
$form['field_b']['#weight'] = 1.5;
$form['field_c']['#weight'] = 2;

I found this to be useful sometimes when I need to insert a field (in hook_form_alter) in between two fields generated by other modules, e.g. to insert field_b above field_c, I'll just do:

$form['field_b']['#weight'] = $form['field_b']['#weight'] - 0.5;

Job done.

Filed under  //  cms   drupal   forms  
Posted by Farez Rahman 

Site launch: Sustainable Tourism Zone of the Caribbean

Last week saw our latest work launched successfully to a forum audience in Guadaloupe in the Caribbean: STZC.ORG.

The client is an EU funded research project whose aim is to encourage tourist destinations in the Caribbean to measure and improve on sustainable tourism practices.

The site's users, i.e. the destination managers of various tourist destinations in the Caribbean, are able to complete destination profiles and evaluation questionnaires on the site, and then generate PDF reports automatically. The administrators are also gien the tools to edit site content themselves, upload files, create user accounts for each destination and have access to all the destination reports. The site is built to support three languages for all content: English, French and Spanish and the site administrators are able to translate all content themselves.

STZC.ORG was built using the Drupal open source system, with customised modules to handle the evaluation questionnaires and report generation. Extensive use of Drupal's CCK and Views modules were used to handle the large questionnaires (150 questions, spread over 4 forms, in three different languages). As the budget was tight, any design work was kept to a minimum, making use of Drupal's default templates as much as possible.

Users were allowed to use the site at launch and they successfully managed to varry out tasks on the site smoothly, thanks to the work we put in making to make the user interface intuitive and easy to use.

We are proud of this launch as it fits in with our aim of increasing non-profit and 'green' projects in our portfolio.

Filed under  //  cms   drupal   ngo   portfolio  
Posted by Farez Rahman 

Drupal, the platform for rapid web development

We have been using Drupal for building websites because it is one of the best open source development platforms out there. Sometimes, being so close to something makes us forget why we got excited about it in the first place, so it's nice to see something like Kurt Cagle's post on Drupal as Open Architecture to remind us.

Although traditionally Drupal has been grouped together with other 'Content Management Systems' (that terminology means almost nothing in this day and age... we should really stop using it), we see it more as a flexible platform for building web applications rapidly and effectively. Here's a quick breakdown of where we see Drupal's strengths are:

  • Ability to get up and running with a basic site in a matter of minutes
  • Its large and growing library of open source modules: 4000 and counting... you'd be hard pressed to find something that doesn't fit your need
  • Extremely customisable using bespoke code
  • Multi-language support out of the box
  • Large community of developers: "There's almost as many people developing the Drupal core as there are developing the Linux kernel" (Jeff Whatcott from Acquia, first dedicated commercial Drupal company, at Launch Pad 2008)
  • Over half a million websites run on it, by small shops and large multi-national companies
Drupal allows us to design, build, customise, deploy and improve client websites at speeds never before attainable, certainly not with write-from-scratch projects using CakePHP or Ruby on Rails, although we still do use these powerful frameworks for projects with specific needs.

Cagle puts it well:

What makes all this effort so worthwhile is that Drupal has now reached a point where you can create a sophisticated web portal without having to know how to program precisely because of this modularity. With Drupal, I can use the Content Construction Kit (CCK) in order to build new content types, can create forums and community blogs, can use blocks and panels in order to position content in specific areas on the page (and establish parameters on those pages), can work with views to create the relevant database queries that let me create a page of gallery images or videos with specific keywords or RSS and Atom feeds, can work with taxonomies that let me build tag clouds and dynamic navigation, and so on ... and I don't need to write a single line of PHP or SQL code to make any of it happen.

I can write such code if I want to - the extensibility mechanisms for Drupal are well documented and are generally not that hard to work with - but the importance here is that I don't have to write that code. Indeed, for all that I thoroughly enjoy working with Ruby, one thing that's rubbed at me for a while is that Ruby on Rails is still based upon this paradigm that you have to write code in order to build a site, which means that Ruby will always be of use only to those people who can write Ruby code in the first place.

Filed under  //  cms   drupal   framework   platform  
Posted by Farez Rahman