2019-05-04 11:42:26 +00:00
< ? php
2024-08-24 13:27:00 +00:00
// Copyright (C) 2010-2024, the Friendica project
// SPDX-FileCopyrightText: 2010-2024 the Friendica project
//
// SPDX-License-Identifier: AGPL-3.0-or-later
2019-05-04 11:42:26 +00:00
namespace Friendica\Module ;
use Friendica\BaseModule ;
2021-03-09 15:36:10 +00:00
use Friendica\Core\Renderer ;
2019-05-04 11:42:26 +00:00
use Friendica\Core\System ;
2019-12-15 21:34:11 +00:00
use Friendica\DI ;
2019-05-04 14:22:47 +00:00
use Friendica\Network\HTTPException ;
2019-05-04 11:42:26 +00:00
use Friendica\Util\Strings ;
/**
* Shows the maintenance reason
* or redirects to the alternate location
*/
class Maintenance extends BaseModule
{
2021-11-20 14:38:03 +00:00
protected function content ( array $request = []) : string
2019-05-04 11:42:26 +00:00
{
2023-01-19 02:01:07 +00:00
$reason = DI :: config () -> get ( 'system' , 'maintenance_reason' ) ? ? '' ;
2019-05-04 11:42:26 +00:00
if (( substr ( Strings :: normaliseLink ( $reason ), 0 , 7 ) === 'http://' ) ||
( substr ( Strings :: normaliseLink ( $reason ), 0 , 8 ) === 'https://' )) {
System :: externalRedirect ( $reason , 307 );
}
2019-05-04 14:22:47 +00:00
$exception = new HTTPException\ServiceUnavailableException ( $reason );
2021-03-09 15:36:10 +00:00
2022-06-23 09:39:45 +00:00
header ( $_SERVER [ 'SERVER_PROTOCOL' ] . ' ' . $exception -> getCode () . ' ' . DI :: l10n () -> t ( 'System down for maintenance' ));
2021-03-09 15:36:10 +00:00
$tpl = Renderer :: getMarkupTemplate ( 'exception.tpl' );
return Renderer :: replaceMacros ( $tpl , [
'$title' => DI :: l10n () -> t ( 'System down for maintenance' ),
'$message' => DI :: l10n () -> t ( 'This Friendica node is currently in maintenance mode, either automatically because it is self-updating or manually by the node administrator. This condition should be temporary, please come back in a few minutes.' ),
2021-03-10 17:20:02 +00:00
'$thrown' => $reason ,
2021-03-09 15:36:10 +00:00
'$stack_trace' => '' ,
'$trace' => '' ,
]);
2019-05-04 11:42:26 +00:00
}
}