Add a App-Mode with defined constants

- Normal Mode = 0
- Install Mode = 1
- Maintenance Mode = 2

Moved Install-Mode check to class `App`

Replaced all maintenance and install checks with $a->mode checks
This commit is contained in:
Philipp Holzer 2018-04-27 21:07:04 +02:00
parent 6973aaefc2
commit d5b68cd146
5 changed files with 27 additions and 22 deletions

View File

@ -93,6 +93,7 @@ class dba {
// No suitable SQL driver was found. // No suitable SQL driver was found.
if (!self::$connected) { if (!self::$connected) {
self::$driver = null;
self::$db = null; self::$db = null;
} }
$a->save_timestamp($stamp1, "network"); $a->save_timestamp($stamp1, "network");

View File

@ -637,7 +637,7 @@ function logger($msg, $level = 0) {
// turn off logger in install mode // turn off logger in install mode
if ( if (
$a->install_mode $a->mode == APP_MODE_INSTALL
|| !dba::$connected || !dba::$connected
) { ) {
return; return;
@ -709,7 +709,7 @@ function dlogger($msg, $level = 0) {
// turn off logger in install mode // turn off logger in install mode
if ( if (
$a->install_mode $a->mode == APP_MODE_INSTALL
|| !dba::$connected || !dba::$connected
) { ) {
return; return;

View File

@ -31,16 +31,8 @@ BaseObject::setApp($a);
// The value is set to "true" by default in boot.php // The value is set to "true" by default in boot.php
$a->backend = false; $a->backend = false;
/** // Only load config if found, don't suppress errors
* Load the configuration file which contains our DB credentials. if (!$a->mode == APP_MODE_INSTALL) {
* Ignore errors. If the file doesn't exist or is empty, we are running in
* installation mode.
*/
$install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false : true);
// Only load config if found, don't surpress errors
if (!$install) {
include ".htconfig.php"; include ".htconfig.php";
} }
@ -50,7 +42,7 @@ if (!$install) {
require_once "include/dba.php"; require_once "include/dba.php";
if (!$install) { if (!$a->mode == APP_MODE_INSTALL) {
$result = dba::connect($db_host, $db_user, $db_pass, $db_data); $result = dba::connect($db_host, $db_user, $db_pass, $db_data);
unset($db_host, $db_user, $db_pass, $db_data); unset($db_host, $db_user, $db_pass, $db_data);
@ -85,7 +77,7 @@ if (!$install) {
Addon::loadHooks(); Addon::loadHooks();
Addon::callHooks('init_1'); Addon::callHooks('init_1');
$maintenance = Config::get('system', 'maintenance'); $a->mode = ((Config::get('system', 'maintenance')) ? APP_MODE_MAINTENANCE : APP_MODE_NORMAL);
} }
$lang = L10n::getBrowserLanguage(); $lang = L10n::getBrowserLanguage();
@ -129,7 +121,7 @@ if ((x($_SESSION, 'language')) && ($_SESSION['language'] !== $lang)) {
L10n::loadTranslationTable($lang); L10n::loadTranslationTable($lang);
} }
if ((x($_GET, 'zrl')) && (!$install && !$maintenance)) { if ((x($_GET, 'zrl')) && $a->mode == APP_MODE_NORMAL) {
// Only continue when the given profile link seems valid // Only continue when the given profile link seems valid
// Valid profile links contain a path with "/profile/" and no query parameters // Valid profile links contain a path with "/profile/" and no query parameters
if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == "") if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == "")
@ -181,9 +173,9 @@ $_SESSION['last_updated'] = defaults($_SESSION, 'last_updated', []);
// in install mode, any url loads install module // in install mode, any url loads install module
// but we need "view" module for stylesheet // but we need "view" module for stylesheet
if ($install && $a->module!="view") { if ($a->mode == APP_MODE_INSTALL && $a->module!="view") {
$a->module = 'install'; $a->module = 'install';
} elseif ($maintenance && $a->module!="view") { } elseif ($a->mode == APP_MODE_MAINTENANCE && $a->module!="view") {
$a->module = 'maintenance'; $a->module = 'maintenance';
} else { } else {
check_url($a); check_url($a);
@ -342,7 +334,7 @@ if (! x($a->page, 'content')) {
$a->page['content'] = ''; $a->page['content'] = '';
} }
if (!$install && !$maintenance) { if ($a->mode == APP_MODE_NORMAL) {
Addon::callHooks('page_content_top', $a->page['content']); Addon::callHooks('page_content_top', $a->page['content']);
} }

View File

@ -14,6 +14,10 @@ use Detection\MobileDetect;
use Exception; use Exception;
define ('APP_MODE_NORMAL', 0);
define ('APP_MODE_INSTALL', 1);
define ('APP_MODE_MAINTENANCE', 2);
require_once 'boot.php'; require_once 'boot.php';
require_once 'include/text.php'; require_once 'include/text.php';
@ -52,7 +56,7 @@ class App
public $argv; public $argv;
public $argc; public $argc;
public $module; public $module;
public $install_mode = false; public $mode = APP_MODE_NORMAL;
public $pager; public $pager;
public $strings; public $strings;
public $basepath; public $basepath;
@ -289,6 +293,14 @@ class App
// Register template engines // Register template engines
$this->register_template_engine('Friendica\Render\FriendicaSmartyEngine'); $this->register_template_engine('Friendica\Render\FriendicaSmartyEngine');
/**
* Load the configuration file which contains our DB credentials.
* Ignore errors. If the file doesn't exist or is empty, we are running in
* installation mode. *
*/
$this->mode = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? APP_MODE_NORMAL : APP_MODE_INSTALL);
self::$a = $this; self::$a = $this;
} }

View File

@ -17,8 +17,8 @@ use DOMDocument;
*/ */
class Install extends BaseObject class Install extends BaseObject
{ {
public static function setInstallMode($mode = true) { public static function setInstallMode() {
self::getApp()->install_mode = $mode; self::getApp()->mode = APP_MODE_INSTALL;
} }
public static function check($phpath = 'php') public static function check($phpath = 'php')
@ -328,4 +328,4 @@ class Install extends BaseObject
return $errors; return $errors;
} }
} }