There are a range of ways to manage SCORM package files in Moodle
Uploaded package.
This method is the only option shown by default in a new Moodle installation. The teacher uses the Moodle file picker to select or upload a new SCORM package.
The site administrator is able to set up a range of different repository types that could contain SCORM zip packages.
External Package type
External package type is disabled by default on new installations – it is not a great method of linking to packages as under certain circumstances your packages will not pass back any grade or tracking information to Moodle.
If enabled and selected it provides a text field to paste a URL to a remote imsmanifest.xml (in an unzipped remote SCORM package) – this allows SCORM content to be hosted outside your Moodle site and the content is played from the external location and is not unpacked/copied into Moodle storage. This also means that if you update the SCORM package then the latest content will always be loaded (unless you update your core imsmanifest.xml file as this file is copied into Moodle) – be very careful updating your imsmanifest.xml file; if your SCO identifiers change then tracking information for any removed SCO identifiers for any previous user attempts will be cleared from the Moodle database.
For the external package type to work – your SCORM content MUST be located under the same url as your Moodle site – If the base url is different from your Moodle url then built in web browser security will block cross-domain communication and no grades/tracking information will be passed back to Moodle. Adobe Flash and modern browsers (ever since IE 6) prevent cross-domain communication. If you really need your packages to sit outside Moodle on a different URL you should look at other options for hosting your content.
To enable the External package type go to:
Admin > Plugins > Activity modules > SCORM package
tick the box for “Enable external package type”
Downloaded package type
Downloaded package type is disabled by default on new installations. It allows your SCORM zip package to be hosted on an external location.
If enabled and selected it provides a text field to paste a URL to a remotely hosted SCORM zip package. Moodle will download the package and unzip into the Moodle file system. Moodle will only check for a new SCORM package each time the settings page is opened and re-saved unless you configure the option “Auto-update frequency” – this is an advanced setting by default so make sure you hit the “show advanced options” button on the SCORM settings page – this option will also only appear if you have either the downloaded/external package types enabled and selected.
The Downloaded package type doesn’t have the same issues around cross-domain communication as the external package type as the SCORM package is downloaded and stored inside the Moodle file system. The main disadvantage of this type is that your SCORM package must be on a url accessible by your Moodle server which usually means that it will be available publicly for anyone to download (unless you configure some form of firewall on your external SCORM content server to prevent this sort of access and only allow the Moodle server to download the file over http/https)
To enable the downloaded package type go to:
Admin > Plugins > Activity modules > SCORM package
tick the box for “Enable downloaded package type”
IMS package type
IMS package type is disabled by default on new installations. The IMS package type is only included for backwards compatibility with old content still in your site – Moodle 1.6 -1.9 had a badly implemented/not well supported/undocumented/buggy feature called the “imsrepository” – this allowed you to store your SCORM packages in unzipped form in a folder within your moodledata and select/link to these packages. This feature is not supported in Moodle 2 but if you have legacy data in your installation that has not been moved, enabling the IMS package type will allow this old content to play/function correctly until you migrate to one of the other package types. I’m not aware if this actually works – I’d be keen to hear from anyone still using imsrepository content to know if it works or not. At some point this option will be removed from Moodle core – maybe 2.5?
Direct AICC url
Direct AICC url type is disabled by default on new installations.
The Moodle SCORM module also supports AICC content – AICC can use a different way to communicate with an LMS without using JavaScript which allows the content to be stored externally without running into cross-domain communication issues. We call this method “external AICC HACP” – this content communicates directly with your Moodle server rather than via the learners browser session. To use this form of communication, you must enable the setting “Enable external AICC HACP” in admin > plugins > activity modules > SCORM
Usually when connecting to an external AICC HACP package you are provided with a small AICC zip package which contains a file with a link to the external AICC content – to make it easier for AICC authors we have included an option that allows you to paste a url to the external AICC content instead of having to create a zip package with the file to link to the content.
It’s best to leave the Direct Aicc url type disabled unless you have an AICC content provider that provides urls to their external AICC content instead of AICC package files. It is a good idea to enable external AICC HACP
Future Improvements.
Moodle 2.3 has an “alias” feature that means when an uploaded file is re-used elsewhere on Moodle, the teacher has the option to create a shortcut or alias.
If an alias is created, then when the original file is updated, it will change in all instances of the alias. More info: http://docs.moodle.org/23/en/Working_with_files#Creating_an_alias.2Fshortcut
Implementing this for SCORM is possible but will need to be managed carefully – more information on this is available in MDL-28579
*UPDATE 24 Sept 2013* – Moodle 2.6 now implements some more options – see here for more details:
http://danmarsden.com/blog/2013/09/24/managing-scorm-content-in-moodle-2-6/