Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

 /**
  * HTML rendering methods are defined here
  *
  * @category output
  * @package report_overviewstats
  * @copyright 2023 DualCube <admin@dualcube.com>
  * @copyright based on work by 2013 David Mudrak <david@moodle.com>
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */

 /**
  * Overview statistics renderer
  *
  * @category output
  * @package report_overviewstats
  * @copyright 2023 DualCube <admin@dualcube.com>
  * @copyright based on work by 2013 David Mudrak <david@moodle.com>
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
class report_overviewstats_renderer extends plugin_renderer_base {

    /**
     * Render the report charts
     *
     * @see report_overviewstats_chart::get_content() for the expected structure
     * @param array $charts list of {@link report_overviewstats_chart} instances
     * @return string
     */
    public function charts($course) {
        $chartsdata = [];
        if (is_null($course)) {
            $chartsdata[] = report_overviewstats_chart::report_overviewstats_chart_logins();
            $chartsdata[] = report_overviewstats_chart::report_overviewstats_chart_countries();
            $chartsdata[] = report_overviewstats_chart::report_overviewstats_chart_langs();
            $chartsdata[] = report_overviewstats_chart::report_overviewstats_chart_courses();
        } else {
            $chartsdata[] = report_overviewstats_chart::report_overviewstats_chart_enrolments($course);
        }

        $outlist = '';
        $outbody = '';

        $counter = 0;
        foreach ($chartsdata as $chart) {
            foreach ($chart as $title => $content) {
                $counter++;
                $outlist .= html_writer::tag('li', html_writer::link('#chart_seq_' . $counter, s($title)));
                $outbody .= html_writer::start_div('chart', ['id' => 'chart_seq_' . $counter]);
                $outbody .= $this->output->heading($title, 2);
                if (is_array($content)) {
                    foreach ($content as $subtitle => $subcontent) {
                        $outbody .= html_writer::start_div('subchart');
                        $outbody .= $this->output->heading($subtitle, 3);
                        $outbody .= $subcontent;
                        $outbody .= html_writer::end_div();
                    }
                } else {
                    $outbody .= $content;
                }
                $outbody .= html_writer::end_div();
            }
        }

        $out = $this->output->header();
        $out .= html_writer::start_tag('ul', ['class' => 'chartslist']);
        $out .= $outlist;
        $out .= html_writer::end_tag('ul');
        $out .= html_writer::div($outbody, 'charts');
        $out .= $this->output->footer();

        return $out;
    }
}