%PDF- %PDF-
Direktori : /home/vacivi36/ava/user/classes/output/myprofile/ |
Current File : /home/vacivi36/ava/user/classes/output/myprofile/renderer.php |
<?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/>. /** * myprofile renderer. * * @package core_user * @copyright 2015 onwards Ankit Agarwal <ankit.agrr@gmail.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core_user\output\myprofile; defined('MOODLE_INTERNAL') || die; /** * Report log renderer's for printing reports. * * @since Moodle 2.9 * @package core_user * @copyright 2015 onwards Ankit Agarwal <ankit.agrr@gmail.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class renderer extends \plugin_renderer_base { /** * Render the whole tree. * * @param tree $tree * * @return string */ public function render_tree(tree $tree) { $return = \html_writer::start_tag('div', array('class' => 'profile_tree')); $categories = $tree->categories; foreach ($categories as $category) { $return .= $this->render($category); } $return .= \html_writer::end_tag('div'); return $return; } /** * Render a category. * * @param category $category * * @return string */ public function render_category(category $category) { $classes = $category->classes; if (empty($classes)) { $return = \html_writer::start_tag('section', array('class' => 'node_category card d-inline-block w-100 mb-3')); $return .= \html_writer::start_tag('div', array('class' => 'card-body')); } else { $return = \html_writer::start_tag('section', array('class' => 'node_category card d-inline-block w-100 mb-3' . $classes)); $return .= \html_writer::start_tag('div', array('class' => 'card-body')); } $return .= \html_writer::tag('h3', $category->title, array('class' => 'lead')); $nodes = $category->nodes; if (empty($nodes)) { // No nodes, nothing to render. return ''; } $return .= \html_writer::start_tag('ul'); foreach ($nodes as $node) { $return .= $this->render($node); } $return .= \html_writer::end_tag('ul'); $return .= \html_writer::end_tag('div'); $return .= \html_writer::end_tag('section'); return $return; } /** * Render a node. * * @param node $node * * @return string */ public function render_node(node $node) { $return = ''; if (is_object($node->url)) { $header = \html_writer::link($node->url, $node->title); } else { $header = $node->title; } $icon = $node->icon; if (!empty($icon)) { $header .= $this->render($icon); } $content = $node->content; $classes = $node->classes; if (!empty($content)) { if ($header) { // There is some content to display below this make this a header. $return = \html_writer::tag('dt', $header); $return .= \html_writer::tag('dd', $content); $return = \html_writer::tag('dl', $return); } else { $return = \html_writer::span($content); } if ($classes) { $return = \html_writer::tag('li', $return, array('class' => 'contentnode ' . $classes)); } else { $return = \html_writer::tag('li', $return, array('class' => 'contentnode')); } } else { $return = \html_writer::span($header); $return = \html_writer::tag('li', $return, array('class' => $classes)); } return $return; } }