Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

MDL-40089 theme_clean: simplified layouts and converted to new OUTPUT…

… API
  • Loading branch information...
commit 85044443072fe32a4017faaf7daaf99a1c64b085 1 parent 602255d
Sam Hemelryk samhemelryk authored
5 theme/clean/config.php
View
@@ -55,3 +55,8 @@
$THEME->rendererfactory = 'theme_overridden_renderer_factory';
$THEME->csspostprocess = 'clean_process_css';
+
+$THEME->blockrtlmanipulations = array(
+ 'side-pre' => 'side-post',
+ 'side-post' => 'side-pre'
+);
91 theme/clean/layout/columns1.php
View
@@ -0,0 +1,91 @@
+<?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/>.
+
+// Get the HTML for the settings bits.
+$html = theme_clean_get_html_for_settings($OUTPUT, $PAGE);
+
+echo $OUTPUT->doctype() ?>
+<html <?php echo $OUTPUT->htmlattributes(); ?>>
+<head>
+ <title><?php echo $OUTPUT->page_title(); ?></title>
+ <link rel="shortcut icon" href="<?php echo $OUTPUT->favicon(); ?>" />
+ <?php echo $OUTPUT->standard_head_html() ?>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+</head>
+
+<body <?php echo $OUTPUT->body_attributes(); ?>>
+
+<?php echo $OUTPUT->standard_top_of_body_html() ?>
+
+<header role="banner" class="navbar navbar-fixed-top<?php echo $html->navbarclass ?>">
+ <nav role="navigation" class="navbar-inner">
+ <div class="container-fluid">
+ <a class="brand" href="<?php echo $CFG->wwwroot;?>"><?php echo $SITE->shortname; ?></a>
+ <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </a>
+ <div class="nav-collapse collapse">
+ <?php echo $OUTPUT->custom_menu(); ?>
+ <ul class="nav pull-right">
+ <li><?php echo $OUTPUT->page_heading_menu(); ?></li>
+ <li class="navbar-text"><?php echo $OUTPUT->login_info() ?></li>
+ </ul>
+ </div>
+ </div>
+ </nav>
+</header>
+
+<div id="page" class="container-fluid">
+
+ <header id="page-header" class="clearfix">
+ <div id="page-navbar">
+ <nav class="breadcrumb-button"><?php echo $OUTPUT->page_heading_button(); ?></nav>
+ <?php echo $OUTPUT->navbar(); ?>
+ </div>
+ <?php echo $html->heading; ?>
+ <div id="course-header">
+ <?php echo $OUTPUT->course_header(); ?>
+ </div>
+ </header>
+
+ <div id="page-content">
+ <div id="region-bs-main-and-pre">
+ <section id="region-main">
+ <?php
+ echo $OUTPUT->course_content_header();
+ echo $OUTPUT->main_content();
+ echo $OUTPUT->course_content_footer();
+ ?>
+ </section>
+ </div>
+ </div>
+
+ <footer id="page-footer">
+ <div id="course-footer"><?php echo $OUTPUT->course_footer(); ?></div>
+ <p class="helplink"><?php echo $OUTPUT->page_doc_link(); ?></p>
+ <?php
+ echo $html->footnote;
+ echo $OUTPUT->standard_footer_html();
+ ?>
+ </footer>
+
+ <?php echo $OUTPUT->standard_end_of_body_html() ?>
+
+</div>
+</body>
+</html>
102 theme/clean/layout/columns2.php
View
@@ -0,0 +1,102 @@
+<?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/>.
+
+// Get the HTML for the settings bits.
+$html = theme_clean_get_html_for_settings($OUTPUT, $PAGE);
+
+echo $OUTPUT->doctype() ?>
+<html <?php echo $OUTPUT->htmlattributes(); ?>>
+<head>
+ <title><?php echo $OUTPUT->page_title(); ?></title>
+ <link rel="shortcut icon" href="<?php echo $OUTPUT->favicon(); ?>" />
+ <?php echo $OUTPUT->standard_head_html() ?>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+</head>
+
+<body <?php echo $OUTPUT->body_attributes('two-column'); ?>>
+
+<?php echo $OUTPUT->standard_top_of_body_html() ?>
+
+<header role="banner" class="navbar navbar-fixed-top<?php echo $html->navbarclass ?>">
+ <nav role="navigation" class="navbar-inner">
+ <div class="container-fluid">
+ <a class="brand" href="<?php echo $CFG->wwwroot;?>"><?php echo $SITE->shortname; ?></a>
+ <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </a>
+ <div class="nav-collapse collapse">
+ <?php echo $OUTPUT->custom_menu(); ?>
+ <ul class="nav pull-right">
+ <li><?php echo $OUTPUT->page_heading_menu(); ?></li>
+ <li class="navbar-text"><?php echo $OUTPUT->login_info() ?></li>
+ </ul>
+ </div>
+ </div>
+ </nav>
+</header>
+
+<div id="page" class="container-fluid">
+
+ <header id="page-header" class="clearfix">
+ <div id="page-navbar">
+ <nav class="breadcrumb-button"><?php echo $OUTPUT->page_heading_button(); ?></nav>
+ <?php echo $OUTPUT->navbar(); ?>
+ </div>
+ <?php echo $html->heading; ?>
+ <div id="course-header">
+ <?php echo $OUTPUT->course_header(); ?>
+ </div>
+ </header>
+
+ <div id="page-content" class="row-fluid">
+ <div id="region-bs-main-and-pre" class="span9">
+ <div class="row-fluid">
+ <section id="region-main" class="span9 pull-right">
+ <?php
+ echo $OUTPUT->course_content_header();
+ echo $OUTPUT->main_content();
+ echo $OUTPUT->course_content_footer();
+ ?>
+ </section>
+ <?php
+ if (!right_to_left()) {
+ echo $OUTPUT->blocks('side-pre', 'span3 desktop-first-column');
+ } ?>
+ </div>
+ </div>
+ <?php
+ if (right_to_left()) {
+ echo $OUTPUT->blocks('side-post', 'span3');
+ }
+ ?>
+ </div>
+
+ <footer id="page-footer">
+ <div id="course-footer"><?php echo $OUTPUT->course_footer(); ?></div>
+ <p class="helplink"><?php echo $OUTPUT->page_doc_link(); ?></p>
+ <?php
+ echo $html->footnote;
+ echo $OUTPUT->standard_footer_html();
+ ?>
+ </footer>
+
+ <?php echo $OUTPUT->standard_end_of_body_html() ?>
+
+</div>
+</body>
+</html>
211 theme/clean/layout/columns3.php
View
@@ -28,81 +28,23 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
-$hasheading = ($PAGE->heading);
-$hasnavbar = (empty($PAGE->layout_options['nonavbar']) && $PAGE->has_navbar());
-$hasfooter = (empty($PAGE->layout_options['nofooter']));
-$hasheader = (empty($PAGE->layout_options['noheader']));
-
-$hassidepre = (empty($PAGE->layout_options['noblocks']) && $PAGE->blocks->region_has_content('side-pre', $OUTPUT));
-$hassidepost = (empty($PAGE->layout_options['noblocks']) && $PAGE->blocks->region_has_content('side-post', $OUTPUT));
-
-$showsidepre = ($hassidepre && !$PAGE->blocks->region_completely_docked('side-pre', $OUTPUT));
-$showsidepost = ($hassidepost && !$PAGE->blocks->region_completely_docked('side-post', $OUTPUT));
-
-// If there can be a sidepost region on this page and we are editing, always
-// show it so blocks can be dragged into it.
-if ($PAGE->user_is_editing()) {
- if ($PAGE->blocks->is_known_region('side-pre')) {
- $showsidepre = true;
- }
- if ($PAGE->blocks->is_known_region('side-post')) {
- $showsidepost = true;
- }
-}
-
-$haslogo = (!empty($PAGE->theme->settings->logo));
-
-$hasfootnote = (!empty($PAGE->theme->settings->footnote));
-$navbar_inverse = '';
-if (!empty($PAGE->theme->settings->invert)) {
- $navbar_inverse = 'navbar-inverse';
-}
-$custommenu = $OUTPUT->custom_menu();
-$hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custommenu));
-
-$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
-
-if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
- $courseheader = $OUTPUT->course_header();
- $coursecontentheader = $OUTPUT->course_content_header();
- if (empty($PAGE->layout_options['nocoursefooter'])) {
- $coursecontentfooter = $OUTPUT->course_content_footer();
- $coursefooter = $OUTPUT->course_footer();
- }
-}
-
-$layout = 'pre-and-post';
-if ($showsidepre && !$showsidepost) {
- if (!right_to_left()) {
- $layout = 'side-pre-only';
- } else {
- $layout = 'side-post-only';
- }
-} else if ($showsidepost && !$showsidepre) {
- if (!right_to_left()) {
- $layout = 'side-post-only';
- } else {
- $layout = 'side-pre-only';
- }
-} else if (!$showsidepost && !$showsidepre) {
- $layout = 'content-only';
-}
-$bodyclasses[] = $layout;
+// Get the HTML for the settings bits.
+$html = theme_clean_get_html_for_settings($OUTPUT, $PAGE);
echo $OUTPUT->doctype() ?>
-<html <?php echo $OUTPUT->htmlattributes() ?>>
+<html <?php echo $OUTPUT->htmlattributes(); ?>>
<head>
- <title><?php echo $PAGE->title ?></title>
- <link rel="shortcut icon" href="<?php echo $OUTPUT->pix_url('favicon', 'theme')?>" />
+ <title><?php echo $OUTPUT->page_title(); ?></title>
+ <link rel="shortcut icon" href="<?php echo $OUTPUT->favicon(); ?>" />
<?php echo $OUTPUT->standard_head_html() ?>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
-<body id="<?php p($PAGE->bodyid) ?>" class="<?php p($PAGE->bodyclasses.' '.join(' ', $bodyclasses)) ?>">
+<body <?php echo $OUTPUT->body_attributes(); ?>>
<?php echo $OUTPUT->standard_top_of_body_html() ?>
-<header role="banner" class="navbar <?php echo $navbar_inverse ?> navbar-fixed-top">
+<header role="banner" class="navbar navbar-fixed-top<?php echo $html->navbarclass ?>">
<nav role="navigation" class="navbar-inner">
<div class="container-fluid">
<a class="brand" href="<?php echo $CFG->wwwroot;?>"><?php echo $SITE->shortname; ?></a>
@@ -112,13 +54,11 @@
<span class="icon-bar"></span>
</a>
<div class="nav-collapse collapse">
- <?php if ($hascustommenu) {
- echo $custommenu;
- } ?>
- <ul class="nav pull-right">
- <li><?php echo $PAGE->headingmenu ?></li>
- <li class="navbar-text"><?php echo $OUTPUT->login_info() ?></li>
- </ul>
+ <?php echo $OUTPUT->custom_menu(); ?>
+ <ul class="nav pull-right">
+ <li><?php echo $OUTPUT->page_heading_menu(); ?></li>
+ <li class="navbar-text"><?php echo $OUTPUT->login_info() ?></li>
+ </ul>
</div>
</div>
</nav>
@@ -126,103 +66,44 @@
<div id="page" class="container-fluid">
-<?php if ($hasheader) { ?>
-<header id="page-header" class="clearfix">
- <?php if ($hasnavbar) { ?>
- <nav class="breadcrumb-button"><?php echo $PAGE->button; ?></nav>
- <?php echo $OUTPUT->navbar(); ?>
- <?php } ?>
-
- <?php
- if (!$haslogo) { ?>
- <h1><?php echo $PAGE->heading ?></h1>
- <?php
- } else { ?>
- <a class="logo" href="<?php echo $CFG->wwwroot; ?>" title="<?php print_string('home'); ?>"></a>
- <?php
- } ?>
-
- <?php if (!empty($courseheader)) { ?>
- <div id="course-header"><?php echo $courseheader; ?></div>
- <?php } ?>
-</header>
-<?php } ?>
-
-<div id="page-content" class="row-fluid">
-
-<?php if ($layout === 'pre-and-post') { ?>
- <div id="region-bs-main-and-pre" class="span9">
- <div class="row-fluid">
- <section id="region-main" class="span8 pull-right">
-<?php } else if ($layout === 'side-post-only') { ?>
- <section id="region-main" class="span9">
-<?php } else if ($layout === 'side-pre-only') { ?>
- <section id="region-main" class="span9 pull-right">
-<?php } else if ($layout === 'content-only') { ?>
- <section id="region-main" class="span12">
-<?php } ?>
-
-
- <?php echo $coursecontentheader; ?>
- <?php echo $OUTPUT->main_content() ?>
- <?php echo $coursecontentfooter; ?>
- </section>
-
-
-<?php if ($layout !== 'content-only') {
- if ($layout === 'pre-and-post') { ?>
- <aside class="span4 desktop-first-column">
- <?php } else if ($layout === 'side-pre-only') { ?>
- <aside class="span3 desktop-first-column">
- <?php } ?>
- <div id="region-pre" class="block-region">
- <div class="region-content">
- <?php
- if (!right_to_left()) {
- echo $OUTPUT->blocks_for_region('side-pre');
- } else if ($hassidepost) {
- echo $OUTPUT->blocks_for_region('side-post');
- }
- ?>
- </div>
- </div>
- </aside>
- <?php if ($layout === 'pre-and-post') {
- ?></div></div><?php // Close row-fluid and span9.
- }
-
- if ($layout === 'side-post-only' OR $layout === 'pre-and-post') { ?>
- <aside class="span3">
- <div id="region-post" class="block-region">
- <div class="region-content">
- <?php if (!right_to_left()) {
- echo $OUTPUT->blocks_for_region('side-post');
- } else {
- echo $OUTPUT->blocks_for_region('side-pre');
- } ?>
+ <header id="page-header" class="clearfix">
+ <div id="page-navbar">
+ <nav class="breadcrumb-button"><?php echo $OUTPUT->page_heading_button(); ?></nav>
+ <?php echo $OUTPUT->navbar(); ?>
</div>
+ <?php echo $html->heading; ?>
+ <div id="course-header">
+ <?php echo $OUTPUT->course_header(); ?>
</div>
- </aside>
- <?php } ?>
-<?php } ?>
-</div>
-
-<footer id="page-footer">
- <p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>
-
- <?php
-if ($hasfootnote) { ?>
- <div class="footnote text-center">
- <?php echo $PAGE->theme->settings->footnote; ?>
- </div>
- <?php
-} ?>
+ </header>
+
+ <div id="page-content" class="row-fluid">
+ <div id="region-bs-main-and-pre" class="span9">
+ <div class="row-fluid">
+ <section id="region-main" class="span8 pull-right">
+ <?php
+ echo $OUTPUT->course_content_header();
+ echo $OUTPUT->main_content();
+ echo $OUTPUT->course_content_footer();
+ ?>
+ </section>
+ <?php echo $OUTPUT->blocks('side-pre', 'span4 desktop-first-column'); ?>
+ </div>
+ </div>
+ <?php echo $OUTPUT->blocks('side-post', 'span3'); ?>
+ </div>
- <?php echo $OUTPUT->standard_footer_html(); ?>
-</footer>
+ <footer id="page-footer">
+ <div id="course-footer"><?php echo $OUTPUT->course_footer(); ?></div>
+ <p class="helplink"><?php echo $OUTPUT->page_doc_link(); ?></p>
+ <?php
+ echo $html->footnote;
+ echo $OUTPUT->standard_footer_html();
+ ?>
+ </footer>
-<?php echo $OUTPUT->standard_end_of_body_html() ?>
+ <?php echo $OUTPUT->standard_end_of_body_html() ?>
</div>
</body>
-</html>
+</html>
35 theme/clean/layout/embedded.php
View
@@ -0,0 +1,35 @@
+<?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/>.
+
+echo $OUTPUT->doctype() ?>
+<html <?php echo $OUTPUT->htmlattributes(); ?>>
+<head>
+ <title><?php echo $OUTPUT->page_title(); ?></title>
+ <link rel="shortcut icon" href="<?php echo $OUTPUT->favicon(); ?>" />
+ <?php echo $OUTPUT->standard_head_html() ?>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+</head>
+
+<body <?php echo $OUTPUT->body_attributes(); ?>>
+<?php echo $OUTPUT->standard_top_of_body_html() ?>
+<div id="page">
+ <div id="page-content" class="clearfix">
+ <?php echo $OUTPUT->main_content(); ?>
+ </div>
+</div>
+<?php echo $OUTPUT->standard_end_of_body_html() ?>
+</body>
+</html>
70 theme/clean/layout/secure.php
View
@@ -0,0 +1,70 @@
+<?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/>.
+
+echo $OUTPUT->doctype() ?>
+<html <?php echo $OUTPUT->htmlattributes(); ?>>
+<head>
+ <title><?php echo $OUTPUT->page_title(); ?></title>
+ <link rel="shortcut icon" href="<?php echo $OUTPUT->favicon(); ?>" />
+ <?php echo $OUTPUT->standard_head_html() ?>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+</head>
+
+<body <?php echo $OUTPUT->body_attributes(); ?>>
+
+<?php echo $OUTPUT->standard_top_of_body_html() ?>
+
+<header role="banner" class="navbar navbar-fixed-top">
+ <nav role="navigation" class="navbar-inner">
+ <div class="container-fluid">
+ <a class="brand" href="<?php echo $CFG->wwwroot;?>"><?php echo $SITE->shortname; ?></a>
+ <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </a>
+ <div class="nav-collapse collapse">
+ <ul class="nav pull-right">
+ <li><?php echo $OUTPUT->page_heading_menu(); ?></li>
+ </ul>
+ </div>
+ </div>
+ </nav>
+</header>
+
+<div id="page" class="container-fluid">
+
+ <header id="page-header" class="clearfix">
+ <?php echo $html->heading; ?>
+ </header>
+
+ <div id="page-content" class="row-fluid">
+ <div id="region-bs-main-and-pre" class="span9">
+ <div class="row-fluid">
+ <section id="region-main" class="span8 pull-right">
+ <?php echo $OUTPUT->main_content(); ?>
+ </section>
+ <?php echo $OUTPUT->blocks('side-pre', 'span4 desktop-first-column'); ?>
+ </div>
+ </div>
+ <?php echo $OUTPUT->blocks('side-post', 'span3'); ?>
+ </div>
+
+ <?php echo $OUTPUT->standard_end_of_body_html() ?>
+
+</div>
+</body>
+</html>
33 theme/clean/lib.php
View
@@ -78,3 +78,36 @@ function clean_set_customcss($css, $customcss) {
return $css;
}
+
+/**
+ * Returns an object containing HTML for the areas affected by settings.
+ *
+ * @param renderer_base $output Pass in $OUTPUT.
+ * @param moodle_page $page Pass in $PAGE.
+ * @return stdClass An object with the following properties:
+ * - navbarclass A CSS class to use on the navbar. By default ''.
+ * - heading HTML to use for the heading. A logo if one is selected or the default heading.
+ * - footnote HTML to use as a footnote. By default ''.
+ */
+function theme_clean_get_html_for_settings(renderer_base $output, moodle_page $page) {
+ global $CFG;
+ $return = new stdClass;
+
+ $return->navbarclass = '';
+ if (!empty($page->theme->settings->invert)) {
+ $return->navbarclass .= ' navbar-inverse';
+ }
+
+ if (!empty($page->theme->settings->logo)) {
+ $return->heading = html_writer::link($CFG->wwwroot, '', array('title' => get_string('home'), 'class' => 'logo'));
+ } else {
+ $return->heading = $output->page_heading();
+ }
+
+ $return->footnote = '';
+ if (!empty($page->theme->settings->footnote)) {
+ $return->footnote = '<div class="footnote text-center">'.$page->theme->settings->footnote.'</div>';
+ }
+
+ return $return;
+}
Please sign in to comment.
Something went wrong with that request. Please try again.