From 18b6e57c0091dfdd14427c940346da59298b29eb Mon Sep 17 00:00:00 2001 From: Dan Untenzu Date: Mon, 16 Jan 2017 17:23:17 +0100 Subject: [PATCH 1/1] [FEATURE] Install script: Reduce test code Add some comments to enhance the readabillity in the installation script. Reduce footer includes and send all fatal errors to one function instead. Remove includes of installation depenend variables in the footer, if the installation script is not done yet. Move settings include to the top (this may help for future configuration tests). --- install.php | 67 +++++++++++++++++++++++++++-------------- lib/template/footer.php | 12 ++++++-- 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/install.php b/install.php index ae4bd99..b96593e 100644 --- a/install.php +++ b/install.php @@ -24,9 +24,14 @@ define ('QUOTE', "'"); define ('JIRAFEAU_CFG', JIRAFEAU_ROOT.'lib/config.local.php'); define ('JIRAFEAU_VAR_RAND_LENGTH', 15); +require (JIRAFEAU_ROOT . 'lib/config.original.php'); +require (JIRAFEAU_ROOT . 'lib/settings.php'); require (JIRAFEAU_ROOT . 'lib/functions.php'); require (JIRAFEAU_ROOT . 'lib/lang.php'); -require (JIRAFEAU_ROOT . 'lib/config.original.php'); + +/** + * Prepend used functions + **/ function jirafeau_quoted ($str) @@ -120,42 +125,62 @@ jirafeau_add_ending_slash ($path) return $path . ((substr ($path, -1) == '/') ? '' : '/'); } -if ($cfg['installation_done'] === true) +function +jirafeau_fatal_error($errorText) { - header('Location: index.php'); + echo '

Error

' . $errorText . '

'; + require (JIRAFEAU_ROOT . 'lib/template/footer.php'); exit; } +/** + * Check installation + **/ + +// Is the installation process done already? +// Then there is nothing to do here → redirect to the main page. +if ($cfg['installation_done'] === true) +{ + header('Location: index.php'); + exit; +} + +/** + * Prepare installation process + **/ + +require (JIRAFEAU_ROOT . 'lib/template/header.php'); + +// does the local configuration file exist? if (!file_exists (JIRAFEAU_CFG)) { - /* We try to create an empty one. */ + // show an error if it is not possible to create the file if (!@touch (JIRAFEAU_CFG)) { - require (JIRAFEAU_ROOT . 'lib/template/header.php'); - echo '

' . - t('The local configuration file could not be created. Create a ' . + jirafeau_fatal_error( + t('The local configuration file could not be created. Create a ' . 'lib/config.local.php file and give the write ' . 'permission to the web server (preferred solution), or give the ' . 'write permission to the web server on the lib ' . - 'directory.') . - '

'; - require (JIRAFEAU_ROOT . 'lib/template/footer.php'); - exit; + 'directory.') + ); } } +// is the local configuration writable? if (!is_writable (JIRAFEAU_CFG) && !@chmod (JIRAFEAU_CFG, '0666')) { - require (JIRAFEAU_ROOT . 'lib/template/header.php'); - echo '

' . - t('The local configuration is not writable by the web server. ' . - 'Give the write permission to the web server on the ' . - 'lib/config.local.php file.') . - '

'; - require (JIRAFEAU_ROOT . 'lib/template/footer.php'); - exit; + jirafeau_fatal_error( + t('The local configuration is not writable by the web server. ' . + 'Give the write permission to the web server on the ' . + 'lib/config.local.php file.') + ); } +/** + * Run trough each installation step + **/ + if (isset ($_POST['step']) && isset ($_POST['next'])) { switch ($_POST['step']) @@ -185,9 +210,6 @@ if (isset ($_POST['step']) && isset ($_POST['next'])) } -require (JIRAFEAU_ROOT . 'lib/settings.php'); -require (JIRAFEAU_ROOT . 'lib/template/header.php'); - $current = 1; if (isset ($_POST['next'])) $current = $_POST['step'] + 1; @@ -367,4 +389,3 @@ break; } require (JIRAFEAU_ROOT . 'lib/template/footer.php'); -?> diff --git a/lib/template/footer.php b/lib/template/footer.php index a8c080d..3abc290 100644 --- a/lib/template/footer.php +++ b/lib/template/footer.php @@ -2,9 +2,17 @@ -- 2.34.1