. /** * Chart base. * * @package core * @copyright 2016 Frédéric Massart - FMCorz.net * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core; defined('MOODLE_INTERNAL') || die(); use coding_exception; use JsonSerializable; use renderable; /** * Chart base class. * * @package core * @copyright 2016 Frédéric Massart - FMCorz.net * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class chart_base implements JsonSerializable, renderable { protected $series = []; protected $labels = []; public function __construct() { } public function add_series(chart_series $serie) { $this->series[] = $serie; } public function jsonSerialize() { return [ 'type' => $this->get_type(), 'series' => $this->series, 'labels' => $this->labels ]; } public function get_labels() { return $this->labels; } public function get_series() { return $this->series; } public function get_type() { $classname = get_class($this); return substr($classname, strpos($classname, '_') + 1); } public function set_labels(array $labels) { $this->labels = $labels; } }