MDL-41398 bootstrap: added a maintenance layout
authorSam Hemelryk <sam@moodle.com>
Tue, 1 Oct 2013 04:06:16 +0000 (17:06 +1300)
committerMarina Glancy <marina@moodle.com>
Tue, 1 Oct 2013 04:35:47 +0000 (14:35 +1000)
theme/bootstrapbase/config.php
theme/bootstrapbase/layout/maintenance.php [new file with mode: 0644]
theme/bootstrapbase/upgrade.txt
theme/clean/layout/maintenance.php [new file with mode: 0644]

index 4ca1d83..bcf4697 100644 (file)
@@ -126,12 +126,11 @@ $THEME->layouts = array(
         'regions' => array()
     ),
     // Used during upgrade and install, and for the 'This site is undergoing maintenance' message.
-    // This must not have any blocks, and it is good idea if it does not have links to
-    // other places - for example there should not be a home link in the footer...
+    // This must not have any blocks, links, or API calls that would lead to database or cache interaction.
+    // Please be extremely careful if you are modifying this layout.
     'maintenance' => array(
-        'file' => 'columns1.php',
+        'file' => 'maintenance.php',
         'regions' => array(),
-        'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocoursefooter'=>true, 'nocourseheader'=>true),
     ),
     // Should display the content and basic headers only.
     'print' => array(
diff --git a/theme/bootstrapbase/layout/maintenance.php b/theme/bootstrapbase/layout/maintenance.php
new file mode 100644 (file)
index 0000000..5b0b9f7
--- /dev/null
@@ -0,0 +1,62 @@
+<?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/>.
+
+/**
+ * This layout file is designed maintenance related tasks such as upgrade and installation of plugins.
+ *
+ * It's ultra important that this layout file makes no use of API's unless it absolutely needs to.
+ * Under no circumstances should it use API calls that result in database or cache interaction.
+ *
+ * If you are modifying this file please be extremely careful, one wrong API call and you could end up
+ * breaking installation or upgrade unwittingly.
+ */
+
+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" class="container-fluid">
+
+    <header id="page-header" class="clearfix">
+        <?php echo $OUTPUT->page_heading(); ?>
+    </header>
+
+    <div id="page-content" class="row-fluid">
+        <section id="region-main" class="span12">
+            <?php echo $OUTPUT->main_content(); ?>
+        </section>
+    </div>
+
+    <footer id="page-footer">
+        <?php
+        echo $OUTPUT->standard_footer_html();
+        ?>
+    </footer>
+
+    <?php echo $OUTPUT->standard_end_of_body_html() ?>
+
+</div>
+</body>
+</html>
index 942f514..ceb6e51 100644 (file)
@@ -7,3 +7,10 @@ Notes:
   made to the grade report to make it work with Bootstrapbase.
   Theme developers need to alter config.php and update $THEME->plugins_exclude_sheets
   to not to list stylesheet from gradereport_grade any more. See MDL-40347
+
+=== 2.5.3 ===
+Notes:
+* A new maintenance layout file was introduced.
+  If you have a theme based upon bootstrapbase that implements its own layouts but
+  does not define the maintenance layout in its config.php then you may want to
+  create your own maintenance layout file and apply your customisations to that.
diff --git a/theme/clean/layout/maintenance.php b/theme/clean/layout/maintenance.php
new file mode 100644 (file)
index 0000000..b483a43
--- /dev/null
@@ -0,0 +1,55 @@
+<?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() ?>
+
+<div id="page" class="container-fluid">
+
+    <header id="page-header" class="clearfix">
+        <?php echo $html->heading; ?>
+    </header>
+
+    <div id="page-content" class="row-fluid">
+        <section id="region-main" class="span12">
+            <?php echo $OUTPUT->main_content(); ?>
+        </section>
+    </div>
+
+    <footer id="page-footer">
+        <?php
+        echo $OUTPUT->standard_footer_html();
+        ?>
+    </footer>
+
+    <?php echo $OUTPUT->standard_end_of_body_html() ?>
+
+</div>
+</body>
+</html>