. require_once($CFG->dirroot . '/theme/bootstrapbase/renderers.php'); /** * Clean core renderers. * * @package theme_clean * @copyright 2015 Frédéric Massart - FMCorz.net * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class theme_clean_core_renderer extends theme_bootstrapbase_core_renderer { /** * Either returns the parent version of the header bar, or a version with the logo replacing the header. * * @since Moodle 2.9 * @param array $headerinfo An array of header information, dependant on what type of header is being displayed. The following * array example is user specific. * heading => Override the page heading. * user => User object. * usercontext => user context. * @param int $headinglevel What level the 'h' tag will be. * @return string HTML for the header bar. */ public function context_header($headerinfo = null, $headinglevel = 1) { if ($this->should_render_logo($headinglevel)) { return html_writer::tag('div', '', array('class' => 'logo')); } return parent::context_header($headerinfo, $headinglevel); } /** * Determines if we should render the logo. * * @param int $headinglevel What level the 'h' tag will be. * @return bool Should the logo be rendered. */ protected function should_render_logo($headinglevel = 1) { global $PAGE; // Only render the logo if we're on the front page or login page // and the theme has a logo. if ($headinglevel == 1 && !empty($this->page->theme->settings->logo)) { if ($PAGE->pagelayout == 'frontpage' || $PAGE->pagelayout == 'login') { return true; } } return false; } /** * Returns the navigation bar home reference. * * The small logo is only rendered on pages where the logo is not displayed. * * @param bool $returnlink Whether to wrap the icon and the site name in links or not * @return string The site name, the small logo or both depending on the theme settings. */ public function navbar_home($returnlink = true) { global $CFG; if ($this->should_render_logo() || empty($this->page->theme->settings->smalllogo)) { // If there is no small logo we always show the site name. return $this->get_home_ref($returnlink); } $imageurl = $this->page->theme->setting_file_url('smalllogo', 'smalllogo'); $image = html_writer::img($imageurl, get_string('sitelogo', 'theme_' . $this->page->theme->name), array('class' => 'small-logo')); if ($returnlink) { $logocontainer = html_writer::link(new moodle_url('/'), $image, array('class' => 'small-logo-container', 'title' => get_string('home'))); } else { $logocontainer = html_writer::tag('span', $image, array('class' => 'small-logo-container')); } // Sitename setting defaults to true. if (!isset($this->page->theme->settings->sitename) || !empty($this->page->theme->settings->sitename)) { return $logocontainer . $this->get_home_ref($returnlink); } return $logocontainer; } /** * Returns a reference to the site home. * * It can be either a link or a span. * * @param bool $returnlink * @return string */ protected function get_home_ref($returnlink = true) { global $CFG, $SITE; $sitename = format_string($SITE->shortname, true, array('context' => context_course::instance(SITEID))); if ($returnlink) { return html_writer::link(new moodle_url('/'), $sitename, array('class' => 'brand', 'title' => get_string('home'))); } return html_writer::tag('span', $sitename, array('class' => 'brand')); } }