Explorar o código

- Check for some optional extensions (mcrypt, ldap,...) during the setup at tell the user what are the consequences.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@700 a333f486-631f-4898-b8df-5754b55c2be0
dflaven %!s(int64=15) %!d(string=hai) anos
pai
achega
c261fb382a
Modificáronse 1 ficheiros con 29 adicións e 0 borrados
  1. 29 0
      setup/index.php

+ 29 - 0
setup/index.php

@@ -166,10 +166,14 @@ function CheckPHPVersion(SetupWebPage $oP)
 		return false;
 	}
 	$aMandatoryExtensions = array('mysql', 'iconv', 'simplexml', 'soap');
+	$aOptionalExtensions = array('mcrypt' => 'Strong encryption will not be used.',
+								 'ldap' => 'LDAP authentication will be disabled.');
 	asort($aMandatoryExtensions); // Sort the list to look clean !
+	ksort($aOptionalExtensions); // Sort the list to look clean !
 	$aExtensionsOk = array();
 	$aMissingExtensions = array();
 	$aMissingExtensionsLinks = array();
+	// First check the mandatory extensions
 	foreach($aMandatoryExtensions as $sExtension)
 	{
 		if (extension_loaded($sExtension))
@@ -191,6 +195,31 @@ function CheckPHPVersion(SetupWebPage $oP)
 		$oP->error("Missing PHP extension(s): ".implode(', ', $aMissingExtensionsLinks).".");
 		$bResult = false;
 	}
+	// Next check the optional extensions
+	$aExtensionsOk = array();
+	$aMissingExtensions = array();
+	foreach($aOptionalExtensions as $sExtension => $sMessage)
+	{
+		if (extension_loaded($sExtension))
+		{
+			$aExtensionsOk[] = $sExtension;
+		}
+		else
+		{
+			$aMissingExtensions[$sExtension] = $sMessage;
+		}
+	}
+	if (count($aExtensionsOk) > 0)
+	{
+		$oP->ok("Optional PHP extension(s): ".implode(', ', $aExtensionsOk).".");
+	}
+	if (count($aMissingExtensions) > 0)
+	{
+		foreach($aMissingExtensions as $sExtension => $sMessage)
+		{
+			$oP->warning("Missing optional PHP extension: $sExtension. ".$sMessage);
+		}
+	}
 	// Check some ini settings here
 	if (function_exists('php_ini_loaded_file')) // PHP >= 5.2.4
 	{