How to migrate from Claroline to Chamilo

On Wednesday 21st of January 2015, the UCL (Université Catholique de Louvain), through an e-mail from its rector's advisor and its co-rector for education and training, announced that it would abandon the development (and usage) of Claroline over a period of 18 months. There's a little mention about Claroline Connect being "immature" at this time, and a comparison between (exclusively) Claroline, Claroline Connect and Moodle in terms of the direction in which the UCL is going and the uniformization of its online education. They decided to go with Moodle for the foreseeable future.

Chamilo 1 "LMS", Chamilo 2 "LCMS Connect", and the desambiguation

There's been much talk over the last years about Chamilo 1 and 2, whether they were the same product, whether we were going to merge, etc. Last month's General Assembly of the Chamilo Association (which also made me the happy president of the association) helped us clarify a common line of conduct which, I am sure, most will appreciate. If you're in a hurry, you'd better move directly to the end of this article ("Conclusion"), because I want to drive you through the history of both projects now to give you a complete understanding of both pieces of software.

History of Chamilo 1 (now Cha

e-learning platforms list

Just as a reference for later (in alphabetical order) - this list was originally quickly composed as part of the planning of a comparative study which was not concluded: Open Source:
  • A-Tutor
  • Canvas LMS
  • Chamilo
  • Claroline
  • Docebo
  • Dokeos
  • eLMS
  • Ilias
  • Moodle
  • OLAT
  • Sakai
  • .LRN
Non Open Source:
  • Angel (now Blackboard)
  • Blackboard
  • CourseMill
  • e-Doceo
  • e-Ducativa
  • SharePoint LMS
  • TotalLMS
  • WebCT

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,, ...) and PHP development world at the end of 2009, it was time for a big change.

Style broken when installing Dokkeos on one local computer then seeing it from another

A frequent question I've been asked is why, when installing Dokeos on a local computer, then trying to see it from another computer, the styles are broken (the homepage appears as a list of links from top to bottom). This is all a question of Name Resolution (or DNS).

How you did it

The initial problem lies on how you did the installation on your local computer: you downloaded Dokeos, then took the easy way and installed it on "http://localhost/dokeos/", or "", or even your local IP "" for example.

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.