Difference between revisions of "report/analytics/api"

Jump to: navigation, search
(The indicator class: Add file list for indicators)
(Function listing for indicators)
Line 18: Line 18:
  
 
===Functions===
 
===Functions===
 +
 +
The indicator base class defines the following functions:
 +
<code php>
 +
public function get_risk($userid, $courseid, $startdate = null, $enddate = null);
 +
public function get_course_risks($startdate = null, $enddate = null);
 +
private function get_risk_for_users($userids, $startdate, $enddate);
 +
final private function get_cache();
 +
final private function set_cache();
 +
abstract protected function get_rawdata($startdate, $enddate);
 +
abstract protected function calculate_risks(array $userids);
 +
public function get_name();
 +
protected function load_config();
 +
public function save_config();
 +
</code>
 +
 +
For the development of any new indicator, the functions you '''must''' implement are the abstracted ones:
 +
<code php>
 +
abstract protected function get_rawdata($startdate, $enddate);
 +
abstract protected function calculate_risks(array $userids);
 +
</code>
 +
 +
If you have any settings (and most indicators probably will), you'll probably need:
 +
<code php>
 +
protected function load_config();
 +
</code>
 +
Which can be used to setup any default values you need for when a user hasn't input any on their own.
  
 
===Examples===
 
===Examples===

Revision as of 01:13, 13 August 2012

Moodle 2.2 This page describes the API used by the Engagement Analytics indicators and reporting mechanisms.

Main info

IMPORTANT This page is a WIP and does not reflect the final state of the engagement analytics API!

Indicator

File Layout

Indicators live in a folder in mod/analytics/indicator. The layout inside this folder follows the typical layout for a Moodle plugin. For example, inside the mod/analytics/indicator/myind folder we would have:

indicator.class.php 
Defines the indicator_myind class, which should extend the indicator base class.
renderer.php 
This contains the definition of the analyticsindicator_myind_renderer class, which should extend the analyticsindicator_renderer base class.
thresholds_form.php 
Defines the analyticsindicator_myind_thresholds_form which contains a function definition_inner for including on the report settings page.
lang/en/analyticsindicator_myind.php 
English language strings for this indicator. You can, of course, include other languages too. The language file must define at least the string giving the indicator a name, for example $string['pluginname'] = 'My Indicator';
db/install.xml, db/upgrade.php 
For creating any database tables required, as normal. See #Database_tables below.
db/access.php 
Defines any capabilities required by this question type. This is very rarely needed.

Functions

The indicator base class defines the following functions:

public function get_risk($userid, $courseid, $startdate = null, $enddate = null);
public function get_course_risks($startdate = null, $enddate = null);
private function get_risk_for_users($userids, $startdate, $enddate);
final private function get_cache();
final private function set_cache();
abstract protected function get_rawdata($startdate, $enddate);
abstract protected function calculate_risks(array $userids);
public function get_name();
protected function load_config();
public function save_config();

For the development of any new indicator, the functions you must implement are the abstracted ones:

abstract protected function get_rawdata($startdate, $enddate);
abstract protected function calculate_risks(array $userids);

If you have any settings (and most indicators probably will), you'll probably need:

protected function load_config();

Which can be used to setup any default values you need for when a user hasn't input any on their own.

Examples

indicator_random

Return a random risk score for each user.

defined('MOODLE_INTERNAL') || die();
require_once(dirname(__FILE__).'/../indicator.class.php');
 
class indicator_random extends indicator {
    protected function get_risk_for_users($userids, $courseid, $startdate, $enddate) {
        // TODO: Fill this in.
    }
 
    public function get_defaults() {
        // TODO: Fill this in.
    }
 
    // TODO: Complete class definition.
}

Helper Functions

See also