Happy New Year: 2009 is going to be a big one (point six)

January 2nd, 2009

2008 was certainly a big year with the release of 1.5 in January. I think this has been one of our most successful and ground breaking releases (comparable to Mambo 4.5.1 which really pushed us to a new level back in the good old days). A new stability release will come out this month marking 1.5’s first year of life. But what’s in store for 2009? Well, just as 1.5 up’d the standard compared to 1.0, we believe 1.6 is going to do continue the trend.

Joomla will hold it’s first Developer Coordinator Summit in Australia this month.  Anthony, Louis, Sam, Wilco and I are going to be thrashing out the details for finalising the feature list for the final release, and if we are lucky we might even be close to cutting our first alpha after the event (providing we haven’t been spending too much time playing cards or chasing kangaroos).

Notwithstanding that there is some other really cool work going on, 1.6 is about two main new features.  The first is a that we’ve completely rebuilt the way extensions are stored in the database and this will ultimately make it easier for developers to make multi-installable packages.  I’ll let Sam blog about this more at another time.

The other feature is giving Joomla a fully feldged Access Control System.  In November and December last year the work on this progressed a long way.  A new Access Control component in the Administrator (under Site in the Menubar) now gives you the ability to create new User Groups, new Access Levels (more than just Public, Registered and Special) and several varities of Rules that help you control what a user should or shouldn’t be able to do.  The User Interface for the rule building and the terminology still needs work but at least it’s functional now.

As it stands at the moment, the Access Control System will include the ability to:

  • lock groups of users down to access particular functions, like managing each extension, managing menus, installing a particular type of extension, etc;
  • lock groups of users to be able to add, edit or remove content in particular categories (in other words, you will be able to define your own variants for existing groups like Author, Editor and Publisher);
  • lock groups or users down to be able to view content in new access levels that you define (for example, you could create a Staff group and a Staff access level so that your Staff users can see content restricted to their group).

The "granularity" of what you can do is still up in the air a bit but that’s the general direction we are heading.  Suffice to say though, that in itself is a major improvement over 1.0 and 1.5.

Most Administrator components and the Admin Menu are now locked down to the ACL system.  While a lot of performance tuning is still required, in principle it seems to be working well.  We’ve also introduced the concept of a "root" user that is able to perform any function (he/she sits above the Access Control System).  This is just a User ID that is set in the configuration.php file so that in the event of an emergency (like you accidentally blow up all the rules), you can set one user to be login to the site and rescue it from certain doom.  It also gives you the ability to limit the permission that even a Super Administrator has which could be useful on some sites.

For developers, the API for Access Control has been given a complete overhaul and we’ve tried to make it as easy as possible to interface with it during the installation of an extension.  If you want to peak at the progress, take a look in /libraries/joomla/acl/ and also in /installation/sql/mysql/install.php (that last file will probably move somewhere else eventually).  There are a couple of workability issues to iron out but after that hopefully I can drill into some pretty cool stuff you can do with it next month.

Regarding upgrading your site, we aren’t sure of what the process will look like but suffice to say it will be a whole lot easier than the leap from 1.0 to 1.5.  However, a version 1.0 site will have to go through a migration to version 1.5 in order to get to version 1.6 or beyond.

Finally, it’s worth reminding you that Joomla 1.6 will require a host with PHP 5.2 so start making preparations for changing hosts (or nagging them to upgrade their PHP) now.

Oh, and we should be getting a redesign of the site this year to.  It’s our turn at last 🙂