From 8448fca1f11f69e29bca568cb0042e83dd6be89e Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 03 Jul 2009 09:38:30 -0400
Subject: [PATCH] Let internal 'template_container' hook append to existing content

---
 installer/check.php |   51 ++++++++++++++++++++++++++-------------------------
 1 files changed, 26 insertions(+), 25 deletions(-)

diff --git a/installer/check.php b/installer/check.php
index 9f54d8f..848131e 100644
--- a/installer/check.php
+++ b/installer/check.php
@@ -1,18 +1,22 @@
+<form action="index.php" method="get">
 <?php
 
-$required_php_exts = array('PCRE' => 'pcre', 'Session' => 'session', 'Sockets' => 'sockets');
+$required_php_exts = array('PCRE' => 'pcre', 'DOM' => 'dom', 'Session' => 'session');
 
-$optional_php_exts = array('FileInfo' => 'fileinfo', 'Libiconv' => 'iconv', 'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl');
+$optional_php_exts = array('FileInfo' => 'fileinfo', 'Libiconv' => 'iconv',
+    'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl', 'Mcrypt' => 'mcrypt',
+    'GD' => 'gd');
 
-$required_libs = array('PEAR' => 'PEAR.php', 'DB' => 'DB.php', 'MDB2' => 'MDB2.php',
-    'Net_SMTP' => 'Net/SMTP.php', 'Mail_mime' => 'Mail/mime.php', 'iilConnection' => 'lib/imap.inc');
+$required_libs = array('PEAR' => 'PEAR.php', 'MDB2' => 'MDB2.php',
+    'Net_SMTP' => 'Net/SMTP.php', 'Mail_mime' => 'Mail/mime.php',
+    'iilConnection' => 'lib/imap.inc');
 
 $supported_dbs = array('MySQL' => 'mysql', 'MySQLi' => 'mysqli',
     'PostgreSQL' => 'pgsql', 'SQLite (v2)' => 'sqlite');
 
 $ini_checks = array('file_uploads' => 1, 'session.auto_start' => 0,
-    'magic_quotes_gpc' => 0, 'magic_quotes_sybase' => 0,
-    'zlib.output_compression' => 0);
+    'zend.ze1_compatibility_mode' => 0, 'mbstring.func_overload' => 0,
+    'suhosin.session.encrypt' => 0);
 
 $source_urls = array(
     'Sockets' => 'http://www.php.net/manual/en/ref.sockets.php',
@@ -21,28 +25,28 @@
     'FileInfo' => 'http://www.php.net/manual/en/ref.fileinfo.php',
     'Libiconv' => 'http://www.php.net/manual/en/ref.iconv.php',
     'Multibyte' => 'http://www.php.net/manual/en/ref.mbstring.php',
+    'Mcrypt' => 'http://www.php.net/manual/en/ref.mcrypt.php',
     'OpenSSL' => 'http://www.php.net/manual/en/ref.openssl.php',
+    'GD' => 'http://www.php.net/manual/en/ref.image.php',
     'PEAR' => 'http://pear.php.net',
     'MDB2' => 'http://pear.php.net/package/MDB2',
     'Net_SMTP' => 'http://pear.php.net/package/Net_SMTP',
-    'Mail_mime' => 'http://pear.php.net/package/Mail_mime'
+    'Mail_mime' => 'http://pear.php.net/package/Mail_mime',
+    'DOM' => 'http://www.php.net/manual/en/intro.dom.php'
 );
 
+echo '<input type="hidden" name="_step" value="' . ($RCI->configured ? 3 : 2) . '" />';
 ?>
-
-<form action="index.php" method="get">
-<input type="hidden" name="_step" value="2" />
 
 <h3>Checking PHP version</h3>
 <?php
 
-if (phpversion() > 4.3) {
-    $RCI->pass('Version', 'PHP ' . phpversion() . ' detected');
+define('MIN_PHP_VERSION', '5.2.0');
+if (version_compare(PHP_VERSION, MIN_PHP_VERSION, '>=')) {
+    $RCI->pass('Version', 'PHP ' . PHP_VERSION . ' detected');
+} else {
+    $RCI->fail('Version', 'PHP Version ' . MIN_PHP_VERSION . ' or greater is required ' . PHP_VERSION . ' detected');
 }
-else {
-    $RCI->fail('Version', 'PHP Version 4.3.1 or greater is required');
-}
-
 ?>
 
 <h3>Checking PHP extensions</h3>
@@ -53,8 +57,7 @@
 foreach ($required_php_exts AS $name => $ext) {
     if (extension_loaded($ext)) {
         $RCI->pass($name);
-    }
-    else {
+    } else {
         $_ext = $prefix . $ext . '.' . PHP_SHLIB_SUFFIX;
         $msg = @dl($_ext) ? 'Could be loaded. Please add in php.ini' : '';
         $RCI->fail($name, $msg, $source_urls[$name]);
@@ -64,7 +67,7 @@
 
 ?>
 
-<p class="hint">These extensions are <em>optional</em> but recommended to get the best performance:</p>
+<p class="hint">The next couple of extensions are <em>optional</em> but recommended to get the best performance:</p>
 <?php
 
 foreach ($optional_php_exts AS $name => $ext) {
@@ -113,9 +116,6 @@
     if (class_exists($classname)) {
         $RCI->pass($classname);
     }
-    else if ($classname == 'DB' || ($classname == 'MDB2' && class_exists('DB'))) {
-        $RCI->na($classname, 'Use ' . ($classname == 'DB' ? 'MDB2' : 'DB') . ' instead');
-    }
     else {
         $RCI->fail($classname, "Failed to load $file", $source_urls[$classname]);
     }
@@ -143,10 +143,11 @@
 
 <?php
 
-if ($RCI->failures)
+if ($RCI->failures) {
   echo '<p class="warning">Sorry but your webserver does not meet the requirements for RoundCube!<br />
-            Please install the missing modules according to the above check results.</p>';
-
+            Please install the missing modules or fix the php.ini settings according to the above check results.<br />
+            Hint: only checks showing <span class="fail">NOT OK</span> need to be fixed.</p>';
+}
 echo '<p><br /><input type="submit" value="NEXT" ' . ($RCI->failures ? 'disabled' : '') . ' /></p>';
 
 ?>

--
Gitblit v1.9.1