Scorm Module developed !!!

Scorm Module developed !!!

by Pham Minh Duc -
Number of replies: 27

Hi everyone.

After long time researching Scorm 2004 and moodle, i has developed scorm module (in 1.6B) in order to make comfortable with Scorm 2004.
(I has designed a database for my scorm module so you can see it in mysql.php).
My module support:
+ Suitable datamodel for Scorm 2004 (I has added some to your datamodel)
+ Put all information from Manifest (Control Mode, ADLNAV, Rollup Rule, Sequencing Rule, Limit Conditions...) into database.
+ Scorm Course display based on Control Mode (choice, choiceexit, flow,..), NAVADL (next, previous,..)
+ Rollup Action.
+ SequenceRules
+ Teacher can set score coefficient for each test in Scorm Course. So that the score sum is calculated.
+ Teacher can have some report, view score,...
+ Student can see their progress (in percent).
...

I am very glad to receive any evaluation and complain from moodle community.

Thanks for everyone.

(Contact me:

Skype ID: minhducit

YM: minhducit )

-------------------------------

Pham Minh Duc
Project Manager of VNIS (VIETNAM INTEGRATED SOLUTION COMPANY)
Head Office: No 16/37 Dich Vong Street, Cau Giay Dist. , Ha Noi.
Mobile: 0913016663

-------------------------------
Average of ratings: -
In reply to Pham Minh Duc

Re: Scorm Module developed !!!

by Neil Magill -
Pham Minh Duc,

I am just about to install your new SCORM module, by pasting it into the "mod" folder.

As a query, there is an SCORM folder already there, is it safe to rename your file to "SCORM2" for example and run both at the same time?

Thanks
Neil
In reply to Neil Magill

Re: Scorm Module developed !!!

by Pham Minh Duc -
It's not safe because some path in my module use name Scorm (ex: $CFG->wwwroot.'/mod/scorm/view.php)
If it is a problem, i suggest you change all:
/mod/scorm/ to /mod/scorm2


However, my module also use some database tables such as scorm, scorm_scoes,... So if you use 2 module, it may have some conflict.

I has test this module with some example courses from ADL (http://www.adlnet.gov/downloads/62.cfm).

(Contact me:

Skype ID: minhducit

YM: minhducit )

-------------------------------

Pham Minh Duc
Project Manager of VNIS (VIETNAM INTEGRATED SOLUTION COMPANY)
Head Office: No 16/37 Dich Vong Street, Cau Giay Dist. , Ha Noi.
Mobile: 0913016663

-------------------------------


In reply to Pham Minh Duc

Re: Scorm Module developed !!!

by Roberto Pinna -
Picture of Core developers Picture of Plugin developers
Hi,
there also other problems because many functions will defined twice with many errors.

I want to remeber to all that you must use this new featured module version with many care and only for test installation.
There are many many new things that we must check before take it to stable: table definition, at this time it works only if you upgrade from an already installed scorm module, backup & restore to be updated just for example.

After these alert, I want to thanks Pham for the great work. wide eyes

Cheers,
Bobo.
In reply to Roberto Pinna

Re: Scorm Module developed !!!

by Pham Minh Duc -

Thanks Roberto Pinna.

In fact, my module modified and upgraded from your scorm module (in 1.6 B). So i want to put it here to get evaluations and complains from all who can help me to test my module.

I will try to make it better. So can you give me more advices! I am very glad to discuss with you about scorm and Moodle. (i really have many things to ask you smile)

(Contact me:

Skype ID: minhducit

YM: minhducit )

-------------------------------

Pham Minh Duc
Project Manager of VNIS (VIETNAM INTEGRATED SOLUTION COMPANY)
Head Office: No 16/37 Dich Vong Street, Cau Giay Dist. , Ha Noi.
Mobile: 0913016663

-------------------------------

In reply to Pham Minh Duc

Re: Scorm Module developed !!!

by Julien Petiteau -

Hi,

I've tested your SCORM 1.3 mod for Moodle 1.6, it's good work !

I've noticed few problems like:
- In datamodel scorm, type for "cmi.objectives.n.completion_status", it's seems hat type is incorrect. You have put "CMISStatus", but it must be "CMICStatus".

- For type "CMITime" the pattern is "HH:MM:SS.MS", but the scorm type must be "YYYY[-MM[-DD[Thh[:mm[:ss[.s[TZD]]]]]]]".

- The last problem that i've found is that "cmi.location" may not work correctly.
I can use "SetValue" on it, but the "GetValue" method seems to return incorrect default value and not the last value.

I hope my message can help you, to correct you're scorm mod.
I thank you for doing this mod which has gave me lot of help to make my LMS work.

My english may not be perfect, i'm french.

In reply to Julien Petiteau

Re: Scorm Module developed !!!

by Pham Minh Duc -

Thank you for your testing. I'm try to correct these problems

Because I only test with Scorm Course form ADL (http://www.adlnet.gov/downloads/62.cfm ) , so that it may have somethings that i didn't check shy

Now, i'm developing a function that allows Teachers to edit and create new sequencing with a course, then export as a new course with new sequencing behaviors (--> a beginning for authoring tool smile).

I'm very glad to discuss about moodle and Scorm. So if you are interested in this problem, please contact me.

Skype: minhducit

---------------------------------------------------

Pham Minh Duc
Project Manager of VNIS (VIETNAM INTEGRATED SOLUTION COMPANY)
Head Office: No 16/37 Dich Vong Street, Cau Giay Dist. , Ha Noi.
Mobile: 0913016663

----------------------------------------------------

In reply to Pham Minh Duc

Re: Scorm Module developed !!!

by mark newbery -
Hi, where can i get the latest build of this module?
Regards
mark
In reply to mark newbery

Re: Scorm Module developed !!!

by Pham Minh Duc -

I had upload my latest build of my module:

http://www.esnips.com/doc/22e7a322-dadc-4245-943c-b5324614dd3a/MoodleScormModule.rar

In this module I has solved CONSTRAINED in sequencing. You can test by using Photoshop_Constrained_Choice Course from ADL.

http://www.esnips.com/doc/445d2215-e9fe-49b3-8d0b-25aa13dca082/mod.php

I has also recommended for changing mod.php in moodle\course, so that when a Course is not a Scorm Course, we won't upload it and show it.

http://www.esnips.com/doc/1ae590b4-0aca-4733-8b14-a518701b334a/scorm.php

I has create a lang for my Scorm module in en_utf8. You can also use it.

Thanks for any testing and comments.

Pham Minh Duc
Project Manager of VNIS (VIETNAM INTEGRATED SOLUTION COMPANY)
Head Office: No 16/37 Dich Vong Street, Cau Giay Dist. , Ha Noi.
Mobile: 0913016663
In reply to Roberto Pinna

Re: Scorm Module developed !!!

by Martin Dougiamas -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
Pham, thanks!!!

Robert, how soon can you integrate all this into CVS HEAD smile
In reply to Martin Dougiamas

Re: Scorm Module developed !!!

by Roberto Pinna -
Picture of Core developers Picture of Plugin developers
Done.
big grin

Cheers,
Bobo.
In reply to Roberto Pinna

Re: Scorm Module developed !!!

by Chardelle Busch -
Picture of Core developers
I could not get SCORM from 1.6 stable to work with an exe package, so I just tried the latest scorm from head. (by the way the lang file needs updating too)

Here's what happened:

exitisnotallowed shows up next to suspend (which has a link).  Why would it say exitisnotallowed?  If I click on suspend it says suspend failed. 

There is no time reported.  The first page shows nothing, the subsequent pages show [attempted] (00:00:00).
In reply to Pham Minh Duc

Re: Scorm Module developed !!!

by Ralf Hilgenstock -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Translators
Hi Pham Minh Duc,

I didn't test your module, but I have a question:

I would like to see an option to  store SCORM units in a central place and to use it in several courses. Lots of SCORM units are very large and often thye are used in several courses. It would be a great option to use central places as option for storing the unit onetime and to use is sevral times.

Is this possible with your tool or could it be hacked in this way?

Ralf
In reply to Ralf Hilgenstock

Re: Scorm Module developed !!!

by Martin Dougiamas -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
This is something I've just been looking at as part of the repository API work, as well as the Hive integration.

Basically all we need to do in the short term is allow the SCORM module to accept a URL as the package, then download it and continue with the zip as normal.

The URL can be manual in the short term, but in the longer term the repository API would supply that URL instead as a result of a search/browse operation.

Finally the SCORM module would have to have options for checking the "freshness" of the package URL and perhaps periodically or on-demand it would download the zip again to make sure that it's up-to-date.
In reply to Martin Dougiamas

Re: Scorm Module developed !!!

by Pham Minh Duc -

Thanks for Ralf Hilgenstock and Martin!

I has considered this problem. But in my module it hasn't solved this problem. I'll try to solve it soon.

(Now, I've just finish adding several small sequencing in a course and export as a zip file to use it again. smile).

Martin and Robert, I wonder if i can join scorm developer group. I've very glad to contribute for moodle community smile. Thanks all!!

Skype: minhducit

---------------------------------------------------

Pham Minh Duc
Project Manager of VNIS (VIETNAM INTEGRATED SOLUTION COMPANY)
Head Office: No 16/37 Dich Vong Street, Cau Giay Dist. , Ha Noi.
Mobile: 0913016663

----------------------------------------------------

In reply to Martin Dougiamas

Re: Scorm Module developed !!!

by Jamie Smith -

Regarding the above mention of a common URL, could the data be stored on the same level as the Moodledata directory for security reasons, or would it have to be stored below the domain level?

 

Thanks, Jamie

In reply to Martin Dougiamas

Re: Scorm Module developed !!!

by Martin Morrey -
I have a variant on this solution that I would like propose. At Intrallect we have anticipated this problem for a long time, and developed a solution in the form of our Learning Object Repository software, intraLibrary.

The idea is to:
  1. maintain the content at the repository, to give a single point of maintenance, as suggested above
  2. serve the content from the repository, to avoid the LMS having to repeatedly download copies of the content
  3. where the LMS needs to read information from the package manifest (and other referenced files) in order to play the content, such as in SCORM, the repository API will provide a link to the package manifest, with a base href of the root of the entire (unzipped) package
I have created a profile of the Search and Retrieve Web-Service (SRW and SRU) which includes support for this extra-link to the package manifest, and other useful information for the LMS. There is more information in Intrallect's Integration Guide for intraLibrary. This area is something that I would like to standardise, which is why I am co-chairing an IMS special interest group on Learning Object Discovery and Exchange (IMS LODE)
In reply to Ralf Hilgenstock

Re: Scorm Module developed !!!

by David Hicks -
If your SCORM modules are getting so big that you're running out of diskspace, a possible hack is to make one copy of an un-packaged SCORM module in a directory somewhere and make all other versions of those files hard links to that one central copy. Seemingly, hard links /are/ supported in Windows - they're called "file junctions" in Windows-speak and are an underused feature of NTFS (only found out about this the other day whilest looking for something else, sounds handy).

The above could be implemented by a server-based script, seperate from Moodle - something to check all Course file areas for SCORM module directories, any new SCORM modules could be copied to a central directory and hard links put in place, any duplicates could simply be replaced with hard links. This would make a good hack for those running low on disk space (i.e. if you've got a large SCORM module, perhapse with movie files in, that you want to use in several different Courses). "Duplicates" could (hopefully...) be identified by comparing file size, modified/created date and maybe checksum if you wanted to be really swish.

I'm not sure what would happen if you implemented the above, ran the script over your server, then someone on a course updated a SCORM module, uploading new files. I've actually got a hunch that it might work quite well - the new upload would (?) replace hard-linked files with new files, you would end up using a mixture of old-and-new files...

Possible idea: change the SCORM module a bit so that after it unpacks a Zip file into a directory it generates a signature for each file based on size, modified date and checksum. Then it checks each file against a central "asset" directory, hard-linking each duplicate it finds and adding any new files to that central directory. No need to worry about duplicate file names or new versions of files replacing old ones - simply give each new file a new name in that central directory and create hard-links to it. Have a periodic scan to see if there's any central files that aren't linked to from anywhere and delete them.

Hmm, would that work?
In reply to David Hicks

Re: Scorm Module developed !!!

by David Hicks -
So, after some more thoughts, here's the idea. After line 56 of the SCORM module's "validate.php" place code to implement the following psedo-code:

// For each file in newly un-zipped directory (and subdirectories):
//     Generate signature (modDay-modMonth-modYear-MD5).
//     Check /moodledata/scorm/ for file. If not exists, copy file there (with filename DD-MM-YYYY-MD5SIG).
//     Erase old file. {Platform independant} create new hard-link to central file.

This creates a central "repository" for SCORM files, updated every time someone uploads a SCORM archive. It would need periodic scanning to remove orphan files (via cron.php). It would probably also be a good idea to scan for existing duplicate SCORM files and link them to this central directory, either via cron.php or some run-once script.

This assumes that SCORM files are not edited "in place" by Moodle, that new/edited SCORM content always arrives via uploaded Zip file. Editing a SCORM file once uploaded to Moodle would result in all hard-linked files to that location being changed (probably confusing, although someone might find it useful).

You would still have to upload and add the SCORM file to each course. Just thought - you could also add some lines /before/ line 56 in validate.php to make the uploaded SCORM Zip archive also be linked to a central location.

This doesn't create a browsable, centralised reposatory of SCORM archives. All it does is reduce the amount of disk space used when (potentially large) files are uploaded to different courses multiple times. It doesn't help you upload, or even update, the same SCORM archive to multiple courses, either - uploading updated files (which will generate different signatures, of course) will simply create more entries in the central directory.

--
David Hicks
In reply to Ralf Hilgenstock

Re: Scorm Module developed !!!

by Vidura Dissanayake -

Hi Ralf,

I wanted to know if you were able to find solutions for "storing scorm units in a central place"?

I've been searching the forums to see if this is possible but have not found anything yet.

Vidura

In reply to Vidura Dissanayake

Re: Scorm Module developed !!!

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators

Hi Vidura,

the SCORM module allows you to give a URL for the location of the scorm zip - just create a folder on your server somewhere with all the scorm zips and point the module directly at the url of the zip.

(do a search for SCORM "cross-domain" - it will bring up a lot of posts about this.

Average of ratings: Useful (1)
In reply to Pham Minh Duc

Re: Scorm Module developed !!!

by Ludger Thomas -
Dear Pham Minh Duc,
thanks for providing this module. Currently I'm developing some SCORM 2004 content and I'm curious about how Moodle handles sequencing.
I tried your current version (from CVS) with the MSCE examples (API_LINEAR_WITH_CONTROLS) from ADL but it seems to have problems with adl.nav (wrong datamodel). Does this version of the SCORM mod allready support SCO-SCO navigation?

BTW: There is a typo in datamodels/scorm1_3.js.php, line 40, cmi-children:  comment_from_learner should be comments_from_learner (s was missing). I allready filed a bug report.

Kind regards.
Ludger
In reply to Ludger Thomas

Re: Scorm Module developed !!!

by Pham Minh Duc -

Hi Ludger Thomas.

In my module already support adl.nav. I also tried with Photoshop_Linear_with_controls from ADL.

Thank for your report!

-----------------------

Skype: minhducit

------------------------

In reply to Pham Minh Duc

Re: Scorm Module developed !!!

by Ludger Thomas -
Obviously my SCORM module - the latest version from CVS - has some problems with this type of content. I tried the photoshop example you mentioned but an "Store data after terminition"-error occured. 
Maybe I should try the original rar-file you attached to your original message.
Regards.
Ludger
In reply to Pham Minh Duc

Re: Scorm Module developed !!!

by Ludger Thomas -
Dear Pham,
I tried your module and finally found the "adl.nav.request" data in the provided API. But it seems that the scorm module doesn't support "adl.nav.request_valid", right? I guess the "normal" scorm mod doesn't support it either (never got it working)?
Kind Regards.
Ludger
In reply to Ludger Thomas

Re: Scorm Module developed !!!

by Pham Minh Duc -

Dear Ludger.

Yes. My scorm module doesn't support adl.nav.request_valid smile.I think you could change API for this support. (Now I'm paying1 more attention in an Scorm Authoring Tool).

Best regards.

Pham Minh Duc