|
|
(55 intermediate revisions by 6 users not shown) |
Line 1: |
Line 1: |
| [[reportbuilder|Back to Index]] | | #REDIRECT [[Report_builder_API]] |
| | |
| ==Overview==
| |
| | |
| The report builder API enables plugin contributors and moodle core developers to create new sources that can be used by site administrators and teachers to generate and customise reports.
| |
| | |
| ==How to create a source==
| |
| | |
| To create a source, create a file called rb_source_SOURCE_NAME.php in a subfolder of your plug-in, or the relevant core class. The class name must start with 'rb_source_', and the class name and filename must match. The class must be a child of rb_base_source.
| |
| | |
| The following is an example of a Report Builder source:
| |
| <pre>
| |
| <?php
| |
| | |
| class rb_source_example1 extends rb_base_source {
| |
| public $base, $joinlist, $columnoptions, $filteroptions;
| |
| | |
| function __construct() {
| |
| $this->base = '{course}';
| |
| $this->joinlist = array(
| |
| new rb_join(
| |
| 'course_category',
| |
| 'LEFT',
| |
| '{course_categories}',
| |
| 'course_category.id = base.category'
| |
| )
| |
| );
| |
| $this->columnoptions = array(
| |
| new rb_column_option(
| |
| 'course',
| |
| 'fullname',
| |
| 'Course Fullname',
| |
| 'base.fullname'
| |
| )
| |
| );
| |
| $this->filteroptions = array();
| |
| $this->sourcetitle = "Example1";
| |
| | |
| parent::__construct();
| |
| }
| |
| }
| |
| ?>
| |
| </pre>
| |
| | |
| A source consists of:
| |
| * A base table (Defines what table all reports from this source will be based off)
| |
| * A join list (Defines what tables should be joined to the base table)
| |
| * Column options (Defines which columns from each table should be available in the report)
| |
| * Filter options (Defines what fields can be used to filter the results in the report)
| |