Merge pull request #585 from fermionic/20130114-maintenance-mode

add maintenance mode
This commit is contained in:
fermionic 2013-01-14 18:18:34 -08:00
commit b920ce732c
6 changed files with 84 additions and 5 deletions

29
include/dbupdate.php Normal file
View File

@ -0,0 +1,29 @@
<?php
require_once("boot.php");
function dbupdate_run(&$argv, &$argc) {
global $a, $db;
if(is_null($a)){
$a = new App;
}
if(is_null($db)) {
@include(".htconfig.php");
require_once("include/dba.php");
$db = new dba($db_host, $db_user, $db_pass, $db_data);
unset($db_host, $db_user, $db_pass, $db_data);
}
load_config('config');
load_config('system');
check_config($a);
}
if (array_search(__file__,get_included_files())===0){
dbupdate_run($argv,$argc);
killme();
}

View File

@ -1,5 +1,6 @@
<?php <?php
/** /**
* *
* Friendica * Friendica
@ -59,6 +60,8 @@ if(! $install) {
call_hooks('init_1'); call_hooks('init_1');
} }
$maintenance = get_config('system', 'maintenance');
/** /**
* *
@ -89,7 +92,7 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
load_translation_table($lang); load_translation_table($lang);
} }
if((x($_GET,'zrl')) && (! $install)) { if((x($_GET,'zrl')) && (!$install && !$maintenance)) {
$_SESSION['my_url'] = $_GET['zrl']; $_SESSION['my_url'] = $_GET['zrl'];
$a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string); $a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string);
zrl_init($a); zrl_init($a);
@ -135,8 +138,10 @@ if(! x($_SESSION,'sysmsg_info'))
if($install) if($install)
$a->module = 'install'; $a->module = 'install';
elseif($maintenance)
$a->module = 'maintenance';
else else
check_config($a); proc_run('php', 'include/dbupdate.php');
nav_set_selected('nothing'); nav_set_selected('nothing');
@ -237,7 +242,7 @@ if (file_exists($theme_info_file)){
if(! x($a->page,'content')) if(! x($a->page,'content'))
$a->page['content'] = ''; $a->page['content'] = '';
if(! $install) if(!$install && !$maintenance)
call_hooks('page_content_top',$a->page['content']); call_hooks('page_content_top',$a->page['content']);
/** /**
@ -372,7 +377,7 @@ $a->page['content'] .= '<div id="pause"></div>';
* *
*/ */
if($a->module != 'install') { if($a->module != 'install' && $a->module != 'maintenance') {
nav($a); nav($a);
} }

7
mod/maintenance.php Normal file
View File

@ -0,0 +1,7 @@
<?php
function maintenance_content(&$a) {
return replace_macros(get_markup_template('maintenance.tpl'), array(
'$sysdown' => t('System down for maintenance')
));
}

31
util/maintenance.php Normal file
View File

@ -0,0 +1,31 @@
<?php
require_once("boot.php");
$a = new App;
@include(".htconfig.php");
$lang = get_browser_language();
load_translation_table($lang);
require_once("include/dba.php");
$db = new dba($db_host, $db_user, $db_pass, $db_data, false);
unset($db_host, $db_user, $db_pass, $db_data);
load_config('config');
load_config('system');
$maint_mode = 1;
if($argc > 1)
$maint_mode = intval($argv[1]);
set_config('system', 'maintenance', $maint_mode);
if($maint_mode)
$mode_str = "maintenance mode";
else
$mode_str = "normal mode";
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]} 0 \tSet the system in normal mode\n\n";

1
view/maintenance.tpl Normal file
View File

@ -0,0 +1 @@
<div id="maintenance-message">$sysdown</div>

View File

@ -0,0 +1,6 @@
{{*
* AUTOMATICALLY GENERATED TEMPLATE
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
*
*}}
<div id="maintenance-message">{{$sysdown}}</div>