diff --git a/application/startup.inc.php b/application/startup.inc.php
index 08993ca89..ba4138cd9 100644
--- a/application/startup.inc.php
+++ b/application/startup.inc.php
@@ -56,10 +56,8 @@ $bBypassMaintenance = !is_null(Utils::ReadParam('maintenance', null));
// Maintenance mode
if (file_exists(APPROOT.'.maintenance') && !$bBypassMaintenance)
{
- require_once(APPROOT.'core/dict.class.inc.php');
- $sMessage = Dict::S('UI:Error:MaintenanceMode', 'Application is currently in maintenance');
- $sTitle = Dict::S('UI:Error:MaintenanceTitle', 'Maintenance');
- // throw new MaintenanceException($sMessage, $sTitle);
+ $sMessage = 'Application is currently in maintenance';
+ $sTitle = 'Maintenance';
http_response_code(503);
// Display message depending on the request
@@ -135,10 +133,17 @@ MetaModel::Startup($sConfigFile, false /* $bModelOnly */, $bAllowCache, false /*
function _MaintenanceSetupPageMessage($sTitle, $sMessage)
{
// Web Page
- require_once(APPROOT."/setup/setuppage.class.inc.php");
- $oP = new SetupPage($sTitle);
- $oP->p("
$sMessage
");
- $oP->output();
+ @include_once(APPROOT."/setup/setuppage.class.inc.php");
+ if (class_exists('SetupPage'))
+ {
+ $oP = new SetupPage($sTitle);
+ $oP->p("$sMessage
");
+ $oP->output();
+ }
+ else
+ {
+ _MaintenanceTextMessage($sMessage);
+ }
}
/**
@@ -161,15 +166,25 @@ function _MaintenanceHtmlMessage($sMessage)
/**
* Use a simple JSON to display the maintenance message
+ *
+ * @param $sTitle
* @param $sMessage
*/
function _MaintenanceJsonMessage($sTitle, $sMessage)
{
- $oP = new ajax_page($sTitle);
- $oP->add_header('Access-Control-Allow-Origin: *');
- $oP->SetContentType('application/json');
- $oP->add('{"code":100, "message":"'.$sMessage.'"}');
- $oP->Output();
+ @include_once(APPROOT."/application/ajaxwebpage.class.inc.php");
+ if (class_exists('ajax_page'))
+ {
+ $oP = new ajax_page($sTitle);
+ $oP->add_header('Access-Control-Allow-Origin: *');
+ $oP->SetContentType('application/json');
+ $oP->add('{"code":100, "message":"'.$sMessage.'"}');
+ $oP->Output();
+ }
+ else
+ {
+ _MaintenanceTextMessage($sMessage);
+ }
}
/**
diff --git a/setup/applicationinstaller.class.inc.php b/setup/applicationinstaller.class.inc.php
index 5ed7532ee..254ebfc4c 100644
--- a/setup/applicationinstaller.class.inc.php
+++ b/setup/applicationinstaller.class.inc.php
@@ -117,6 +117,8 @@ class ApplicationInstaller
try
{
$fStart = microtime(true);
+ // Enter in maintenance mode
+ @touch(APPROOT.'.maintenance');
switch ($sStep)
{
case '':
@@ -339,11 +341,16 @@ class ApplicationInstaller
'percentage-completed' => 100,
);
}
+ // Exit maintenance mode
+ @unlink(APPROOT.'.maintenance');
$fDuration = round(microtime(true) - $fStart, 2);
SetupPage::log_info("##### STEP {$sStep} duration: {$fDuration}s");
}
catch (Exception $e)
{
+ // Exit maintenance mode
+ @unlink(APPROOT.'.maintenance');
+
$aResult = array(
'status' => self::ERROR,
'message' => $e->getMessage(),