Much Ado About Nothing

Mollom 0.7.4 and more

One of my ongoing efforts is trying to get WP Mollom translated. I’ve put the plugin up on the wp-polyglots mailinglist and I’ve received several translations. Which was enough a reason to tag a new release. So, now you can enjoy the power of Mollom in these languages:

  • Vietnamese (vi)
  • Bulgarian (bg_BG)
  • Bangla (bn_BD)

I’ve already written about revising the codebase and making room for improvement. I’ve made a small list of things that are on my wanted/todo list.

  • More OO
    At this point, all the functionality is contained in 28 functions. These functions implement everything from the different calls to the Mollom API, over handling comment form input to showing a pretty graph. Although most functionality is comprised to it’s own function, there’s still lack of a good architectural design. I’ve come to a point now where adding new features or optimizing code means ripping apart large pieces of the plugin. For instance, the function that let’s the configuration page work contains code to handle the form but also to build and show the form. Boxing functionality limits the ability to reuse code or adapt it efficiently. Identifying separate segments of functionality and assigning them to their own classes and functions will make the plugin more agile and able to cope with change.
  • Implementing AJAX
    Over the last iterations, WordPress has incorporated loads of AJAX. This technology makes it possible to, for instance, moderate a comment without the need to reload the entire page. And as a bonus, add a nice colored fade effect. It would be nice to leverage the AJAX API of WordPress and make WP Mollom more userfriendly. AJAX in Mollom would not only be applied in the administration panel, but also made available front-end to theme developers.
  • Usability
    The current interface has already gone through several iterations but there’s still room for improvement. I’m thinking of several things. Instead of a percentage with no label, it should be a more visual indication of the spaminess of a comment. Comments that had a CAPTCHA should stand out more in the list. Pagination needs more refinement. The configuration page needs some rethinking. The quality indicator in the moderation module should be more verbose. I would also like to make the plugin more informative: a better breakdown of statistics and performance monitoring of the plugin.
  • Hooks
    Wordpress allows plugin developers to define their own hooks. This enables plugins to ‘hook’ onto each other. A nice example is Ozh’ Admin Dropdown Menu that allows plugin developers to define a custom icon through a hook. I would like to keep an eye out for places in the plugin code where functionality added through third party plugins can generate added value. Mollom is designed not only to protect comment forms, but any form that’s presented to an end user. So it would be a plus to make Mollom protection available to other plugins through well placed hooks.
  • Widgets
    Wordpress 2.8 will ship with a new improved Widget API. This enables plugin developers to write easy to create widgets which can display all kinds of neat things on your blog. An easy to install Mollom widget that displays the effectiveness of Mollom would be a nice-to-have.
  • WordPress MU support
    This is something I’ve been talking a long time about: adding support for WordPress MU. The current codebase doesn’t allow this in an easy fashion. Incorporating WordPress MU support is one of the main reasons to rethink the way the plugin should be designed.

It’s pretty clear this means going back to the drawingboard. Development should progress pretty fast though, since most of the code which is now in the current stable version, can be reused. One lesson I’ve learned is that I should to code the plugin against the development version of WordPress (in this case: bleeding-edge 2.8) to cope with the changes and make use of newest features in WordPress.

In retrospect, the plugin has been a project which I’m working on little over a year now. The log of wp-mollom.php tells me that I started working on the plugin itself (after testing the Mollom API and very premature versions in february-march 2008)  on april, 2nd of last year. So, a bit late: but happy 1st birthday WP Mollom!