Example #1
0
// Scan les drivers
						$dir = DOL_DOCUMENT_ROOT . '/core/db';
						$handle = opendir($dir);
						if (is_resource($handle)) {
							while (($file = readdir($handle)) !== false) {
								if (is_readable($dir . "/" . $file) && preg_match('/^(.*)\.class\.php$/i', $file, $reg)) {
									$type = $reg[1];
									$class = 'DoliDB' . ucfirst($type);
									include_once($dir . "/" . $file);

									if ($type == 'sqlite')
										continue; // We hide sqlite because support can't be complete unti sqlit does not manage foreign key creation after table creation
// Version min of database
									$versionbasemin = getStaticMember($class, 'versionmin');
									$note = '(' . getStaticMember($class, 'label') . ' >= ' . versiontostring($versionbasemin) . ')';

									// Switch to mysql if mysqli is not present
									if ($defaultype == 'mysqli' && !function_exists('mysqli_connect'))
										$defaultype = 'mysql';

									// Show line into list
									if ($type == 'mysql') {
										$testfunction = 'mysql_connect';
										$testclass = '';
									}
									if ($type == 'mysqli') {
										$testfunction = 'mysqli_connect';
										$testclass = '';
									}
									if ($type == 'pgsql') {
Example #2
0
    if ($browsername == 'ie' && $browserversion < 7) {
        print '<img src="../theme/eldy/img/warning.png" alt="Error"> ' . $langs->trans("WarningBrowserTooOld") . "<br>\n";
    }
}
// Check PHP version
if (versioncompare(versionphparray(), array(5, 2, 3)) < 0) {
    print '<img src="../theme/eldy/img/error.png" alt="Error"> ' . $langs->trans("ErrorPHPVersionTooLow", '5.2.3');
    $checksok = 0;
    // 0=error, 1=warning
} else {
    if (versioncompare(versionphparray(), array(5, 3, 0)) < 0) {
        print '<img src="../theme/eldy/img/warning.png" alt="Error"> ' . $langs->trans("ErrorPHPVersionTooLow", '5.3.0');
        $checksok = 0;
        // 0=error, 1=warning
    } else {
        print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs->trans("PHPVersion") . " " . versiontostring(versionphparray());
    }
}
if (empty($force_install_nophpinfo)) {
    print ' (<a href="phpinfo.php" target="_blank">' . $langs->trans("MoreInformation") . '</a>)';
}
print "<br>\n";
// Check PHP support for $_POST
if (!isset($_GET["testget"]) && !isset($_POST["testpost"])) {
    print '<img src="../theme/eldy/img/warning.png" alt="Warning"> ' . $langs->trans("PHPSupportPOSTGETKo");
    print ' (<a href="' . $_SERVER["PHP_SELF"] . '?testget=ok">' . $langs->trans("Recheck") . '</a>)';
    print "<br>\n";
    $checksok = 0;
} else {
    print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs->trans("PHPSupportPOSTGETOk") . "<br>\n";
}
Example #3
0
/**
 *  Enable a module
 *
 *  @param      string		$value      Name of module to activate
 *  @param      int			$withdeps   Activate/Disable also all dependencies
 *  @return     string      			Error message or '';
 */
function activateModule($value, $withdeps = 1)
{
    global $db, $modules, $langs, $conf;
    // Check parameters
    if (empty($value)) {
        return 'ErrorBadParameter';
    }
    $ret = '';
    $modName = $value;
    $modFile = $modName . ".class.php";
    // Loop on each directory to fill $modulesdir
    $modulesdir = dolGetModulesDirs();
    // Loop on each modulesdir directories
    $found = false;
    foreach ($modulesdir as $dir) {
        if (file_exists($dir . $modFile)) {
            $found = @(include_once $dir . $modFile);
            if ($found) {
                break;
            }
        }
    }
    $objMod = new $modName($db);
    // Test if PHP version ok
    $verphp = versionphparray();
    $vermin = isset($objMod->phpmin) ? $objMod->phpmin : 0;
    if (is_array($vermin) && versioncompare($verphp, $vermin) < 0) {
        return $langs->trans("ErrorModuleRequirePHPVersion", versiontostring($vermin));
    }
    // Test if Dolibarr version ok
    $verdol = versiondolibarrarray();
    $vermin = isset($objMod->need_dolibarr_version) ? $objMod->need_dolibarr_version : 0;
    //print 'eee '.versioncompare($verdol,$vermin).' - '.join(',',$verdol).' - '.join(',',$vermin);exit;
    if (is_array($vermin) && versioncompare($verdol, $vermin) < 0) {
        return $langs->trans("ErrorModuleRequireDolibarrVersion", versiontostring($vermin));
    }
    // Test if javascript requirement ok
    if (!empty($objMod->need_javascript_ajax) && empty($conf->use_javascript_ajax)) {
        return $langs->trans("ErrorModuleRequireJavascript");
    }
    $result = $objMod->init();
    if ($result <= 0) {
        $ret = $objMod->error;
    }
    if (!$ret && $withdeps) {
        if (isset($objMod->depends) && is_array($objMod->depends) && !empty($objMod->depends)) {
            // Activation des modules dont le module depend
            $num = count($objMod->depends);
            for ($i = 0; $i < $num; $i++) {
                foreach ($modulesdir as $dir) {
                    if (file_exists($dir . $objMod->depends[$i] . ".class.php")) {
                        activateModule($objMod->depends[$i]);
                    }
                }
            }
        }
        if (isset($objMod->conflictwith) && is_array($objMod->conflictwith) && !empty($objMod->conflictwith)) {
            // Desactivation des modules qui entrent en conflit
            $num = count($objMod->conflictwith);
            for ($i = 0; $i < $num; $i++) {
                foreach ($modulesdir as $dir) {
                    if (file_exists($dir . $objMod->conflictwith[$i] . ".class.php")) {
                        unActivateModule($objMod->conflictwith[$i], 0);
                    }
                }
            }
        }
    }
    return $ret;
}
Example #4
0
/**
 *  Enable a module
 *  @param      value       Name of module to activate
 *  @param      withdeps    Activate/Disable also all dependencies
 *  @return     string      Error message or '';
 */
function Activate($value,$withdeps=1)
{
    global $db, $modules, $langs, $conf;

    $modName = $value;

    $ret='';

    // Activate module
    if ($modName)
    {
        $modFile = $modName . ".class.php";

        // Loop on each directory
        $found=false;
    	foreach ($conf->file->dol_document_root as $type => $dirroot)
        {
            $modulesdir[] = $dirroot."/includes/modules/";
            
            if ($type == 'alt')
			{	
				$handle=@opendir($dirroot);
				if (is_resource($handle))
				{
					while (($file = readdir($handle))!==false)
					{
					    if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes')
					    {
					    	if (is_dir($dirroot . '/' . $file . '/includes/modules/'))
					    	{
					    		$modulesdir[] = $dirroot . '/' . $file . '/includes/modules/';
					    	}
					    }
					}
					closedir($handle);
				}
			}
        }

        foreach ($modulesdir as $dir)
        {
        	if (file_exists($dir.$modFile))
        	{
        		$found=@include_once($dir.$modFile);
        		if ($found) break;
        	}
        }

        $objMod = new $modName($db);

        // Test if PHP version ok
        $verphp=versionphparray();
        $vermin=isset($objMod->phpmin)?$objMod->phpmin:0;
        if (is_array($vermin) && versioncompare($verphp,$vermin) < 0)
        {
            return $langs->trans("ErrorModuleRequirePHPVersion",versiontostring($vermin));
        }

        // Test if Dolibarr version ok
        $verdol=versiondolibarrarray();
        $vermin=isset($objMod->need_dolibarr_version)?$objMod->need_dolibarr_version:0;
        //print 'eee'.versioncompare($verdol,$vermin).join(',',$verdol).' - '.join(',',$vermin);exit;
        if (is_array($vermin) && versioncompare($verdol,$vermin) < 0)
        {
            return $langs->trans("ErrorModuleRequireDolibarrVersion",versiontostring($vermin));
        }

        // Test if javascript requirement ok
        if (! empty($objMod->need_javascript_ajax) && empty($conf->use_javascript_ajax))
        {
            return $langs->trans("ErrorModuleRequireJavascript");
        }

        $result=$objMod->init();
        if ($result <= 0) $ret=$objMod->error;
    }

    if (! $ret && $withdeps)
    {
        if (is_array($objMod->depends) && !empty($objMod->depends))
        {
            // Activation des modules dont le module depend
            for ($i = 0; $i < sizeof($objMod->depends); $i++)
            {
                if (file_exists(DOL_DOCUMENT_ROOT."/includes/modules/".$objMod->depends[$i].".class.php"))
                {
                    Activate($objMod->depends[$i]);
                }
            }
        }

        if (isset($objMod->conflictwith) && is_array($objMod->conflictwith))
        {
            // Desactivation des modules qui entrent en conflit
            for ($i = 0; $i < sizeof($objMod->conflictwith); $i++)
            {
                if (file_exists(DOL_DOCUMENT_ROOT."/includes/modules/".$objMod->conflictwith[$i].".class.php"))
                {
                    UnActivate($objMod->conflictwith[$i],0);
                }
            }
        }
    }

    return $ret;
}
Example #5
0
    		    {
    		        $type=$reg[1];

    		        // Version min de la base
    		        $versionbasemin=array();
    		        if ($type=='mysql')  { $versionbasemin=array(3,1,0); $testfunction='mysql_connect'; }
    		        if ($type=='mysqli') { $versionbasemin=array(4,1,0); $testfunction='mysqli_connect'; }
    		        if ($type=='pgsql')  { $versionbasemin=array(8,4,0); $testfunction='pg_connect'; }
    		        if ($type=='mssql')  { $versionbasemin=array(2000);  $testfunction='mssql_connect'; }

    		        // Remarques
    		        $note='';
    		        if ($type=='mysql') 	$note='(Mysql >= '.versiontostring($versionbasemin).')';
    		        if ($type=='mysqli') 	$note='(Mysql >= '.versiontostring($versionbasemin).')';
    		        if ($type=='pgsql') 	$note='(Postgresql >= '.versiontostring($versionbasemin).')';
    		        if ($type=='mssql') 	$note='(SQL Server >= '.versiontostring($versionbasemin).')';

    		        // Switch to mysql if mysqli is not present
    		        if ($defaultype=='mysqli' && !function_exists('mysqli_connect')) $defaultype = 'mysql';

    		        // Affiche ligne dans liste
    		        $option.='<option value="'.$type.'"'.($defaultype == $type?' selected="selected"':'');
    		        if (! function_exists($testfunction)) $option.=' disabled="disabled"';
    		        $option.='>';
    		        $option.=$type.'&nbsp; &nbsp;';
    		        if ($note) $option.=' '.$note;
    		        // Experimental
    		        if ($type=='pgsql')     $option.=' '.$langs->trans("Experimental");
    		        elseif ($type=='mssql') $option.=' '.$langs->trans("Experimental");
    		        // No available
    		        elseif (! function_exists($testfunction)) $option.=' - '.$langs->trans("FunctionNotAvailableInThisPHP");