X-Git-Url: https://git.p6c8.net/jirafeau.git/blobdiff_plain/007a65603bef02ac7eeccaebaa5c643fc69f031b..0316db1a4d73d10c7c5fe5b12c8ff1407050914b:/install.php
diff --git a/install.php b/install.php
index 958aa1e..fbd3667 100644
--- a/install.php
+++ b/install.php
@@ -18,15 +18,17 @@
* along with this program. If not, see .
*/
define ('JIRAFEAU_ROOT', dirname (__FILE__) . '/');
-define ('NL', "\n");
-define ('QUOTE', "'");
-define ('JIRAFEAU_CFG', JIRAFEAU_ROOT.'lib/config.local.php');
+define ('JIRAFEAU_CFG', JIRAFEAU_ROOT . 'lib/config.local.php');
define ('JIRAFEAU_VAR_RAND_LENGTH', 15);
+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)
@@ -37,32 +39,17 @@ jirafeau_quoted ($str)
function
jirafeau_export_cfg ($cfg)
{
- $handle = fopen (JIRAFEAU_CFG, 'w');
- fwrite ($handle, ' $item)
- {
- fwrite ($handle, '$cfg[' . jirafeau_quoted ($key) . '] = ');
- if (is_bool ($item))
- fwrite ($handle, ($item ? 'true' : 'false'));
- else if (is_string ($item))
- fwrite ($handle, jirafeau_quoted ($item));
- else if (is_int ($item))
- fwrite ($handle, $item);
- else if (is_array ($item))
- fwrite ($handle, str_replace(array("\n", "\r"), "",
- var_export ($item, true)));
- else
- fwrite ($handle, 'null');
- fwrite ($handle, ';'.NL);
+ 'configuration items.') . ' */' . NL;
+ $content .= '$cfg = ' . var_export($cfg, true) . ';';
+
+ $fileWrite = file_put_contents(JIRAFEAU_CFG, $content);
+
+ if (false === $fileWrite) {
+ jirafeau_fatal_error(t('Can not write local configuration file'));
}
- /* No newline at the end of the file to be able to send headers. */
- fwrite ($handle, '?>');
- fclose ($handle);
}
function
@@ -120,42 +107,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 '
';
+ 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 +192,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;
@@ -202,8 +206,7 @@ case 1:
default:
?>