Contributing to Drupal: The Freelinking Module

Drupal logoAt the current time, I’ve been a member of the website for 4 weeks shy of 3 years. I mention this because I had an awkward moment on the Drupal forum when an (obviously long-term) Drupaller showed his disdain for me for not contributing in all the time I’d been using Drupal.

Well, naturally said person was a bit of an asshole. One of those blinkered types who believes that everybody has the time or ability to contibute equally to the Drupal project. I’m not a PHP programmer, I’ve only just managed to work out how to theme in Drupal 6. I run a small ship of a few websites, and running them takes up all my time.

I mention this because I was quite annoyed at the implication that by not contributing, I was somehow a leech. Where was the legendary friendly Drupal community I heard so much about? While not able to contribute a hell of a lot, I was at least evangelising the product, writing how-to’s and sharing interesting Drupal Planet articles via social media websites.

Anyway, at the start of the year, I discovered a way to contribute to Drupal. I discovered a deficiency in the Freelinking module which was impairing its effectiveness on my site. (Freelinking gives very basic wiki-style functionality to Drupal sites. Handy when used in conjunction with WikiTools module). Unfortunately, Freelinking was poor at SEO – it linked everything to This would then redirect depending on whether the page existed already or needed to be created.

What we really want in an ideal world, is for pages that already exist to be linked to properly. To the actual page, rather than allowing Freelinking to carry out a redirect. Without that, you lose out on the true value of the link. Anyway, other people had noticed this problem and had logged a helpdesk issue to have it fixed. The issue was first logged in 2007.

I made a couple of suggestions on that thread, but nobody really took the issue on. So, at the start of January, sitting in my parents’ house in Ballycastle, I sat down with the code on a development web server, and managed to come up with a working prototype which resolved the problem. Not only that, but I built in a little touch of CSS code to help identify pages which didn’t exist. The classes “freelinking noexist” are added to these types of pages, and on my wiki site, I’ve coloured “noexist” links in red to indicate that the target needs to be created.

Anyway, I got in touch with Eric (who maintains the module), and sent him a version of my code. Then I sent him another version which included a few more SEO helpers (like including the proper wiki title in the link’s title attribute. A few weeks later, he released a version 2.0 of the Freelinking module which contains the code I sent.

I’m pleased that I was able to give something back, and I know this was a small contribute compared with the stuff core maintainers do. But it struck me that I had a need to fix something in a module, and with a bit of effort solved my own problem. It makes the freelinking filter a little bit better. I like to imagine that it might even push the goal of Wikis in Drupal a bit further too.

Anyway, now that I’ve got the ball rolling, I’m going to possibly release a Drupal 6 theme based on one I’ve been working on for the last few months. I need to finese the stylesheets, and strip back the branding I’ve built into the site, but it should be quite a tidy theme. Even if I say so myself.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s