diff --git a/theme/clean/classes/core_renderer.php b/theme/clean/classes/core_renderer.php index b3534ad994e..4b27144879c 100644 --- a/theme/clean/classes/core_renderer.php +++ b/theme/clean/classes/core_renderer.php @@ -38,9 +38,30 @@ class theme_clean_core_renderer extends theme_bootstrapbase_core_renderer { * @return string HTML for the header bar. */ public function context_header($headerinfo = null, $headinglevel = 1) { - if ($headinglevel == 1 && !empty($this->page->theme->settings->logo)) { + + 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; + } } diff --git a/theme/clean/lib.php b/theme/clean/lib.php index 931090381c2..4a46bba42c2 100644 --- a/theme/clean/lib.php +++ b/theme/clean/lib.php @@ -139,7 +139,9 @@ function theme_clean_get_html_for_settings(renderer_base $output, moodle_page $p $return->navbarclass .= ' navbar-inverse'; } - if (!empty($page->theme->settings->logo)) { + // Only display the logo on the front page and login page, if one is defined. + if (!empty($page->theme->settings->logo) && + ($page->pagelayout == 'frontpage' || $page->pagelayout == 'login')) { $return->heading = html_writer::tag('div', '', array('class' => 'logo')); } else { $return->heading = $output->page_heading();