Each provider in the OER network receives its own X5GON Token. This token is used to distinguish the location of the materials a particular user has accessed. The token is provided after a provider has successfully registered to the OER Network.
The X5GON Connect library contains functions for providing information about the user activity. What kind of user information the functions provide is listed in the privacy policy, section "About the Data We Collect".
Include the X5GON Connect Library in the <head>
of the website containing the OER material.
Latest Library
<script type="text/javascript" src="https://platform.x5gon.org/api/v1/snippet/latest/x5gon-log.min.js"integrity="sha384-ZfzlS43MMnlhhaZGNiNLYUcwbS+ndioybwxGNvzEFR7XcaLun22bDz+tCvCUWfq0"crossorigin="anonymous"></script>
Latest Library with Added Security Measurements
The added security measurements is called Subresource Integrity, which is a security feature that enables browsers to verify that resources they fetch are delivered without unexpected manipulations.
NOTE: Since this security measurement is dependent on the script you are fetching, the source url needs to state which version of the library you wish to retrieve.
<script type="text/javascript" src="https://platform.x5gon.org/api/v1/snippet/v2/x5gon-log.min.js"integrity="sha384-ZfzlS43MMnlhhaZGNiNLYUcwbS+ndioybwxGNvzEFR7XcaLun22bDz+tCvCUWfq0"crossorigin="anonymous"></script>
To enable the X5GON Connect functionality, the OER repository maintainer needs to set up when to send the user activity information. The function that needs to be activated is:
x5gonActivityTracker('token', testingEnvironment);
where the 'token'
is the X5GON token of the provider and testingEnvironment
is a boolean value indicating if the function is used for testing. Once in production, this variable can be omited.
Include the Functionality into your Cookie Policy Manager
The best way is to include this function into your cookie policy manager. If you don't have a cookie policy manager, we provide one of the solutions by using the Cookie Consent API. This solution allows the user to decide if they wish to provide their activity data and act appropriately.
Included the provided lines of code in the <head>
of the website containing the OER material. In addition, the condition
in the onInitialise
and onStatusChange
should be a boolean value (i.e. true
or false
) indicating that the page contains OER material. NOTE: we recommend you to save the cookieconsent.min.css
and cookieconsent.min.js
source files on your server and import it into your repository.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" integrity="sha384-AJ82o1PQz2xMlVWjJ+IdPSfyCVS/nJeYbLcpPhm/cEPrewaEdaYkaG6LCsquvogf" crossorigin="anonymous"> <script src="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js" integrity="sha384-l+e8/kt7mRYg7RUc/i3MsNwDJlWxkWkFDX10LF/iNglZLT96GBMAPrbaH2GP2lQy" crossorigin="anonymous"></script> <script> window.addEventListener("load", function(){ window.cookieconsent.initialise({ "palette": { "popup": { "background": "#1d8a8a" }, "button": { "background": "#62ffaa" } }, "type": "opt-in", "content": { "message": `This website uses cookies for functional and analytical purposes. In addition, we use cookies to deliver personalized, responsive services and to improve the site. This is done in collaboration with the X5GON project.`, "dismiss": "Decline", "allow": "Allow cookies", "link": "Learn more", // link to the X5GON platform privacy policy - describing what are we collecting // through the platform "href": "https://platform.x5gon.org/privacy" }, onInitialise: function (status) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-in' && didConsent) { // enable cookies - send user data to the platform // only if the user enabled cookies if (typeof x5gonActivityTracker !== 'undefined') { x5gonActivityTracker('token'); } } }, onStatusChange: function(status, chosenBefore) { var type = this.options.type; var didConsent = this.hasConsented(); if (type === 'opt-in' && didConsent) { // enable cookies - send user data to the platform // only if the user enabled cookies if (typeof x5gonActivityTracker !== 'undefined') { x5gonActivityTracker('token'); } } }, onRevokeChoice: function() { var type = this.options.type; if (type === 'opt-in') { // disable cookies - set what to do when // the user revokes cookie usage } } }) }); </script>
For information about what user data is acquired and how the snippet works access the documentation available HERE.
It is easy to install X5GON Moodle plugin. Briefly, the plugin will be functional once the next steps have been followed:
Moodle will detect the new plugin (by verifying notifications section), then will ask you to install it.
The generated token is meant to be used by the external parties when they make their xmlrpcrequests to Moodle.
This section explains the main functionalities of the plugin settings page and the different settings that admin can control in order to better characterize OERs within his LMS.
Fig. 5: X5GON plugin settings page
Enabled: Activate/Deactivate the plugin.
Provider Token: Generated token from the registration of OER repository in X5GON on application-form site.
OER Categories: List of categories IDs(separated with commas) that meant to be containing OERs.
Allow “hidden courses”: Consider hidden course salso as OER courses.
Allow “enrolment types with passwords”: Consider courses with enrolment typesusing a passwordas OER courses.
Allowed enrolment types: List of allowed enrolment types(separated with commas) for which the courses are considered as OER courses.
Allowed module types: List of allowed Moodle module typeswhich are treated by the plugin.
Allow “hidden modules”: Consider hidden modulesalso as OER modules.
Ignore availability restrictions: Consider moduleswith availabilityrestrictions also as OER modules.
Allowed licenses: List of licenses(licenses short namesseparated by commas).
This plugin version has been developed and tested on Moodle version 3.4 & 3.6 which is based on PHP 7. So, it is optimized for those versions and it is theoretically compatible with the newer versions which are also based on PHP 7.
Depending on Moodle version, the plugin will add automatically X5GON project privacy policy. As result, all users will be asked to give their consents. If the user doesn’t give his consent, there will be no activities tracing sent to X5GON.