Make your users connected to all OER sites in Moodle

Read API

Use our easy to install Moodle plugin to enable the integration of different X5GON features within any Moodle LMS. Make easy and simple the control and the​ integration of X5GON 'User Activity Acquisition' library by managing the call and the activation of our services in the right Moodle courses pages. As a result, we will be notified about the exact accesses made on the OERs embedded in open courses.

The X5GON Token

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.

X5GON Connect API

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=""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=""integrity="sha384-ZfzlS43MMnlhhaZGNiNLYUcwbS+ndioybwxGNvzEFR7XcaLun22bDz+tCvCUWfq0"crossorigin="anonymous"></script>

Enabling X5GON Connect

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=""

<script src=""

  window.addEventListener("load", function(){
      "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": ""
      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') {
      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') {
      onRevokeChoice: function() {
        var type = this.options.type;
        if (type === 'opt-in') {
          // disable cookies - set what to do when
          // the user revokes cookie usage


For information about what user data is acquired and how the snippet works access the documentation available HERE.

X5GON Moodle API

It is easy to install X5GON Moodle plugin. Briefly, the plugin will be functional once the next steps have been followed:

  1. Import the plugin folder in localfolder of Moodle installation, if you have enough permissions for that.
    Alternatively you can install it from “Plugins / Install plugins”under your Siteadministrationpanel of your Moodle administration GUI as a local plugin.

Moodle will detect the new plugin (by verifying notifications section), then will ask you to install it.

  1. Proceed with the plugin installation.
  2. Enable Web serviceunder “Plugins / Web services”.
  3. Enable XML-RPC Protocolfrom Manage Protocolsunder “Plugins / Web services”.
  4. Create a user (system user, or a user with limited permissions) with at least the ability to use the XML-RPC Protocol.
  5. Create an external serviceunder “Plugins / Web services / External Services”associated to X5GON plugin newly installed, if it is not automatically created.
  6. Generate a Tokenassociated to the external service(newly created related to X5GON plugin) and the user(newly created). Here, you can precise a number of restrictions on how to use the webservice: IP, validity durations, users…

The generated token is meant to be used by the external parties when they make their xmlrpcrequests to Moodle.

  1. Communicate the generated Tokento X5GON server admin with a secure way.
  2. Configure Provider Tokenfield in plugin settings page.
  3. Configure OER categoriesfield in plugin settings page.
  4. Do the first save changes in plugin settings page to store plugin settings in Moodle DB for the first time.

Plugin settings page

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).

Technical specifications

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.

Learn more about other our products.


Show your content in a network of other sites


Understand the trends of your content usage


Search and find materials from all over the world


Platform and assistant for the visually impaired


Translate your content in every format


Provide data for all stakeholders via API


Complete software on GitHub

Moodle plugin

Accessing OER from MOODLE through AI tools