From 7a7c25aeff3073b21afe326c16b092f91ddbfb6c Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 21 Jun 2013 06:40:26 -0400
Subject: [PATCH] Fix so valid and set date.timezone is not required by installer checks (#1489180)

---
 CHANGELOG           |    1 +
 installer/check.php |   39 +++++++++++++++++++++++----------------
 2 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 6926de5..7c759db 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix so valid and set date.timezone is not required by installer checks (#1489180)
 - Canonize boolean ini_get() results (#1489189)
 - Cache LDAP's user_specific search and use vlv for better performance (#1489186)
 - LDAP: auto-detect and use VLV indices for all search operations
diff --git a/installer/check.php b/installer/check.php
index 122437b..84a2a3f 100644
--- a/installer/check.php
+++ b/installer/check.php
@@ -42,12 +42,12 @@
     'suhosin.session.encrypt'       => 0,
     'magic_quotes_runtime'          => 0,
     'magic_quotes_sybase'           => 0,
-    'date.timezone'                 => '-NOTEMPTY-',
 );
 
 $optional_checks = array(
     // required for utils/modcss.inc, should we require this?
     'allow_url_fopen'  => 1,
+    'date.timezone'    => '-VALID-',
 );
 
 $source_urls = array(
@@ -189,23 +189,15 @@
     if ($val === '-NOTEMPTY-') {
         if (empty($status)) {
             $RCI->fail($var, "empty value detected");
-        } else if ($var == 'date.timezone') {
-            try {
-                $tz = new DateTimeZone($status);
-                $RCI->pass($var);
-            }
-            catch (Exception $e) {
-                $RCI->fail($var, "invalid value detected: $status");
-            }
-        } else {
+        }
+        else {
             $RCI->pass($var);
         }
-        echo '<br />';
-        continue;
     }
-    if (filter_var($status, FILTER_VALIDATE_BOOLEAN) == $val) {
+    else if (filter_var($status, FILTER_VALIDATE_BOOLEAN) == $val) {
         $RCI->pass($var);
-    } else {
+    }
+    else {
       $RCI->fail($var, "is '$status', should be '$val'");
     }
     echo '<br />';
@@ -227,9 +219,24 @@
         echo '<br />';
         continue;
     }
-    if (filter_var($status, FILTER_VALIDATE_BOOLEAN) == $val) {
+    if ($val === '-VALID-') {
+        if ($var == 'date.timezone') {
+            try {
+                $tz = new DateTimeZone($status);
+                $RCI->pass($var);
+            }
+            catch (Exception $e) {
+                $RCI->optfail($var, empty($status) ? "not set" : "invalid value detected: $status");
+            }
+        }
+        else {
+            $RCI->pass($var);
+        }
+    }
+    else if (filter_var($status, FILTER_VALIDATE_BOOLEAN) == $val) {
         $RCI->pass($var);
-    } else {
+    }
+    else {
       $RCI->optfail($var, "is '$status', could be '$val'");
     }
     echo '<br />';

--
Gitblit v1.9.1