Status: Development in progress
3.9, 3.11.9, 4.1
MOODLE_311_STABLE, MOODLE_39_STABLE, MOODLE_401_STABLE
Maintenance&Planning Sprint 2
Add an option to save the current H5P content state (to recover it later) for the H5P activities.
This implementation requires:
- Add support to xAPI State in core_xapi, in order to save the content state.
- Implement/override the required classes/functions to use xAPI state get/post/delete inside mod_h5p.
- Add support for state saving and restoration from the H5P player.
- Behat tests for saving and restoring states inside an H5P activity
Things to consider:
- Reset the state when the H5P activity content is changed
- Implement methods from the framework related to the save content feature. That is:
- resetContentUserData (called from saveContent)
- deleteContentData (called from deletePackage)
- Setting to let admins define the frequency to save the user content (saveFreq). The saveFreq H5P setting is also used to trigger the methods required to save the content state.
- A mechanism to clean old entries in the xapi_states table (based on an admin setting to let them define how long should these entries be stored).
- General information about xAPI state: https://learningpool.com/xapi-state-api/ and https://xapi.com/blog/deep-dive-state-activity/
- xAPI specification: https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Communication.md#23-state-resource
- Query example xAPI state: https://www.xapijs.dev/xapi-wrapper-library/state-resource
- Information about statements: https://xapi.com/statements-101/
- H5P doesn't support State API: https://h5p.org/node/468797