Drupal & Moodle bridge-building

How we integrated a Drupal site with a pre-existing Moodle installation.

John Newton's picture
John Newton

We recently needed to integrate a Drupal site with a pre-existing Moodle installation.

Like many fairly complex organisational systems, this one had a number of related systems too, and no coherent single sign on (SSO) like LDAP. Plus Moodle was running on a different domain which meant that existing Moodle SSO sign plugins wouldn't work for us. As developers we needed to work around the messiness of a real-world scenario and come up with something new. In the end, we achieved single sign and authentication by utilising the Drupal log in. We picked up on Drupal sessions and then extended a couple of Moodle database fields to accommodate session hashes. It would be nice to keep all user data in one place but with the existing data (and custom reporting the clients had developed), it meant we had to retain the existing Moodle system and enable new Drupal users to be automatically added (and when they leave deleted) from Drupal. We also managed to continue to use the session to manipulate the links into Moodle so Moodle could log in each user automatically and match them with their main Drupal records.

While there was a fair amount of custom code needed to do this, the Drupal log in system really lent itself to the task in hand. Moodle itself is excellently documented and has bridging tools that make life easier too. Plus we've used Moodle a lot over the years so were pretty familiar with it and new where the challenges were. I've often commented on various Drupal LMS projects and distros but I think we'll never see a Drupal alternative to Moodle. But that's OK, right now Moodle does something very specific and it's tied to a very specific model of learning delivery.

Those models change.

My guess is, Moodle will change too and do a good job of that. But over the next couple of years there'll be a space for Drupal to provide interesting, targeted learning delivery tools as well.

And that'll mean less time on integration and more time for us to develop better, innovative learning services.