Databases - C0D3D3V/Moodle-DL GitHub Wiki

To download databases the following functions are of interest:

Area Name Introduced in Description
mod_data mod_data_get_databases_by_courses 2.9 (2015051100) Returns a list of database instances in a provided set of courses, if no courses are provided then all the database instances the user has access to will be returned.
mod_data mod_data_get_entries 3.3 (2017051500) Return the complete list of entries of the given database.
mod_data mod_data_get_fields 3.3 (2017051500) Return the list of configured fields for the given database.
mod_data mod_data_get_data_access_information 3.3 (2017051500) Return access information for a given database.

mod_data_get_databases_by_courses

Parameter
Funktion
Returns
Result Structure

The function returns all databases that a user is allowed to see. If the parameter courseids is specified, then filtering is done using the course id's. The result is an array called databases, which looks like this:

"databases":[      
    {         
        "id":25,
        "course":66,
        "name":"Learner database",
        "intro":"<p>Give us a few details about yourself so we can build a bank of course participants and get to know each other!</p>",
        "introformat":1,
        "comments":false,
        "timeavailablefrom":0,
        "timeavailableto":0,
        "timeviewfrom":0,
        "timeviewto":0,
        "requiredentries":0,
        "requiredentriestoview":0,
        "maxentries":0,
        "rssarticles":0,
        "singletemplate":"<some HTML>",
        "listtemplate":"<some HTML>",
        "listtemplateheader":"<table align=\"center\"  class=\"recipelist\">",
        "listtemplatefooter":"</table>",
        "addtemplate":"<some HTML>",
        "rsstemplate":"<p>[[Your nickname]] - [[Main role]]</p>",
        "rsstitletemplate":"",
        "csstemplate":"<some CSS>",
        "jstemplate":"",
        "asearchtemplate":"<p>Type: [[Type]]</p>",
        "approval":false,
        "manageapproved":true,
        "defaultsort":0,
        "defaultsortdir":1,
        "coursemodule":802,
        "introfiles":[ ]
    },
 ....]

Important is the coursemodule which corresponds to the module_id of a module. The id corresponds to the instance id of a module. introfiles can contain some intro files. name is identical to the name of the module, only the intro text is new.

In reality we do not need this request at all to download individual databases.

mod_data_get_entries

Parameters
Function
Returns
Returns Structure and the Contents (the file structure as usual)

This function returns all entries of a database. As parameter the databaseid is needed, which is the instance id. returncontents must be set to 1 so that the content is also returned.

The return can look as follows:

"entries": [
    {
        "id": 95,
        "userid": 56,
        "groupid": 0,
        "dataid": 7,
        "timecreated": 1338674986,
        "timemodified": 1338674986,
        "approved": true,
        "canmanageentry": true,
        "fullname": "Barbara Gardner",
        "contents": [
            {
                "id": 739,
                "fieldid": 39,
                "recordid": 95,
                "content": "256px-Single_White_Lily.jpg",
                "content1": "White lily",
                "content2": null,
                "content3": null,
                "content4": null,
                "files": [
                    {
                        "filename": "256px-Single_White_Lily.jpg",
                        "filepath": "/",
                        "filesize": 9429,
                        "fileurl": "https://school.moodledemo.net/webservice/pluginfile.php/676/mod_data/content/739/256px-Single_White_Lily.jpg",
                        "timemodified": 1338674969,
                        "mimetype": "image/jpeg",
                        "isexternalfile": false
                    },
                    {
                        "filename": "thumb_256px-Single_White_Lily.jpg",
                        "filepath": "/",
                        "filesize": 4268,
                        "fileurl": "https://school.moodledemo.net/webservice/pluginfile.php/676/mod_data/content/739/thumb_256px-Single_White_Lily.jpg",
                        "timemodified": 1338674986,
                        "mimetype": "image/jpeg",
                        "isexternalfile": false
                    }
                ]
            },
            {
                "id": 740,
                "fieldid": 40,
                "recordid": 95,
                "content": "I think it's beautiful and it only has one petal :)",
                "content1": null,
                "content2": null,
                "content3": null,
                "content4": null,
                "files": []
            }
        ],
        "tags": []
    }, ...
]

mod_data_get_fields

Parameters
Function
Returns
Returns Structure

If you want to know what content to content4 means, you have to call this function once for each database.

mod_data_get_data_access_information

Parameters
Function
Returns

If timeavailable returns False, the database is no longer accessible.

⚠️ **GitHub.com Fallback** ⚠️