Drupal 6

Looks like people are finally realizing the enormous business opportunities lying in doing themes for Drupal sites. There is the http://www.topnotchthemes.com/ team building truly nice themes with support for common modules, knowing Drupals ins and outs.

At the same time http://www.templatemonster.com/ is picking up Drupal in their CMS section, selling Drupal themes for all kinds of focus areas. Although some of their demos have the "Mambo license" menu item running, which is quite frankly not a testament to their understanding of Drupal. However, starting off from a ported theme could still be nice, those buying Drupal themes might not want to fiddle as much customizing the theme further (update: and there are possibly other problems my soft blogging style did not uncover here, see: http://www.drupal4hu.com/node/146 and http://www.drupal4hu.com/node/141 for notes).

If you'd be interested in ported themes though, you might want to just start off from a theme downloaded for free. There is a new site coming up, started by a Hungarian Drupal enthusiast Ádám Boros. He is going through some of the exciting existing HTML templates and converting them to Drupal themes, providing for you to download for free. Why another theme site, you might ask? Why not just submit to Drupal.org? Well, although free to use and take, some of the HTML templates are not released under the GPL, so they are not suitable for submission on drupal.org. This requires people to either host them on their own site, or go centralize to a location. Ádám's new site, drupal6themes.com aims to not only host Ádám's work but also provide a platform for others to submit their Drupal 6 compatible themes and host them there.

I am extremely happy to see all these theming businesses and the expansion of the available themes to come together, and hope the growth is going to be even bigger going forward.

Early in 2007, I was discussing the possibility of being the Drupal 6 maintainer with Dries. Dries was just collecting candidates at that time and it was not for some months after work on Drupal 6 started, that he selected me as a maintainer. Through the discussions, we reiterated the point multiple times, that core maintainership requires a significant dedication and time from the maintainer. I never thought I will be able to work this much on Drupal 6 though.

In mid-April, when Dries announced me as the selected core committer, I was still at university, completing my MSc thesis, and that my thesis was focused on internationalization features for Drupal 6 helped my involvement a great deal. It was a perfect match. Then after finishing university, I went on to work in Google Summer of Code 2007, where my application was accepted earlier. In part, I continued the multilanguage improvements for Drupal 6 (with localization advancements) and taken over Localization Server from Bruno Massa to take it to new heights and eventually make it an official tool for Drupal translators.

A few hours after I blogged about graduating, I was approached by Dries and Jay Batson to work for Acquia full time as a Drupal core developer. Being an open source contributor for at least 7 years, I was amazed by the possibility. While it was a lifetime opportunity for me, Drupal 6 benefited most with this offer. I have been working on Drupal 6 full time after finishing Google Summer of Code, right from the next business day, August 21st (months before Acquia was even announced).

I just checked out the data about the volume of my involvement in Drupal 6, and it is fantastic to see that how this all made possible to enable the community to contribute with a higher pace then ever. My commits reflect all your combined work, multiple contributors working on each improvement or fix to Drupal 6. If Acquia's priority would not be to contribute to Drupal 6 and help me enable the improvements and fixes to land in core, we would not be here with a release of this quality in this timeframe. The difference between the parts of this commit graph when I was working on Drupal 6 in my spare time and full time really shows the difference.

So while there are lots of thanks coming my way, let me pass on some to Acquia. Let's meet in the Drupal 7 issue queue as well, we have fun stuff to do in the next release as well!

In my short free hours the last few days, I was brainstorming on new features for the translation template extractor (this little module which extracts translatable strings from Drupal modules) to make both the translators and Drupal coders life easier. Today I am proud to announce, that I released the old stable code as Potx-5.x-1.0 and Potx-6.x-1.0 (which signifies that the development code was quite stable for some time now) and wandered to implement new features for the 2.0 versions of the modules. From today, the 6.x-2.0-dev branch contains the two new features I developed the last few days:

The module now extracts translation templates for themes too, not only modules. This was an obvious feature request, but the original implementation was quite shortsighted, so the relevant part needed a full code rethink to support themes. This is good for translators.

The bigger news for module and theme developers is that potx now comes with (experimental) coder module integration. For those who have not heard about coder module, this little piece of software helps you to upgrade modules and ensure they conform to coding guidelines. It even helps you avoid some common security problems. But until now, it did not help you review your translatability errors. In fact, I got bug reports on the translation template extractor that if a module passed coder's review, it should not have any localization errors. Well, when used together with potx-6.x-2-dev, coder module now offers a new code review option. You can check translatability errors of your modules right there!

How can we make this even better? Well, there are still some TODO items for potx module, which will be implemented later (and I am sure people would like to see a 5.x-2.0-dev backport of the new features), but obviously people will not be better if told they make mistakes, if we don't tell them what to do instead. So I sat down and carefully crafted the Drupal 6 translation cheat sheet for your consumption. This fine piece contains the PHP and JavaScript interface translation API functions as well as the functions used in the installer (such as .install files and install profiles). I also collected the three most common errors and provided two tools to help you ensure you do as best as you can. This cheat sheet also includes explanation of the different placeholder syntaxes used in t()-ed strings, which even I have not been able to get used to still.

I hope you will find the new features and the cheat sheet useful, and take some extra time to ensure your modules are properly coded for interface translation, when you upgrade them for Drupal 6. Remember, we are going to have a "multilingual release" with all the new language features, so it becomes increasingly important that contributed modules use the interface translation API properly.

Update: Replaced the file with the 1.1 version, as I noticed that the !html placeholder needs a security warning to ensure people are aware that usage of this placeholder is not advised.

A few days ago Károly Négyesi (known to most as chx) announced that he organizes a (virtual) cirtical issue queue cleanup event for the 3rd of November, in which people gathered on the #drupal IRC channel will focus on fixing bugs in the critical issue queue.

webchick, desbeers, dvessel, davidstrauss and myself will spend part or all of November 3 with one goal in mind: empty out the critical issue queue for Drupal 6. In case we reach this goal and we have more time, well, there are a number of noncritical bugs and an even bigger number of patches that need work. Come, join the fun on #drupal on irc.freenode.net [...]

A few hours ago, Raincity Studios also announced that they are organizing a (real life) event for the 31th of October, titled the Disguised Drupalist Debugging Day. The Raincity event involves snacks and lots of help even for people starting to get their feet wet in patch rolling.

At last but not least, people from the Netherlands organize their first DrupalJam event for the 16th of November, which additionally to hosting sessions also includes a translation sprint, which admittedly is not direct code getting into Drupal 6, but nonetheless a very good opportunity for people to test every corner of Drupal 6, while translating them, and at the same time using the localization tools heavily, giving them some boost.

Things seem to line up nicely, and seeing Drupal 6 getting more and more stable by the day is very gratifying. In related news, the Drupal 6 development version is so stable, Angie Byron (known to most as webchick) just started her blog site on this version.

Well, back in 2003 when I joined the Drupal developer community (got my welcome mail from the drupal-devel list on September 15, 2003), I haven't thought I will be that involved with the system a few years down the road. It was (and is) a rather cool tool for a big Hungarian web development community website I was migrating from some ugly CMS... Now I do so many things around Drupal that it is not easy to track: