2005-02-13 16:40:15 +01:00
< ? php
2012-09-20 09:13:02 +02:00
/* Copyright ( C ) 2004 - 2005 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2014-02-08 14:55:27 +01:00
* Copyright ( C ) 2004 - 2014 Laurent Destailleur < eldy @ users . sourceforge . net >
2012-09-20 09:13:02 +02:00
* Copyright ( C ) 2005 Marc Barilley / Ocebo < marc @ ocebo . com >
2012-12-30 15:11:07 +01:00
* Copyright ( C ) 2005 - 2012 Regis Houssin < regis . houssin @ capnetworks . com >
2013-05-04 01:22:09 +02:00
* Copyright ( C ) 2013 Juanjo Menent < jmenent @ 2 byte . es >
2005-02-13 16:40:15 +01:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2005-02-13 16:40:15 +01:00
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2011-08-01 01:24:38 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2005-02-13 16:40:15 +01:00
*/
/**
2008-11-14 11:08:57 +01:00
* \file htdocs / install / check . php
* \ingroup install
2010-11-11 00:54:59 +01:00
* \brief Test if file conf can be modified and if does not exists , test if install process can create it
2008-08-28 23:28:59 +02:00
*/
2012-08-23 02:46:16 +02:00
include_once 'inc.php' ;
2005-10-03 03:14:50 +02:00
2005-04-02 12:06:57 +02:00
$err = 0 ;
2005-10-03 03:14:50 +02:00
$allowinstall = 0 ;
$allowupgrade = 0 ;
2006-09-09 02:54:59 +02:00
$checksok = 1 ;
2005-02-13 16:40:15 +01:00
2012-10-13 13:56:37 +02:00
$setuplang = GETPOST ( " selectlang " , '' , 3 ) ? GETPOST ( " selectlang " , '' , 3 ) : $langs -> getDefaultLang ();
2005-10-30 02:07:00 +01:00
$langs -> setDefaultLang ( $setuplang );
2005-02-13 16:40:15 +01:00
$langs -> load ( " install " );
2012-04-08 23:18:36 +02:00
// Now we load forced value from install.forced.php file.
2011-07-30 16:56:11 +02:00
$useforcedwizard = false ;
2012-04-08 23:18:36 +02:00
$forcedfile = " ./install.forced.php " ;
if ( $conffile == " /etc/dolibarr/conf.php " ) $forcedfile = " /etc/dolibarr/install.forced.php " ;
2012-08-23 02:04:35 +02:00
if ( @ file_exists ( $forcedfile )) { $useforcedwizard = true ; include_once $forcedfile ; }
2008-04-20 14:35:28 +02:00
2010-10-09 13:11:03 +02:00
dolibarr_install_syslog ( " Dolibarr install/upgrade process started " );
2008-04-21 09:21:13 +02:00
2008-04-20 14:35:28 +02:00
2010-11-11 00:54:59 +01:00
2008-04-21 09:21:13 +02:00
/*
2008-08-28 23:28:59 +02:00
* View
*/
2006-06-17 16:13:49 +02:00
2010-11-11 00:54:59 +01:00
pHeader ( '' , '' ); // No next step for navigation buttons. Next step is defined by clik on links.
2009-08-08 18:26:06 +02:00
//print "<br>\n";
//print $langs->trans("InstallEasy")."<br><br>\n";
2006-09-09 02:54:59 +02:00
2013-03-24 07:11:44 +01:00
print '<b>' . $langs -> trans ( " MiscellaneousChecks " ) . " </b>:<br> \n " ;
2006-09-09 02:54:59 +02:00
2012-02-29 19:41:12 +01:00
// Check browser
$useragent = $_SERVER [ 'HTTP_USER_AGENT' ];
if ( ! empty ( $useragent ))
{
$tmp = getBrowserInfo ();
$browserversion = $tmp [ 'browserversion' ];
$browsername = $tmp [ 'browsername' ];
if ( $browsername == 'ie' && $browserversion < 7 ) print '<img src="../theme/eldy/img/warning.png" alt="Error"> ' . $langs -> trans ( " WarningBrowserTooOld " ) . " <br> \n " ;
}
2007-04-18 19:38:55 +02:00
2006-09-09 02:54:59 +02:00
// Check PHP version
2011-08-11 22:59:32 +02:00
if ( versioncompare ( versionphparray (), array ( 4 , 3 , 10 )) < 0 ) // Minimum to use (error if lower)
2006-09-09 02:54:59 +02:00
{
2009-12-01 11:45:15 +01:00
print '<img src="../theme/eldy/img/error.png" alt="Error"> ' . $langs -> trans ( " ErrorPHPVersionTooLow " , '4.3.10' );
2008-08-28 23:28:59 +02:00
$checksok = 0 ;
2006-09-09 02:54:59 +02:00
}
2011-08-11 22:59:32 +02:00
else if ( versioncompare ( versionphparray (), array ( 5 , 2 , 0 )) < 0 ) // Minimum supported (warning if lower)
2010-10-10 02:15:08 +02:00
{
2011-08-15 14:14:25 +02:00
print '<img src="../theme/eldy/img/warning.png" alt="Error"> ' . $langs -> trans ( " WarningPHPVersionTooLow " , '5.2.0' );
2011-11-26 15:34:12 +01:00
$checksok = 1 ;
2010-10-10 02:15:08 +02:00
}
2006-09-09 02:54:59 +02:00
else
{
2008-08-28 23:28:59 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " PHPVersion " ) . " " . versiontostring ( versionphparray ());
2006-09-09 02:54:59 +02:00
}
2008-05-28 00:45:23 +02:00
if ( empty ( $force_install_nophpinfo )) print ' (<a href="phpinfo.php" target="_blank">' . $langs -> trans ( " MoreInformation " ) . '</a>)' ;
2007-04-18 19:38:55 +02:00
print " <br> \n " ;
2006-09-09 02:54:59 +02:00
2007-03-06 19:30:16 +01:00
// Check PHP support for $_POST
if ( ! isset ( $_GET [ " testget " ]) && ! isset ( $_POST [ " testpost " ]))
{
2007-04-10 20:54:34 +02:00
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 " ;
2008-08-28 23:28:59 +02:00
$checksok = 0 ;
2007-03-06 19:30:16 +01:00
}
else
{
2008-08-28 23:28:59 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " PHPSupportPOSTGETOk " ) . " <br> \n " ;
2007-03-06 19:30:16 +01:00
}
2007-04-18 19:38:55 +02:00
// Check if sessions enabled
2006-09-09 02:54:59 +02:00
if ( ! function_exists ( " session_id " ))
{
2008-08-28 23:28:59 +02:00
print '<img src="../theme/eldy/img/error.png" alt="Error"> ' . $langs -> trans ( " ErrorPHPDoesNotSupportSessions " ) . " <br> \n " ;
$checksok = 0 ;
2006-09-09 02:54:59 +02:00
}
else
{
2008-08-28 23:28:59 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " PHPSupportSessions " ) . " <br> \n " ;
2006-09-09 02:54:59 +02:00
}
2005-02-13 16:40:15 +01:00
2007-09-27 00:23:03 +02:00
2008-11-14 11:08:57 +01:00
// Check if GD supported
2007-11-07 18:38:53 +01:00
if ( ! function_exists ( " imagecreate " ))
2007-11-07 18:37:54 +01:00
{
2008-05-26 23:27:50 +02:00
$langs -> load ( " errors " );
2008-08-28 23:28:59 +02:00
print '<img src="../theme/eldy/img/warning.png" alt="Error"> ' . $langs -> trans ( " ErrorPHPDoesNotSupportGD " ) . " <br> \n " ;
// $checksok=0; // If image ko, just warning. So check must still be 1 (otherwise no way to install)
2007-11-07 18:37:54 +01:00
}
else
{
2008-08-28 23:28:59 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " PHPSupportGD " ) . " <br> \n " ;
2007-11-07 18:37:54 +01:00
}
2008-11-14 11:08:57 +01:00
// Check if UTF8 supported
if ( ! function_exists ( " utf8_encode " ))
{
$langs -> load ( " errors " );
print '<img src="../theme/eldy/img/warning.png" alt="Error"> ' . $langs -> trans ( " ErrorPHPDoesNotSupportUTF8 " ) . " <br> \n " ;
// $checksok=0; // If image ko, just warning. So check must still be 1 (otherwise no way to install)
}
else
{
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " PHPSupportUTF8 " ) . " <br> \n " ;
}
2012-05-28 22:39:04 +02:00
2008-11-14 11:08:57 +01:00
2007-09-27 00:23:03 +02:00
// Check memory
2012-09-20 09:13:02 +02:00
$memrequiredorig = '64M' ;
$memrequired = 64 * 1024 * 1024 ;
2007-10-04 01:38:33 +02:00
$memmaxorig =@ ini_get ( " memory_limit " );
$memmax =@ ini_get ( " memory_limit " );
if ( $memmaxorig != '' )
2007-09-27 00:23:03 +02:00
{
2009-10-22 19:56:57 +02:00
preg_match ( '/([0-9]+)([a-zA-Z]*)/i' , $memmax , $reg );
2007-10-04 01:38:33 +02:00
if ( $reg [ 2 ])
{
if ( strtoupper ( $reg [ 2 ]) == 'M' ) $memmax = $reg [ 1 ] * 1024 * 1024 ;
if ( strtoupper ( $reg [ 2 ]) == 'K' ) $memmax = $reg [ 1 ] * 1024 ;
}
if ( $memmax >= $memrequired )
{
2008-08-28 23:28:59 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " PHPMemoryOK " , $memmaxorig , $memrequiredorig ) . " <br> \n " ;
2007-10-04 01:38:33 +02:00
}
else
2008-08-28 23:28:59 +02:00
{
print '<img src="../theme/eldy/img/warning.png" alt="Warning"> ' . $langs -> trans ( " PHPMemoryTooLow " , $memmaxorig , $memrequiredorig ) . " <br> \n " ;
2007-10-04 01:38:33 +02:00
}
2007-09-27 00:23:03 +02:00
}
2007-11-07 18:37:54 +01:00
2009-10-06 01:04:05 +02:00
// If config file presente and filled
2005-11-03 19:00:17 +01:00
clearstatcache ();
if ( is_readable ( $conffile ) && filesize ( $conffile ) > 8 )
2005-02-13 16:40:15 +01:00
{
2010-10-09 13:11:03 +02:00
dolibarr_install_syslog ( " conf file ' $conffile ' already defined " );
2008-08-28 23:28:59 +02:00
$confexists = 1 ;
2012-08-23 02:04:35 +02:00
include_once $conffile ;
2008-08-28 23:28:59 +02:00
2010-09-29 10:09:17 +02:00
$databaseok = 1 ;
2009-10-06 01:04:05 +02:00
if ( $databaseok )
{
// Already installed for all parts (config and database). We can propose upgrade.
$allowupgrade = 1 ;
}
else
{
$allowupgrade = 0 ;
}
2005-02-13 16:40:15 +01:00
}
else
{
2009-10-06 01:04:05 +02:00
// If not, we create it
2010-10-09 13:11:03 +02:00
dolibarr_install_syslog ( " we try to create conf file ' $conffile ' " );
2008-08-28 23:28:59 +02:00
$confexists = 0 ;
2007-05-10 19:58:57 +02:00
2011-09-20 12:30:56 +02:00
// First we try by copying example
2008-03-17 23:43:58 +01:00
if ( @ copy ( $conffile . " .example " , $conffile ))
2007-05-10 19:58:57 +02:00
{
2011-09-20 12:30:56 +02:00
// Success
2010-10-09 13:11:03 +02:00
dolibarr_install_syslog ( " copied file " . $conffile . " .example into " . $conffile . " done successfully. " );
2007-05-10 19:58:57 +02:00
}
else
{
2011-09-20 12:30:56 +02:00
// If failed, we try to create an empty file
2011-09-03 01:09:39 +02:00
dolibarr_install_syslog ( " failed to copy file " . $conffile . " .example into " . $conffile . " . We try to create it. " , LOG_WARNING );
2007-05-10 19:58:57 +02:00
$fp = @ fopen ( $conffile , " w " );
if ( $fp )
{
@ fwrite ( $fp , '<?php' );
@ fputs ( $fp , " \n " );
@ fputs ( $fp , " ?> " );
fclose ( $fp );
}
2011-09-03 01:09:39 +02:00
else dolibarr_install_syslog ( " failed to create a new file " . $conffile . " into current dir " . getcwd () . " . Check permission. " , LOG_ERR );
2008-08-28 23:28:59 +02:00
}
2007-05-10 19:58:57 +02:00
2008-08-28 23:28:59 +02:00
// First install, on ne peut pas upgrader
$allowupgrade = 0 ;
2005-02-13 16:40:15 +01:00
}
2007-04-18 19:38:55 +02:00
2009-10-06 01:04:05 +02:00
// Si fichier absent et n'a pu etre cree
2006-09-09 02:54:59 +02:00
if ( ! file_exists ( $conffile ))
2005-02-13 16:40:15 +01:00
{
2011-07-30 12:23:24 +02:00
print '<img src="../theme/eldy/img/error.png" alt="Error"> ' . $langs -> trans ( " ConfFileDoesNotExistsAndCouldNotBeCreated " , $conffiletoshow );
2010-03-16 00:54:37 +01:00
print " <br><br> " ;
2011-07-30 12:23:24 +02:00
print $langs -> trans ( " YouMustCreateWithPermission " , $conffiletoshow );
2010-03-16 00:54:37 +01:00
print " <br><br> " ;
2008-08-28 23:28:59 +02:00
print $langs -> trans ( " CorrectProblemAndReloadPage " , $_SERVER [ 'PHP_SELF' ] . '?testget=ok' );
$err ++ ;
2005-02-13 16:40:15 +01:00
}
else
{
2009-10-06 01:04:05 +02:00
// Si fichier present mais ne peut etre modifie
2008-08-28 23:28:59 +02:00
if ( ! is_writable ( $conffile ))
{
if ( $confexists )
{
2011-07-30 12:23:24 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " ConfFileExists " , $conffiletoshow );
2008-08-28 23:28:59 +02:00
}
else
{
2011-07-30 12:23:24 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " ConfFileCouldBeCreated " , $conffiletoshow );
2008-08-28 23:28:59 +02:00
}
2010-03-16 00:54:37 +01:00
print " <br> " ;
2011-07-30 12:23:24 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Warning"> ' . $langs -> trans ( " ConfFileIsNotWritable " , $conffiletoshow );
2010-03-16 00:54:37 +01:00
print " <br> \n " ;
2008-08-28 23:28:59 +02:00
$allowinstall = 0 ;
}
2009-12-12 21:41:27 +01:00
// Si fichier present et peut etre modifie
2008-08-28 23:28:59 +02:00
else
{
if ( $confexists )
{
2011-07-30 12:23:24 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " ConfFileExists " , $conffiletoshow );
2008-08-28 23:28:59 +02:00
}
else
{
2011-07-30 12:23:24 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " ConfFileCouldBeCreated " , $conffiletoshow );
2008-08-28 23:28:59 +02:00
}
2010-03-16 00:54:37 +01:00
print " <br> " ;
2011-07-30 12:23:24 +02:00
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> ' . $langs -> trans ( " ConfFileIsWritable " , $conffiletoshow );
2010-03-16 00:54:37 +01:00
print " <br> \n " ;
2008-08-28 23:28:59 +02:00
$allowinstall = 1 ;
}
2010-03-16 00:54:37 +01:00
print " <br> \n " ;
2008-08-28 23:28:59 +02:00
2009-10-06 01:04:05 +02:00
// Si prerequis ok, on affiche le bouton pour passer a l'etape suivante
2006-09-09 02:54:59 +02:00
if ( $checksok )
{
2009-06-16 02:21:51 +02:00
$ok = 0 ;
// Try to create db connexion
if ( file_exists ( $conffile ))
{
2012-08-23 02:04:35 +02:00
include_once $conffile ;
2009-07-02 02:19:06 +02:00
if ( ! empty ( $dolibarr_main_db_type ) && ! empty ( $dolibarr_main_document_root ))
2009-06-16 02:21:51 +02:00
{
2011-10-24 11:25:54 +02:00
if ( ! file_exists ( $dolibarr_main_document_root . " /core/lib/admin.lib.php " ))
2009-06-16 02:21:51 +02:00
{
2011-07-30 12:23:24 +02:00
print '<font class="error">A ' . $conffiletoshow . ' file exists with a dolibarr_main_document_root to ' . $dolibarr_main_document_root . ' that seems wrong. Try to fix or remove the ' . $conffiletoshow . ' file.</font><br>' . " \n " ;
dol_syslog ( " A '. $conffiletoshow .' file exists with a dolibarr_main_document_root to " . $dolibarr_main_document_root . " that seems wrong. Try to fix or remove the '. $conffiletoshow .' file. " , LOG_WARNING );
2009-06-16 02:21:51 +02:00
}
2010-10-09 13:11:03 +02:00
else
{
2012-08-22 23:11:24 +02:00
require_once $dolibarr_main_document_root . '/core/lib/admin.lib.php' ;
2010-10-09 13:11:03 +02:00
// $conf is already instancied inside inc.php
$conf -> db -> type = $dolibarr_main_db_type ;
$conf -> db -> host = $dolibarr_main_db_host ;
$conf -> db -> port = $dolibarr_main_db_port ;
$conf -> db -> name = $dolibarr_main_db_name ;
$conf -> db -> user = $dolibarr_main_db_user ;
$conf -> db -> pass = $dolibarr_main_db_pass ;
2011-09-28 16:26:49 +02:00
$db = getDoliDBInstance ( $conf -> db -> type , $conf -> db -> host , $conf -> db -> user , $conf -> db -> pass , $conf -> db -> name , $conf -> db -> port );
2010-10-09 13:11:03 +02:00
if ( $db -> connected == 1 && $db -> database_selected == 1 )
{
$ok = 1 ;
}
}
2009-06-16 02:21:51 +02:00
}
}
2011-09-20 12:30:56 +02:00
// If a database access is available, we set more variable
2009-06-16 02:21:51 +02:00
if ( $ok )
{
2009-06-30 11:21:29 +02:00
if ( empty ( $dolibarr_main_db_encryption )) $dolibarr_main_db_encryption = 0 ;
$conf -> db -> dolibarr_main_db_encryption = $dolibarr_main_db_encryption ;
2009-07-02 02:19:06 +02:00
if ( empty ( $dolibarr_main_db_cryptkey )) $dolibarr_main_db_cryptkey = '' ;
2009-06-30 11:21:29 +02:00
$conf -> db -> dolibarr_main_db_cryptkey = $dolibarr_main_db_cryptkey ;
2009-07-02 02:19:06 +02:00
2009-06-16 02:21:51 +02:00
$conf -> setValues ( $db );
// Current version is $conf->global->MAIN_VERSION_LAST_UPGRADE
// Version to install is DOL_VERSION
2010-02-04 23:55:39 +01:00
$dolibarrlastupgradeversionarray = preg_split ( '/[\.-]/' , isset ( $conf -> global -> MAIN_VERSION_LAST_UPGRADE ) ? $conf -> global -> MAIN_VERSION_LAST_UPGRADE : ( isset ( $conf -> global -> MAIN_VERSION_LAST_INSTALL ) ? $conf -> global -> MAIN_VERSION_LAST_INSTALL : '' ));
2009-06-16 02:21:51 +02:00
$dolibarrversiontoinstallarray = versiondolibarrarray ();
}
2011-09-20 12:30:56 +02:00
// Show title
2009-12-01 12:19:26 +01:00
if ( ! empty ( $conf -> global -> MAIN_VERSION_LAST_UPGRADE ) || ! empty ( $conf -> global -> MAIN_VERSION_LAST_INSTALL ))
2009-08-04 16:36:29 +02:00
{
2009-12-01 12:19:26 +01:00
print $langs -> trans ( " VersionLastUpgrade " ) . ': <b><font class="ok">' . ( empty ( $conf -> global -> MAIN_VERSION_LAST_UPGRADE ) ? $conf -> global -> MAIN_VERSION_LAST_INSTALL : $conf -> global -> MAIN_VERSION_LAST_UPGRADE ) . '</font></b><br>' ;
2009-08-08 18:26:06 +02:00
print $langs -> trans ( " VersionProgram " ) . ': <b><font class="ok">' . DOL_VERSION . '</font></b>' ;
2009-08-04 16:36:29 +02:00
//print ' '.img_warning($langs->trans("RunningUpdateProcessMayBeRequired"));
print '<br>' ;
print '<br>' ;
}
2010-03-16 00:54:37 +01:00
else print " <br> \n " ;
2009-08-04 16:36:29 +02:00
2009-08-08 18:26:06 +02:00
print $langs -> trans ( " InstallEasy " ) . " " ;
2009-08-04 16:36:29 +02:00
print $langs -> trans ( " ChooseYourSetupMode " );
2009-12-04 11:14:51 +01:00
2009-10-29 23:28:03 +01:00
$foundrecommandedchoice = 0 ;
2009-12-04 11:14:51 +01:00
2009-08-08 18:48:40 +02:00
// Array of install choices
2012-01-04 11:44:15 +01:00
print '<table width="100%" class="listofchoices">' ;
2009-08-04 16:36:29 +02:00
2011-09-20 12:30:56 +02:00
// Show first install line
2013-04-25 01:13:13 +02:00
print '<tr class="listofchoices"><td class="listofchoices nowrap" align="center"><b>' . $langs -> trans ( " FreshInstall " ) . '</b>' ;
2009-10-29 23:28:03 +01:00
print '</td>' ;
2012-01-04 11:44:15 +01:00
print '<td class="listofchoices">' ;
2009-10-29 23:28:03 +01:00
print $langs -> trans ( " FreshInstallDesc " );
if ( empty ( $dolibarr_main_db_host )) // This means install process was not run
{
print '<br>' ;
//print $langs->trans("InstallChoiceRecommanded",DOL_VERSION,$conf->global->MAIN_VERSION_LAST_UPGRADE);
print '<center><div class="ok">' . $langs -> trans ( " InstallChoiceSuggested " ) . '</div></center>' ;
// <img src="../theme/eldy/img/tick.png" alt="Ok"> ';
$foundrecommandedchoice = 1 ; // To show only once
}
print '</td>' ;
2012-01-04 11:44:15 +01:00
print '<td class="listofchoices" align="center">' ;
2009-08-04 16:36:29 +02:00
if ( $allowinstall )
{
2012-10-07 20:04:07 +02:00
print '<a class="button" href="fileconf.php?selectlang=' . $setuplang . '">' . $langs -> trans ( " Start " ) . '</a>' ;
2009-08-04 16:36:29 +02:00
}
else
{
print $langs -> trans ( " InstallNotAllowed " );
}
print '</td>' ;
print '</tr>' . " \n " ;
2011-09-20 12:30:56 +02:00
// Show upgrade lines
2009-08-04 16:36:29 +02:00
$allowupgrade = true ;
2009-10-29 23:28:03 +01:00
if ( empty ( $dolibarr_main_db_host )) // This means install process was not run
{
$allowupgrade = false ;
}
2009-08-08 18:26:06 +02:00
if ( defined ( " MAIN_NOT_INSTALLED " )) $allowupgrade = false ;
2009-08-04 16:36:29 +02:00
$migrationscript = array ( //array('from'=>'2.0.0', 'to'=>'2.1.0'),
//array('from'=>'2.1.0', 'to'=>'2.2.0'),
2012-10-07 20:04:07 +02:00
//array('from'=>'2.2.0', 'to'=>'2.4.0'),
//array('from'=>'2.4.0', 'to'=>'2.5.0'),
//array('from'=>'2.5.0', 'to'=>'2.6.0'),
2009-12-04 11:14:51 +01:00
array ( 'from' => '2.6.0' , 'to' => '2.7.0' ),
2010-02-18 10:04:55 +01:00
array ( 'from' => '2.7.0' , 'to' => '2.8.0' ),
2010-08-09 21:08:22 +02:00
array ( 'from' => '2.8.0' , 'to' => '2.9.0' ),
2012-04-11 16:52:55 +02:00
array ( 'from' => '2.9.0' , 'to' => '3.0.0' ),
array ( 'from' => '3.0.0' , 'to' => '3.1.0' ),
array ( 'from' => '3.1.0' , 'to' => '3.2.0' ),
2013-01-12 14:34:16 +01:00
array ( 'from' => '3.2.0' , 'to' => '3.3.0' ),
2013-05-04 01:22:09 +02:00
array ( 'from' => '3.3.0' , 'to' => '3.4.0' ),
array ( 'from' => '3.4.0' , 'to' => '3.5.0' )
2013-01-12 14:34:16 +01:00
);
2009-08-04 16:36:29 +02:00
2009-08-14 02:30:43 +02:00
$count = 0 ;
2008-08-28 23:28:59 +02:00
foreach ( $migrationscript as $migarray )
{
2009-08-14 02:30:43 +02:00
$count ++ ;
2014-02-10 16:09:21 +01:00
$version = DOL_VERSION ;
2014-02-08 14:55:27 +01:00
$versionfrom = $migarray [ 'from' ];
2011-07-12 22:48:08 +02:00
$versionto = $migarray [ 'to' ];
2014-02-08 14:55:27 +01:00
$versionarray = preg_split ( '/[\.-]/' , $version );
2011-07-12 22:48:08 +02:00
$dolibarrversionfromarray = preg_split ( '/[\.-]/' , $versionfrom );
$dolibarrversiontoarray = preg_split ( '/[\.-]/' , $versionto );
2014-02-08 14:55:27 +01:00
// Define string newversionxxx that are used for text to show
$newversionfrom = preg_replace ( '/(\.[0-9]+)$/i' , '.*' , $versionfrom );
$newversionto = preg_replace ( '/(\.[0-9]+)$/i' , '.*' , $versionto );
2011-07-12 22:48:08 +02:00
$newversionfrombis = '' ;
2014-02-10 16:09:21 +01:00
if ( versioncompare ( $dolibarrversiontoarray , $versionarray ) < - 2 ) // From x.y.z -> x.y.z+1
2014-02-08 14:55:27 +01:00
{
$newversionfrombis = ' ' . $langs -> trans ( " or " ) . ' ' . $versionto ;
}
2013-04-25 01:13:13 +02:00
print '<tr class="listofchoices"><td class="listofchoices nowrap" align="center"><b>' . $langs -> trans ( " Upgrade " ) . '<br>' . $newversionfrom . $newversionfrombis . ' -> ' . $newversionto . '</b></td>' ;
2012-01-04 11:44:15 +01:00
print '<td class="listofchoices">' ;
2009-06-16 02:21:51 +02:00
print $langs -> trans ( " UpgradeDesc " );
2014-02-08 14:55:27 +01:00
2009-08-04 16:36:29 +02:00
if ( $ok )
2009-06-16 02:21:51 +02:00
{
2014-02-08 14:55:27 +01:00
if ( count ( $dolibarrlastupgradeversionarray ) >= 2 ) // If a database access is available and last upgrade version is known
2009-06-16 02:21:51 +02:00
{
2009-08-04 16:36:29 +02:00
// Now we check if this is the first qualified choice
2014-02-08 14:55:27 +01:00
if ( $allowupgrade && empty ( $foundrecommandedchoice ) &&
2014-02-10 16:09:21 +01:00
( versioncompare ( $dolibarrversiontoarray , $dolibarrlastupgradeversionarray ) > 0 || versioncompare ( $dolibarrversiontoarray , $versionarray ) < - 2 )
2014-02-08 14:55:27 +01:00
)
2009-08-04 16:36:29 +02:00
{
print '<br>' ;
//print $langs->trans("InstallChoiceRecommanded",DOL_VERSION,$conf->global->MAIN_VERSION_LAST_UPGRADE);
2011-05-17 10:46:56 +02:00
print '<center><div class="ok">' . $langs -> trans ( " InstallChoiceSuggested " ) . '</div>' ;
2011-09-17 21:49:50 +02:00
if ( $count < count ( $migarray )) // There is other choices after
2011-05-17 10:46:56 +02:00
{
print $langs -> trans ( " MigrateIsDoneStepByStep " , DOL_VERSION );
}
print '</center>' ;
2009-08-04 16:36:29 +02:00
// <img src="../theme/eldy/img/tick.png" alt="Ok"> ';
$foundrecommandedchoice = 1 ; // To show only once
}
}
else {
// We can not recommand a choice.
2011-01-16 20:12:26 +01:00
// A version of install may be known, but we need last upgrade.
2009-06-16 02:21:51 +02:00
}
}
print '</td>' ;
2012-01-04 11:44:15 +01:00
print '<td class="listofchoices" align="center">' ;
2008-08-28 23:28:59 +02:00
if ( $allowupgrade )
{
2009-08-14 02:30:43 +02:00
// If it's not last updagre script, action = upgrade_tmp, if last action = upgrade
2012-10-07 20:04:07 +02:00
print '<a class="button" href="upgrade.php?action=upgrade' . ( $count < count ( $migrationscript ) ? '_' . $versionto : '' ) . '&selectlang=' . $setuplang . '&versionfrom=' . $versionfrom . '&versionto=' . $versionto . '">' . $langs -> trans ( " Start " ) . '</a>' ;
2008-08-28 23:28:59 +02:00
}
else
{
print $langs -> trans ( " NotAvailable " );
}
print '</td>' ;
print '</tr>' . " \n " ;
}
2009-06-16 02:21:51 +02:00
2008-08-28 23:28:59 +02:00
print '</table>' ;
print " \n " ;
2006-09-09 02:54:59 +02:00
}
2005-10-03 03:14:50 +02:00
2005-02-13 16:40:15 +01:00
}
2005-10-03 03:14:50 +02:00
2007-04-18 19:38:55 +02:00
2006-09-09 02:54:59 +02:00
pFooter ( 1 ); // 1 car ne doit jamais afficher bouton Suivant
2005-02-13 16:40:15 +01:00
?>