Commit | Line | Data |
---|---|---|
357ec2d5 FM |
1 | <?php |
2 | // This file is part of Moodle - http://moodle.org/ | |
3 | // | |
4 | // Moodle is free software: you can redistribute it and/or modify | |
5 | // it under the terms of the GNU General Public License as published by | |
6 | // the Free Software Foundation, either version 3 of the License, or | |
7 | // (at your option) any later version. | |
8 | // | |
9 | // Moodle is distributed in the hope that it will be useful, | |
10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | // GNU General Public License for more details. | |
13 | // | |
14 | // You should have received a copy of the GNU General Public License | |
15 | // along with Moodle. If not, see <http://www.gnu.org/licenses/>. | |
16 | ||
17 | /** | |
18 | * Chart base. | |
19 | * | |
20 | * @package core | |
21 | * @copyright 2016 Frédéric Massart - FMCorz.net | |
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | |
23 | */ | |
24 | ||
25 | namespace core; | |
26 | defined('MOODLE_INTERNAL') || die(); | |
27 | ||
28 | use coding_exception; | |
29 | use JsonSerializable; | |
30 | use renderable; | |
31 | ||
32 | /** | |
33 | * Chart base class. | |
34 | * | |
35 | * @package core | |
36 | * @copyright 2016 Frédéric Massart - FMCorz.net | |
37 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | |
38 | */ | |
39 | class chart_base implements JsonSerializable, renderable { | |
40 | ||
41 | protected $series = []; | |
42 | protected $labels = []; | |
858cbfdf | 43 | protected $title = null; |
357ec2d5 FM |
44 | |
45 | public function __construct() { | |
46 | } | |
47 | ||
48 | public function add_series(chart_series $serie) { | |
49 | $this->series[] = $serie; | |
50 | } | |
51 | ||
52 | public function jsonSerialize() { | |
53 | return [ | |
54 | 'type' => $this->get_type(), | |
55 | 'series' => $this->series, | |
858cbfdf SL |
56 | 'labels' => $this->labels, |
57 | 'title' => $this->title | |
357ec2d5 FM |
58 | ]; |
59 | } | |
60 | ||
61 | public function get_labels() { | |
62 | return $this->labels; | |
63 | } | |
64 | ||
65 | public function get_series() { | |
66 | return $this->series; | |
67 | } | |
68 | ||
858cbfdf SL |
69 | public function get_title() { |
70 | return $this->title; | |
71 | } | |
72 | ||
357ec2d5 FM |
73 | public function get_type() { |
74 | $classname = get_class($this); | |
75 | return substr($classname, strpos($classname, '_') + 1); | |
76 | } | |
77 | ||
78 | public function set_labels(array $labels) { | |
79 | $this->labels = $labels; | |
80 | } | |
81 | ||
858cbfdf SL |
82 | public function set_title($title) { |
83 | $this->title = $title; | |
84 | } | |
357ec2d5 | 85 | } |