From 8dd732a89695c33952130780d4b646798ba3fde2 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 19 Mar 2017 13:24:07 +0000 Subject: [PATCH] Issue 3242: Define a maintenance reason --- include/dbstructure.php | 9 ++++++--- mod/maintenance.php | 5 ++++- util/maintenance.php | 34 +++++++++++++++++++++++++++------- view/templates/maintenance.tpl | 3 ++- 4 files changed, 39 insertions(+), 12 deletions(-) diff --git a/include/dbstructure.php b/include/dbstructure.php index c1ed4bb986..732d3577e9 100644 --- a/include/dbstructure.php +++ b/include/dbstructure.php @@ -144,7 +144,8 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { global $a, $db; if ($action) { - set_config('system', 'maintenance', 1); + Config::set('system', 'maintenance', 1); + Config::set('system', 'maintenance_reason', 'Database update'); } if (isset($a->config["system"]["db_charset"])) { @@ -361,8 +362,10 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { } } - if ($action) - set_config('system', 'maintenance', 0); + if ($action) { + Config::set('system', 'maintenance', 0); + Config::set('system', 'maintenance_reason', ''); + } return $errors; } diff --git a/mod/maintenance.php b/mod/maintenance.php index dcdc44194e..98155b93ad 100644 --- a/mod/maintenance.php +++ b/mod/maintenance.php @@ -1,11 +1,14 @@ t('System down for maintenance') + '$sysdown' => t('System down for maintenance'), + '$reason' => Config::get('system', 'maintenance_reason') )); } diff --git a/util/maintenance.php b/util/maintenance.php index 28f3a503ad..a49bf01ac6 100644 --- a/util/maintenance.php +++ b/util/maintenance.php @@ -17,17 +17,37 @@ unset($db_host, $db_user, $db_pass, $db_data); Config::load(); $maint_mode = 1; -if($argc > 1) +if($argc > 1) { $maint_mode = intval($argv[1]); -set_config('system', 'maintenance', $maint_mode); +} -if($maint_mode) +Config::set('system', 'maintenance', $maint_mode); + +if($maint_mode AND ($argc > 2)) { + $reason_arr = $argv; + array_shift($reason_arr); + array_shift($reason_arr); + + $reason = implode(' ', $reason_arr); + Config::set('system', 'maintenance_reason', $reason); +} else { + Config::set('system', 'maintenance_reason', ''); +} + +if($maint_mode) { $mode_str = "maintenance mode"; -else +} else { $mode_str = "normal mode"; +} + +echo "\n\tSystem set in $mode_str\n"; + +if ($reason != '') { + echo "\tMaintenance reason: $reason\n\n"; +} else { + echo "\n"; +} -echo "\n\tSystem set in $mode_str\n\n"; echo "Usage:\n\n"; -echo "\tphp {$argv[0]} [1]\tSet the system in maintenance mode\n"; +echo "\tphp {$argv[0]} [1] [Maintenance reason]\tSet the system in maintenance mode\n"; echo "\tphp {$argv[0]} 0 \tSet the system in normal mode\n\n"; - diff --git a/view/templates/maintenance.tpl b/view/templates/maintenance.tpl index f43da542f8..e26af299f8 100644 --- a/view/templates/maintenance.tpl +++ b/view/templates/maintenance.tpl @@ -1,2 +1,3 @@ -
{{$sysdown}}
+

{{$sysdown}}

+
{{$reason}}
-- 2.39.5