]> git.p6c8.net - jirafeau_mojo42.git/commitdiff
[FEATURE] Install script: Reduce test code
authorDan Untenzu <untenzu@webit.de>
Mon, 16 Jan 2017 16:23:17 +0000 (17:23 +0100)
committerJerome Jutteau <j.jutteau@gmail.com>
Thu, 19 Jan 2017 19:03:03 +0000 (19:03 +0000)
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
lib/template/footer.php

index ae4bd99b4d0df702fe9ae1161b4b4f50337556b5..b96593e67bb4983d470fba8029470fccf0eac521 100644 (file)
@@ -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 '<div class="error"><h2>Error</h2><p>' . $errorText . '</p></div>';
+    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 '<div class="error"><p>' .
-             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 ' .
                '<code>lib/config.local.php</code> file and give the write ' .
                'permission to the web server (preferred solution), or give the ' .
                'write permission to the web server on the <code>lib</code> ' .
-               'directory.') .
-             '</p></div>';
-        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 '<div class="error"><p>' .
-         t('The local configuration is not writable by the web server. ' .
-           'Give the write permission to the web server on the ' .
-           '<code>lib/config.local.php</code> file.') .
-         '</p></div>';
-    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 ' .
+            '<code>lib/config.local.php</code> 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');
-?>
index a8c080d0ba986101468b5d287c98dd463b839d75..3abc29099d2254fc272d2923ab6ad458008baf59 100644 (file)
@@ -2,9 +2,17 @@
 <div id="copyright">
     <p>
         <br />
+        <!-- Project links -->
         <a href="https://www.gnu.org/licenses/agpl.html"><abbr title="Affero General Public License">AGPL</abbr>v3</a> |
-        <a href="https://gitlab.com/mojo42/Jirafeau"><?php echo t('Jirafeau Project') ?></a> |
-        <a href="<?php echo rtrim($cfg['web_root'], '/') . '/tos.php'; ?>"><?php echo t('Term Of Service') ?></a>
+        <a href="https://gitlab.com/mojo42/Jirafeau"><?php echo t('Jirafeau Project') ?></a>
+        <!-- Installation dependend links -->
+        <?php
+        if (false === empty($cfg['web_root']))
+        {
+          echo ' | ';
+          echo '<a href="' . $cfg['web_root'] . '/tos.php">' . t('Term Of Service') . '</a>';
+        }
+        ?>
     </p>
 </div>
 </div>

patrick-canterino.de