Here we are with the follow up from last week post, another 5 small but interesting modules.

6. Views (JQuery) tablesorter

Display. Why use slow and possibly expensive mysql queries to sort a views table if you can do it in the browser? This module uses Jquery tablesort to sort your tables. Because of this it is lightning fast, as you can see on in this example. However, there are some caveats. JQuery is not aware of the data types in the columns, so if you sort on a date field which used ‘… time ago’ as display, it will fail to sort properly.

7. Reverse Node Reference

Architecture. Ever noticed you can node-reference any node to another, which allows you to easily retrieve the referred node data in views relationship. But if you want to travel the other way around you needed one of these modules to create a two-way reference, which can lead to incosistent data architecture. This module solves this by using nested joins which requires MySQL 5.1.

8. Content Display Order

Display. Did you ever want to order CCK fields one way as they are displayed in the node and another in the admin edit/add screen, without using the overhead of a package like Display Suite? This little module might be what you were looking for.

9. Database Tuner

Performance.  Trouble with slow queries? This experimental module is interesting if you are into optimizing your database. It offers a number of suggestions which should have a positive influence on your mysql queries. Mostly adding indexes, changing your engine type or collation.

10. Term Case

Usability / Display.  Take control of your taxonomy terms by forcing them to become all lowercase, uppercase, or first character uppercase. This won’t prevent duplicate entries but it will clean up your vocabularies. (For complex taxonomies you could  take a look at taxonomy manager).

Usually I don’t like blog-posts titled like this one. However, recently I came across some small but potentially very useful new modules which you probably don’t know about yet (most of them are from around April/May 2010) and which I would like to highlight a bit. One word of warning though: most of them don’t have an official stable release yet and are alpha or beta, so be careful!

1. Filtercheck

Performance. Did you know some input filters, like the PHP evaluator, cannot be cached (which makes sense for the PHP evaluator). But you might have other input filters you added which are non cachable too. If you checked such a filter, and use that on nodes, *all* of the nodes cannot be cached. Whether the filter is actually used or not. This module provides the information which filters are cachable and which are not.

2. Node Level Blocks

Context. This can be useful whenever you would like to show blocks in regions only at specific nodes. The modules also allows you to specify which content-types apply, and which modules and regions are available. If you would try to this on a site with a lot of nodes with the core block display options (e.g. paths) you would probably lose your mind very quickly.

3. Google Fonts

Theming. Within 24 hours of the release of this API by Google, a Drupal module was created to implement this. You can simply check one of the webfonts available, and use them in your CSS. They render on all modern browsers (including IE6+) but not on iphones/ipads or androids. All this little module does is include a CSS file from Google, and you could easily achieve the same without this module, but it is an interesting alternative for cufon nevertheless.

4. Language Negotiation

Language. If you ever built a multi-language site with Drupal, you might have been frustrated by the mysterious auto-detect language fallback behaviour Drupal uses for the frontpage. Basically, this results in showing the frontpage in the browser language when no language is yet chosen. While this is probably no problem in many countries, here in the Netherlands people sometimes have English operating systems/browsers which results in showing the english frontpage first, even if a Dutch version is available. With this module you can set an independent root language.

5. Views 404

SEO. This one is really for people obsessed with Search Engine Optimization, but still it is something to think about: Whenever you create a page view, everything you put after the last slash will be counted as a valid url. Even if the page itself does not exist. This can potentially cause a lot of duplicate content if these link somehow end up in search engines (and they would because they return 200). While the negative effect is small and you could manually fix this in the robots.txt, it’s still good to keep this behaviour in mind.

Go to part 2 – another 5 interesting Drupal modules.

So, it appeared I had some unscheduled spare time the last few weeks, and in order to survive the misery, I decided to choose #3 and work on my pet-project.

You know, that great idea you have had for years but you just never seem to find the time to get it done (or even started)? That site you want to built because no one else seems to have done it? The itch nobody else seems to scratch so you’ll just need to scratch it yourself?

I had three weeks, lots of inspiration and – most importantly – I had experience in setting up Drupal-powered sites. The community site I created is for fast cyclist in the Netherlands. Each week, an estimated 500.000 Dutch people jump on their fast bicycle to ride tracks anywhere from 20km to 100+ km. I’m one of them myself. However, I had a problem. While there are an increasing number of devices to record your tracks using GPS, there does not seem to be a site - specifically for fast cyclists – where they can share these tracks, so I created it:

Wielrennen web 2.0

Fast prototyping and iterations
In order to design, develop and build the site by myself and release it in three weeks as a beta, I had to cut some corners. Instead of going through a detailed functional design and graphic design, I did a quick analysis, put down the basic elements of functionality and started looking for an existing theme that matched my vision best. I think fast cyclist are generally more attracted to gadgets, innovation, technology and design. So I wanted the site to have a certain ‘polished’ look. I decided to use the Acquia slate theme as a basis for my design. While this template is originally designed for corporate use, it met my first requirements.

After the first week, I had a basic Drupal community site with all the essential modules. The remaining time was used to create a custom module, tweak settings, setup content-types and adapt the theme. For example, I implemented the nivo views slider as a way to provide a quick overview on the frontpage of the site for anonymous users. The entire process was – and still is – one of small iterations, small steps, and pragmatic improvements, fueled by lots of coffee, drush and a number of people who were so kind to provide feedback along the way.

iPhone, Android,… iPad?
I also wanted to leverage the possibilities of GPS-enabled smartphones like iPhones and Android devices allowing users to use their favorite app to record a track and easily share it. After doing some research, I ended up by modifying the trackfield module. Now users can simply enter the Google Map url genereated by the Android MyTracks app or iPhone Cyclemeter. Support for other devices and apps is in the works, but ultimately we have plans for great apps of our own which we hope to have built by specialised iphone/ipad/android developers.

Besides sharing tracks, there is the whole community part. There is facebook integration and users can create profiles and connect with each other. They can put up notes on the messageboard and comment on anything. There is a blog and newsletter to keep everyone in the loop, and there are plans to implement features like achievements, and statistics/ visual graphs about your own tracks and performance. But in order to keep everything simple, there aren’t any advanced options yet like groups, private messaging, friend-making or ratings.

Future features will be added along the way, but only if they will benefit the community. In the end, it all depends on passionate users and the content they generate. And while this project is a personal one and not directly related to my company, it’s always a good idea to eat your own dog food. It’s one thing to build Drupal site, but it’s a whole other ball game if you are forced to actively use your own product. You will understand your complaining clients a lot better.


The heat is on! Last week, Facebook launched some code which is literally changing the web while I’m writing this post. More and more sites are implementing a ‘like button‘ or any of the other social plugins. It’s amazing how fast new developments like this take off and I’m curious what Google’s response might be after this massive blow in the war between two giants taking over the web. Google launched buzz a while ago, which doesn’t seems to be a success, and who still uses Google Wave? I’m a big fan of both Facebook and Google, but it looks to me like the social war is being won by Facebook.

There is a very good reason why Google is worried about this: advertising. Facebook says they won’t be using this for target advertising. But if you’re into on-line marketing, you should be following this very closely.

Anyway, implementing the like button to your site is damn easy. You can do it with an iframe or (better) through javascript which gives some extra options. Check it out below. (by the way: there already seems to be a module placeholder for the social facebook plugins for Drupal)

San Francisco, by Boltron , Flickr

Update 18/04: because of the #ashcloud which disrupted all air traffic in and out of Europe, my flight was cancelled and I’m stuck in Europe like many, many other Drupal people. That’s means no Drupalcon SF for me :( … So see you in Drupalcon Copenhagen (august 2010). If you can’t wait that long  and are on of the people stuck you can check out some of the ad-hoc organized mini-cons like DrupalVolCon in Antwerp!

Drupalcon San Francisco is coming  in only 12 days! After visiting Drupalcon Szeged (Hungary) in 2008 and Drupalcon Paris in 2009, this will be my first Drupalcon in the United States and I’m really looking forward to it.

Drupalcon San Francisco will be big, very big. With over 2600 attendees so far and sponsors like Microsoft and Google, Drupal is really taking this to the next level. The location is impressive too: the three-day conference will be located at the famous Moscone center downtown SF (street view) which also hosts conferences like Mac World or JavaOne.

During the conference I will try to post some summaries of the sessions I follow on this blog. So check back later if you are into Drupal architectureperformance, and managing Drupal projects.  But choosing won’t be easy with a very interesting and packed schedule with over 120 sessions. On top of that there will be very interesting keynotes. As usual, Dries Buytaert will be presenting his bi-annual “State of Drupal”, Tim O’Reilly will be talking about “Open Source in the Cloud Era” and David H. Cole (Whitehouse new media team) will be discussing “Open Source in the government”.

So if you’re going to San Francisco…