Impossible, you say :) After a long year, when we first started development of version 2.0 of eZ Tags, we finally have something to show to the community. We know it shouldn’t have lasted this long, but what can you do... Sometimes a paying job just gets in a way :)
The last year was, mildly put, eventful for me. Progress on eZ Tags 2.0 started nicely and after couple of iterations of designing the multilingual variant of the extension (it was the toughest part of the new version), things actually started to work. But then, from beginning of this year, most of my time was reserved for Netgen’s collaboration with eZ Systems on developing the new Public API, (which sometimes also included Saturdays and Sundays :)), so mostly, there was no time for eZ Tags, and in times when I managed to pull some free time, amount of work I wanted to do on the extension was overwhelming. Work was being done, albeit slowly.
This beta version was long coming too. Somewhat two months ago I decided that the time would be to do something about it, but again, time was a constraint. Lastly came the eZ Summer Camp where couple of people told me they’ve been using the multilanguage version of eZ Tags without any problems, so I finally decided that it’s time to release beta to a little larger audience.
So, what's new in eZ Tags 2.0?
Obviously, multilanguage tags :) I’m very well aware that there’s a real need for such functionality, so I gave my best to make it streamlined as possible: from how it looks in your browser, making sure that it’s easy to use, both for editors and developers, to how it’s implemented.
Whole core of eZ Tags was updated to work with multilanguage tags and what’s the best part, you don’t have to lift a finger to configure it. All settings for used and displayed languages are taken from exactly the same settings that eZ Publish uses for content objects and it just works. This includes the fetches, extended attribute filtering, eZTagsObject class interface, editing eZ Tags attribute, displaying it and so on. Not everything can be preserved of course, so due to huge code changes, there’s bound to be some backwards compatibility issues with your custom code that uses eZ Tags, so you should be prepared :)
Apart from multilanguage, we decided that version 2.0 would be the best time to overhaul the administration interface of eZ Tags which now looks and behaves exactly like the admin interface for content objects in eZ Publish. The admin interface now uses tabs to display different info for a single tag, just like when viewing a node. The list of tag children is updated to use the YUI datatable component, bringing it closer to how node children table works. The old design of children table is deprecated and disabled, but you can still use it if you wish, by modifying settings in eztags.ini file. This is mostly useful for eZ Publish 4.3 installations that don’t have all the required components for YUI datatable to work correctly. The overhaul of the administration interface is just a beginning. We have something more planned for the attribute edit interface of eZ Tags attribute, but let’s talk about that when the time is right :)
One other feature that was requested a lot found its way into this release: tags cloud over Solr. You can now use eZ Find and Solr faceting to display a list of tags in cloud view and as long as you have eZ Find activated and its schema.xml patched with eZ Tags specific fields, it should work, replacing the SQL code from the previous version of eZ Tags. To support tags cloud over Solr, a dedicated Solr indexing handler was added that can index more data than just plain tag names.
Apart from the mentioned features, eZ Tags 2.0 brings a lot of bug fixes and performance improvements (and some new bugs too, I’m sure :)) and all in all, we’re quite happy with what we did with it. Again, not all features that were planned for eZ Tags 2.0 made it in, otherwise it would never see the light of day, but they’re not forgotten and there will be 2.1, 2.2 and so on :)
Testing and download
To test the extension, you can download it from GitHub downloads section. We’re not ready to put it up on projects.ez.no just yet, as obviously we don’t want the community to start using it as a finished product, simply because it’s not. There are still some things to iron out, some todos left and so on. After all, that’s why it’s marked as beta :) For those of you who do want to use it, backup your installations and data beforehand to avoid any potential headaches. We simply ask you to try to use it as you would use the previous version, play around with it, check out the code, make some pull requests and of course, report any issues that you run into so we can have it rock solid when the time comes for a final release.
EDIT: Since GitHub downloads section is deprecated, beta version can also be found at http://projects.ez.no/eztags/downloads/ez_tags_2_0_beta