Dokeos - Drupal module, first version available

2014 update: The team that used to work on Dokeos has moved in 2010 to Chamilo, a fork of the first which focuses on keeping its free software nature intact (which is now at least twice as popular). The Drupal module has been forked into Drupal-Chamilo as well. Check it at https://drupal.org/project/chamilo Yesterday I have commited an additional service into Dokeos (called "courses_list") which works in SOAP and REST, will be available in Dokeos 1.8.6, and which will enable a new Drupal module (also created yesterday by fellow Peruvian developer DevelCuy), the Dokeos e-learning module, to connect to Dokeos (using the Dokeos API key) to get a list of currently (publicly) available courses. This is just a little step in the right direction, but the idea is, in the near future, to be able to integrate more of Dokeos information into a Drupal block, so that any university or large organization using Drupal can choose to display information about what is going on inside their Dokeos installation (for example, calendar of events, new information in courses, etc). I took the opportunity to request an official module maintainer permission to the Drupal CVS admins, which already got accepted, and have a series of improvements in mind for the module in the future. It might become a very large module in time, depending on the efforts we put in it (which will depend on the demand, as usual). I see this little step as a much more useful step than the integration of LMS inside virtual reality worlds like SecondLife (which still seems sooo impractical to me for beginner-level digital learners). The Dokeos API Key mentionned above is an hexadecimal characters hash available in the main/inc/conf/configuration.php file as $_configuration['security_key'] inside any installation of Dokeos. This uniquely represents the campus. Although the security check on this key right now is *very* weak, this is one of the first fixes I will apply to the module.

Comments

We're not talking about the same kind of integration here. Simply giving to your Dokeos portal from your Joomla portal is done through a simple bit of HTML. On the Dokeos side, we're talking about much wider integration here, where a user can check out his calendar events from Dokeos while only connected to his main portal (not Dokeos), without providing direct database access to the database (which would be a security flaw), and giving the possibility to do that from whichever portal we want (not just Drupal, but also from Joomla or other systems, using web services).

This could give us the possibility, also, to complete a personal CV directly from the list of courses a user has completed in a given portal. In other words, complete flexibility and re-usability at a minimum cost.

Congrats for your commits and improvements on this very "Hello Dokeos, Hi Drupal" module!. It looks like you had fun with the issue queue and the CVS quickstart guide. And I'm happy because we have another Drupal contrib commiter in Drupal Perú.

Blessings!

Hello Yannick. Nice integration there.

I have taken dokeos 6.x-1.x-dev and then I modified it to get compatibility with Drupal 5 (5.10-1ubuntu1). I have installed Dokeos 1.8.5 and would like to test both services (courses_list/service_rest.php and user_agenda/service.php). How could I get them? and How could I config them?

Best Regards.

In reply to by YW

Permalink

Hi Franco,

There is a way (by downloading the "webservices" folder from the latest development SVN version) but you will need to update main/calendar/agenda.inc.php as well, and that might break some other things that you have in your 1.8.5, so I would honestly not recommend it.
You can wait for version 1.8.6 though. If I finish all other urgent things in time this week-end, I will package 1.8.6 beta Sunday night (otherwise it's going to have to wait until Monday), and then there should be a *maximum* of one month trial period before the stable.

Please send us your Drupal 5 version of the plugin, so we can add it to the project (and everyone can benefit). I have seen good code being lost too many times just for not doing the extra step of publishing it. Do you have my e-mail address?

Hi all,

I used Dokeos Version: 1.8.6 and Drupal: 6.9. I want to configure dokeos with drupal. I configured the dokeos in drupal in conf. using url & api key. After the conf. where i can see the course list. I dont what i can do after the conf. .Pls any one give the steps what i can do after the configuration in drupal.

We have no plans for that, nope, but once the services are fully tested on the Dokeos side, developing the same kind of things for Joomla should be almost trivial.

I'm also very interested in this portion of the project...is there anything that I can do to help? Write a webservice or two? Or would time be better spent working on blocks for the Drupal module? I'm new to Dokeos so it might take me a while to get up to speed with how the system is structured...but willing to learn.

In reply to by YW

Permalink

Hi Remi,

A first nice thing would be to provide suggestions on what other services to implement.
This week-end, we were working on the module and we realized that it was pretty disorganized. Next time we plan to work on that is on the 16th of May (we're all very busy), and I think the module is broken for now. The most up-to-date version is the Drupal 5 version, and it only goes together with the latest SVN version of Dokeos 1.8.6. This will all come together a bit better with the very close release of Dokeos 1.8.6 (we'll then have mostly the Drupal side being updated).

All in all, it would be good to work on the presentation of data from the Drupal blocks side (because currently agenda events are just displayed bluntly, where they could be added to a calendar-type plugin or something). Courses list needs a little bit of styling as well.

The latest state we left it in (for Drupal 5 version, which is the most up to date) uses Dokeos usernames and API keys for anything (you need a Dokeos admin account to configure the side-wide courses list in Drupal, others need the user to add his own Dokeos details in to show his personal list of events or courses).

This is not working for me on Drupal6 and Dokeos 1.8.6 or Dokeos SVN Trunk of June 30, 2009. I am hoping to see some better fail-safe intructions on howto install successfully.

(Actually it doesn't even work on Drupal5 at the moment for me.)

Are there any specific module dependencies on the Drupal Module side? SSO modules, SOAP / REST etc?
Does Drupal login have to be of an LDAP or Open ID flavour?

Are there any specific dependencies on the Dokeos side? LDAP ?

Are there any XAMPP dependencies / PHP dependencies?
I hope to have this intially working and checked out with HTTP protocol (not HTTPS). Is this possible?

Does this integration only work from a clean Drupal registration? - with no prior knowledge of the user on the Dokeos side?

I have followed the available instructions, but to no avail. A serious symptom is that I cannot access the front page of Dokeos after enabling SSO in the administration panel of Dokeos. Constant redirections happen. I then have to go to the Mysql DB directly and put SSO to 'false' before I can access Dokeos again.

Basically it looks like user information is not getting to Dokeos, eg api-key etc. SOAP can and has worked in general, especially for My Dokeos etc. , but it is fragile and only after some indiscrimate hacking. I guess it can work and is close, but it seems like unless you install flawlessly, you can't even manipulate Blocks in Drupal, because information may not be exchanged between platforms and the blocks are invisible!

Some help would be very much appreciated for myself and other simple minded users, because the Dokeos product looks great and will be a gangbuster combination with Drupal.

I have retrieved the security key from Dokeos configuration.php for the common admin type of access.

But how do you dream up and set the individual user API-key?

Also a Drupal user following registration has to know to then go to 'My Account' on Drupal to check the box for Dokeos synchronization?

I would be quite happy to write more complete instructions, if I only understood it better and could get it to work.

Thanks,

Malcolm McDonald
malcolm.mcdonald@defence.gov.au

In reply to by YW

Permalink

Hi Malcolm,

All these comments would probably fit better in the Drupal-Dokeos module development page as they are more related to the module than to Dokeos or Drupal on their own. The page to go to is: http://drupal.org/project/Dokeos

Now, let's go into the details...
When you want to combine Dokeos with Drupal for SSO stuff, you have to have a clean Dokeos to start with (or start messing up with the user IDs, which can be very exhausting). The Drupal site acts like a master (in a master-slave relation) and Dokeos acts like a slave. This means that, from the moment you configure Dokeos with the additional settings_current parameters, Dokeos will not accept any direct login anymore. This is a limitation that we have not scheduled to remove just yet.

HTTPS should not be necessary (as you will see in the Dokeos settings, you can choose the protocol) but, of course, it is highly recommended as sensible information will pass from Drupal to Dokeos and the other way around.

The steps, in order, are to:

install Drupal
install Dokeos
install the Drupal-Dokeos module inside Drupal
enable the module in Drupal
you may fix a little bug in the Dokeos 1.8.6 code in main/inc/local.inc.php by replacing api_get_setting('sso_authentication') == true by api_get_setting('sso_authentication') == 'true'. This will enable you to change the admin settings a little
go to the admin settings of your Dokeos install, platform configuration settings, security and configure the URL of your Drupal site
this should already start to work... if you have a problem during this process, please let me know precisely what you get (blank screen, redirection, error, etc) and try to see if something comes out in your Apache's error_log file

Let us know...

Hi,
I'm testing the Dokeos functionnalities and I have faced some problems with getting it work under Drupal (drupal 6).
I have activated all Dokeos blocks and I have created content in my Dokeos LMS (dokeos-1.8.6.1) . The problem is when I looked into my Dokeos block, there is no displayed content into it. Is there any specific configuration that I should do to transfer content correctly?
Thank you for your help in advance.

In reply to by YW

Permalink

Hi Saber,

In any case please use Dokeos 1.8.6.1 as it has a few tweaks to making the integration a bit better. Then you have, effectively, to configure a few things.

First, you have to enable "API Keys" in the Dokeos configuration (users parameters)
Second, you have to go to your admin account inside Dokeos, and generate a new API key (then save it in your profile and copy it to the dokeos plugin configuration in Drupal)

Basically, and if you have configured the rest correctly, it should work.
Now if you want it to work at user level (show a user's courses agenda for example), you have to do that process again, but from each user's account (each user has to go to his Dokeos account, generate an API key, and put it in his Drupal account). This being said, in the latest Dokeos version + Drupal plugin version, when you go to your Drupal's account, inside the Dokeos account configuration settings, you have a direct link to your profile where you can generate the key.

Let me know how it works out for you!

In reply to by YW

Permalink

Hi Ywarnier,

First I would thank you for answering me so fast.I still have problems with getting Dokeos works into Drupal. I have followed the steps listed below:
- Installing Drupal
- Installing Dokeos
- Installing and enabling the Dokeos module inside Drupal
- Generating the Keys through API'keys, and went into Drupal in Administer > Site Setting > Dokes and paste the key into the Secur key fild and save configuration.
- Checking in the Dokeos LMS that all configuration related to the API keys and the SSO are well configured

I have noticed that in the configuration.php there is an option where to put into it the secure key:
$_configuration['security_key'] = 'cc48445ac6d852344bfc789a241afbd4';

Shall i keep this option enabled? Could this prevent Dokeos from working?

In reply to by YW

Permalink

Thank you very much ywarnier !
We worked together with Saber and it works !
It's good to get so fast feed back...

Noémie.

In reply to by YW

Permalink

No problem. In order to help others better in the future (and possibly improve our installation doc), what was the problem?

Hello,
we have tried the module by download it on drupal.org web site and there were no user documentation on the project's page.
We are happy to find you on this blog !
So you explain the three needed things :
- enable “API Keys” in the Dokeos
- generate a new API key inside Dokeos
- copy it to the dokeos plugin configuration in Drupal
Saber missed the last point : his block not appear on his drupal local web site but your instructions were good.
Thank you,

Noémie.

Please address further feedback to module's issue queue, so we can improve module and its documentation

hi,i had install the dokeos 1.8.6(update to 12.27),and select API keys on Administration > Configuration settings>Profile then go to profiles,I can find the name of API keys but it's blank in frame,then i click on the button,and it generates nothing,what's wrong can you tell me?
thank you very much.

In reply to by YW

Permalink

Hi ggchem,

A new bug was introduced apparently after 1.8.6.1. We will fix that before 1.8.6.2. Thank you for reporting