Index: trunk/plugins/Installation/Controller.php
===================================================================
--- trunk/plugins/Installation/Controller.php	(revision 1153)
+++ trunk/plugins/Installation/Controller.php	(working copy)
@@ -84,9 +84,7 @@
 		
 		$view->showNextStep = !$view->problemWithSomeDirectories 
 							&& $view->infos['phpVersion_ok']
-							&& $view->infos['pdo_ok']
-							&& $view->infos['pdo_mysql_ok']
-
+							&& !count($view->infos['missing_extensions'])
 						;
 		$_SESSION['currentStepDone'] = __FUNCTION__;		
 
@@ -472,45 +470,38 @@
 		
 		$extensions = @get_loaded_extensions();
 		
-		$infos['pdo_ok'] = false;
-		if (in_array('PDO', $extensions))  
+		$needed_extensions = array('PDO', 'pdo_mysql', 'zlib', 'SPL');
+   $infos['missing_extensions'] = array();
+		foreach($needed_extensions as $needed_extension)
 		{
-		    $infos['pdo_ok'] = true;
+		  if(!in_array($needed_extension, $extensions))
+		  {
+		    $infos['missing_extensions'][] = $needed_extension;
+		  }
 		}
-				
-		$infos['pdo_mysql_ok'] = false;
-		if (in_array('pdo_mysql', $extensions))  
+
+		$needed_functions = array('set_time_limit', 'mail');
+   $infos['missing_functions'] = array();
+		foreach($needed_functions as $needed_function)
 		{
-		    $infos['pdo_mysql_ok'] = true;
+		  if (!function_exists($needed_function))
+		  {
+		    $infos['missing_functions'][] = $needed_function;
+		  }
 		}
-		
-		$infos['gd_ok'] = false;
-		if (in_array('gd', $extensions)) 
-		{
-		    $gdInfo = gd_info();
-			$infos['gd_version'] = $gdInfo['GD Version'];
-		    ereg ("([0-9]{1})", $gdInfo['GD Version'], $gdVersion);
-		    if($gdVersion[0] >= 2) 
-		    {
-				$infos['gd_ok'] = true;
-		    }
+
+   $infos['outdated_extensions'] = array();
+	  if(in_array('gd', $extensions))
+	  {
+		  $gdInfo = gd_info();
+		  $infos['gd_version'] = $gdInfo['GD Version'];
+		  ereg ("([0-9]{1})", $gdInfo['GD Version'], $gdVersion);
+		  if($gdVersion[0] < 2)
+		  {
+				  $infos['outdated_extensions'][] = 'gd';
+		  }
 		}
 			
 		$infos['serverVersion'] = addslashes($_SERVER['SERVER_SOFTWARE']);
 		$infos['serverOs'] = @php_uname();
 		$infos['serverTime'] = date('H:i:s');
-
-		$infos['setTimeLimit_ok'] = false;
-		if(function_exists( 'set_time_limit'))
-		{
-			$infos['setTimeLimit_ok'] = true;
-		}
-
-		$infos['mail_ok'] = false;
-		if(function_exists('mail'))
-		{
-			$infos['mail_ok'] = true;
-		}
 		
 		$infos['registerGlobals_ok'] = ini_get('register_globals') == 0;
 		$infos['memoryMinimum'] = $minimumMemoryLimit;
