Dokeos 1.8.5, SCORM and the annoying SCORM package name…
I just finished debugging one client’s portal. For some reason, he couldn’t see his SCORM content although he could see them in other LMS (Moodle, Claroline, …).
After spending 2 minutes checking the files and directories names, I realised he had stuff like this:
as root SCORM path. When I see something like that, my eyes get dragged upon “%20”, “” and “/.”, so I tried updating the database path and the directory name to remove these elements (first all of them, then only one by one to check which was breaking it).
Well, the breaking one is “%20”, which surprised me at first but is only logical after a while… The idea is that the directory contains, on disk, a “%20”, but when loading the file through the web browser, “%20” is understood as the URL-escaping character for a white space. Thus, transforming the request into looking for a directory called “Act_Positive and negative”.
Of course, as the operating system doesn’t translate %20 into spaces, there is no match between the HTTP request (with translated white spaces) and the filename, so a browser is not able to show the SCORM content page we are asking for.
What I did to quick-fix it is to pass the $src variable in both newscorm/lp_view.php and newscorm/lp_content.php through:
$src = str_replace(‘%20′,’%2520’,$src);
“%25” is actually the escape character for “%”, so the web server doesn’t alter the name of the directory. I have yet to determine if this is all a good idea, but so far and on this particular campus, it looks good… (I guess problems will come when we have a first file with spaces inside).