Moodle

Allow SCORM module to handle external scorm packages

Details

  • Type: New Feature New Feature
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: 1.7
  • Fix Version/s: 1.8
  • Component/s: SCORM
  • Labels:
    None
  • Affected Branches:
    MOODLE_17_STABLE
  • Fixed Branches:
    MOODLE_18_STABLE

Description

This feature will allow Moodle to handle scorm.zip files in any external repository pretty easily.

STAGE 1

1) Allow the filename field for SCORM to accept http:// addresses.
2) When the file is external (http) then download that file locally
3) Unpack it as usual and process/use the manifest as usual
(this may link to local files in the zip or external files in the repo etc)

STAGE 2

1) Add a menu to the definition page with options:

Update this package every time it's used
Update this package every day
Update this package whenever it changes (relies on http headers)

2) When being used, logic should check file stamps and/or http headers to
determine whether the download/unpacking step should be repeated.

Activity

Hide
Martin Dougiamas added a comment -

Can we please put some priority on this?

Show
Martin Dougiamas added a comment - Can we please put some priority on this?
Hide
Graham Walker added a comment -

Ideally it would be most effective if the SCORM and IMS packages did not have to be unzipped and loaded into Moodle at all.

What we would like is the ability to point to a manifest via a URL (eg. http://host.domain/imsmanifest.xml) and have the package played using that manifest. This would mean that all the resources for the package would be resolved via the manifest and played in the Moodle player as though they were loaded locally.

Cheers,
Graham

Show
Graham Walker added a comment - Ideally it would be most effective if the SCORM and IMS packages did not have to be unzipped and loaded into Moodle at all. What we would like is the ability to point to a manifest via a URL (eg. http://host.domain/imsmanifest.xml) and have the package played using that manifest. This would mean that all the resources for the package would be resolved via the manifest and played in the Moodle player as though they were loaded locally. Cheers, Graham
Hide
Martin Dougiamas added a comment -

Right. If the file is a plain manifest then there's no need to unzip (but it still has to be downloaded so Moodle can process it).

Show
Martin Dougiamas added a comment - Right. If the file is a plain manifest then there's no need to unzip (but it still has to be downloaded so Moodle can process it).
Hide
Martin Dougiamas added a comment -

Any progress at all on this Maximino?

Show
Martin Dougiamas added a comment - Any progress at all on this Maximino?
Hide
David Puente Bautista added a comment -

I don't know any LMS which process the imamanifest.xml outside the .zip package. I think it's out of the standard. The .zip is the "package" so it has to be an only one element. I'm not sure at 100% but it has logic.

Show
David Puente Bautista added a comment - I don't know any LMS which process the imamanifest.xml outside the .zip package. I think it's out of the standard. The .zip is the "package" so it has to be an only one element. I'm not sure at 100% but it has logic.
Hide
Maximino Pecero Sánchez added a comment -

We could say we have already done a 70% of the task.
Right now, the first task is already finished. So we can add a SCORM package entering its URL. We can also update the SCORM activity manually, even though the package is remote. In this case, we should check if the package has been changed and if it has, it should be dowloaded and unpacked again. It works for SCORM zip files, but not when the URL is a manifest (eg. http://host.domain/imsmanifest.xml), because that is what we understood from the wording of the task. However, after reading Martin's comment, we think it has to accept URL of remote manifests like the one of the example and not only SCORM files, right?

At the moment, we are working on the second subtask. The additional menu with the update remote packages options is already added and we have modified the scorm table to store this value. We are modifying the scorm_cron function to update every day the packages which are configured like that. These updates will be done at the time set in the SCORM module configuration. We are modifying the scorm_view_display function for the update of the modules when they are configured to be updated every time they are used. These last modifications are not uploaded to the CVS yet because we are debugging them.

Regarding the second subtask we have a doubt that Bobo suggested some days ago which is that we don't know very well what the option "update the package whenever it changes" means. Does the change occurs when the user edits the SCORM activity of Moodle or we have to configure the cron to check periodically if the remote SCORM packages have been changed?

Show
Maximino Pecero Sánchez added a comment - We could say we have already done a 70% of the task. Right now, the first task is already finished. So we can add a SCORM package entering its URL. We can also update the SCORM activity manually, even though the package is remote. In this case, we should check if the package has been changed and if it has, it should be dowloaded and unpacked again. It works for SCORM zip files, but not when the URL is a manifest (eg. http://host.domain/imsmanifest.xml), because that is what we understood from the wording of the task. However, after reading Martin's comment, we think it has to accept URL of remote manifests like the one of the example and not only SCORM files, right? At the moment, we are working on the second subtask. The additional menu with the update remote packages options is already added and we have modified the scorm table to store this value. We are modifying the scorm_cron function to update every day the packages which are configured like that. These updates will be done at the time set in the SCORM module configuration. We are modifying the scorm_view_display function for the update of the modules when they are configured to be updated every time they are used. These last modifications are not uploaded to the CVS yet because we are debugging them. Regarding the second subtask we have a doubt that Bobo suggested some days ago which is that we don't know very well what the option "update the package whenever it changes" means. Does the change occurs when the user edits the SCORM activity of Moodle or we have to configure the cron to check periodically if the remote SCORM packages have been changed?
Hide
Maximino Pecero Sánchez added a comment -

After the last update of the SCORM module in the CVS the options "Update this package every time it's used" and "Update this package every day" are working correctly for the remote packages. Only the last option, "Update this package whenever it changes", is left to finish the second subtask, but we have doubts about its meaning.

We are not sure about what is wanted to be done when the remote package is deleted. Now, when the option "Update this package every time it's used" is selected a message which says "notfound" is shown when we try to view the activity whereas if "Update this package every day" is selected, we can see the last version of the package before it was deleted.

Show
Maximino Pecero Sánchez added a comment - After the last update of the SCORM module in the CVS the options "Update this package every time it's used" and "Update this package every day" are working correctly for the remote packages. Only the last option, "Update this package whenever it changes", is left to finish the second subtask, but we have doubts about its meaning. We are not sure about what is wanted to be done when the remote package is deleted. Now, when the option "Update this package every time it's used" is selected a message which says "notfound" is shown when we try to view the activity whereas if "Update this package every day" is selected, we can see the last version of the package before it was deleted.
Hide
Maximino Pecero Sánchez added a comment -

This feature has been completed

Show
Maximino Pecero Sánchez added a comment - This feature has been completed

Dates

  • Created:
    Updated:
    Resolved: