Exit Dokkeos, Enter Chamilo

Those of you watching closely the Dokeos code will have noticed... I stopped contributing to the project in December 2009, along with my team of 12 and all of our fellow community members. The only changes we sent were actually customer requirements, so no way to avoid that. But that's it. I officially stopped working with Dokeos on January 1st, 2010. As many huge actors in the open-source (MySQL/MariaDB, OpenOffice.org/LibreOffice, ...) and PHP development world at the end of 2009, it was time for a big change.

Working on online translation for Akelos

We are currently working on the development (or co-development, as a base was made available to us by the Akelos team itself) of a plugin to Akelos that fixes the current problems of language variables duplication, deprecation and need for a manual edition of the files. There are still a few things to be fixed in terms of getting that into a production environment for Akelos instead of just the develo

Why using partial strings for translations is not a good idea

This article is clearly at level "piece of cake" for those of you working day to day with UTF-8 and unicode headaches, but I have plenty of problems with my own team to explain why they should never put a string like this:
$SomeString = "This value must not be inferior to";
in the Dokeos translations system, but they never learn :-) This would later appear in the code as something close to:
echo get_lang('SomeString');
and this would make it available in all the supported languages (if translated by a good will in his own language). So here i

PclZip and gzopen64()

I have updated my system early to Ubuntu 9.10 (Karmic Koala) and, to my surprise, there is a little change that could cause dramatic problems in Zlib (library dealing with compressed data). The gzopen() function has been changed to gzopen64(). This means that all calls to gzopen() in the PHP bindings for that library should probably be modified to use gzopen64(). In Dokeos, we use PclZip 2.6, which doesn't use gzopen(), apart from a check to see if the zlib extension is installed or not.