public static function lance_maj($lang, $installed_version, $config_php_conges_version, $etape) { $PHP_SELF = $_SERVER['PHP_SELF']; include CONFIG_PATH . 'dbconnect.php'; //*** ETAPE 0 if ($etape == 0) { //avant tout , on conseille une sauvegarde de la database !! (cf vieux index.php) echo "<h3>" . _('install_maj_passer_de') . " <font color=\"black\">{$installed_version}</font> " . _('install_maj_a_version') . " <font color=\"black\">{$config_php_conges_version}</font> .</h3>\n"; echo "<h3><font color=\"red\">" . _('install_maj_sauvegardez') . " !!!</font></h3>\n"; echo "<h2>....</h2>\n"; echo "<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"etape\" value=\"1\">\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_continuer') . "\">\n"; echo "</form>\n"; echo "<br><br>\n"; } elseif ($etape == 1) { //verif si create / alter table possible !!! if (!\install\Fonctions::test_create_table()) { echo "<font color=\"red\"><b>CREATE TABLE</b> " . _('install_impossible_sur_db') . " <b>{$mysql_database}</b> (" . _('install_verif_droits_mysql') . " <b>{$mysql_user}</b>)...</font><br> \n"; echo "<br>puis ...<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"etape\"value=\"1\" >\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; } elseif (!\install\Fonctions::test_alter_table()) { echo "<font color=\"red\"><b>ALTER TABLE</b> " . _('install_impossible_sur_db') . " <b>{$mysql_database}</b> (" . _('install_verif_droits_mysql') . " <b>{$mysql_user}</b>)...</font><br> \n"; echo "<br>puis ...<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"etape\"value=\"1\" >\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; } elseif (!\install\Fonctions::test_drop_table()) { echo "<font color=\"red\"><b>DROP TABLE</b> " . _('install_impossible_sur_db') . " <b>{$mysql_database}</b> (" . _('install_verif_droits_mysql') . " <b>{$mysql_user}</b>)...</font><br> \n"; echo "<br>puis ...<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\">\n"; echo "<input type=\"hidden\" name=\"etape\"value=\"1\" >\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; } else { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?etape=2&version={$installed_version}&lang={$lang}\">"; } } elseif ($etape == 2) { $start_version = $installed_version; //on lance l'execution (include) des scripts d'upgrade l'un après l'autre jusqu a la version voulue ($config_php_conges_version) .. if ($start_version == "1.5.0" || $start_version == "1.5.1") { $file_upgrade = 'upgrade_from_v1.5.0.php'; $new_installed_version = "1.6.0"; // execute le script php d'upgrade de la version1.5.0 (vers la suivante (1.6.0)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.6.0") { $file_upgrade = 'upgrade_from_v1.6.0.php'; $new_installed_version = "1.7.0"; // execute le script php d'upgrade de la version1.6.0 (vers la suivante (1.7.0)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.7.0") { $file_upgrade = 'upgrade_from_v1.7.0.php'; $new_installed_version = "1.8"; // execute le script php d'upgrade de la version1.7.0 (vers la suivante (1.8)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } else { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?etape=5&version={$new_installed_version}&lang={$lang}\">"; } } elseif ($etape == 3) { // FIN // test si fichiers config.php ou config_old.php existent encore (si oui : demande de les éffacer ! if (\install\Fonctions::test_config_file() || \install\Fonctions::test_old_config_file()) { if (test_config_file()) { echo _('install_le_fichier') . " <b>\"config.php\"</b> " . _('install_remove_fichier') . ".<br> \n"; } if (test_old_config_file()) { echo _('install_le_fichier') . " <b>\"install/config_old.php\"</b> " . _('install_remove_fichier') . ".<br> \n"; } echo "<br><a href=\"{$PHP_SELF}?etape=5&version={$config_php_conges_version}&lang={$lang}\">" . _('install_reload_page') . " ....</a><br>\n"; } else { // mise à jour de la "installed_version" et de la langue dans la table conges_config $sql_update_version = "UPDATE conges_config SET conf_valeur = '{$config_php_conges_version}' WHERE conf_nom='installed_version' "; $result_update_version = \includes\SQL::query($sql_update_version); $sql_update_lang = "UPDATE conges_config SET conf_valeur = '{$lang}' WHERE conf_nom='lang' "; $result_update_lang = \includes\SQL::query($sql_update_lang); $comment_log = _('install_maj_titre_2') . " (version {$installed_version} --> version {$config_php_conges_version}) "; log_action(0, "", "", $comment_log); // on propose la page de config .... echo "<br><br><h2>" . _('install_ok') . " !</h2><br>\n"; echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL=../config/\">"; } } }
function lance_maj($lang, $installed_version, $config_php_conges_version, $etape, $DEBUG = FALSE) { if ($DEBUG) { echo " lang = {$lang} ## etape = {$etape} ## version = {$installed_version}<br>\n"; } $PHP_SELF = $_SERVER['PHP_SELF']; include CONFIG_PATH . 'dbconnect.php'; //*** ETAPE 0 if ($etape == 0) { //avant tout , on conseille une sauvegarde de la database !! (cf vieux index.php) echo "<h3>" . _('install_maj_passer_de') . " <font color=\"black\">{$installed_version}</font> " . _('install_maj_a_version') . " <font color=\"black\">{$config_php_conges_version}</font> .</h3>\n"; echo "<h3><font color=\"red\">" . _('install_maj_sauvegardez') . " !!!</font></h3>\n"; echo "<h2>....</h2>\n"; echo "<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"etape\" value=\"1\">\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_continuer') . "\">\n"; echo "</form>\n"; echo "<br><br>\n"; } elseif ($etape == 1) { //verif si create / alter table possible !!! if (!test_create_table($DEBUG)) { echo "<font color=\"red\"><b>CREATE TABLE</b> " . _('install_impossible_sur_db') . " <b>{$mysql_database}</b> (" . _('install_verif_droits_mysql') . " <b>{$mysql_user}</b>)...</font><br> \n"; echo "<br>puis ...<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"etape\"value=\"1\" >\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; } elseif (!test_alter_table($DEBUG)) { echo "<font color=\"red\"><b>ALTER TABLE</b> " . _('install_impossible_sur_db') . " <b>{$mysql_database}</b> (" . _('install_verif_droits_mysql') . " <b>{$mysql_user}</b>)...</font><br> \n"; echo "<br>puis ...<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"etape\"value=\"1\" >\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; } elseif (!test_drop_table($DEBUG)) { echo "<font color=\"red\"><b>DROP TABLE</b> " . _('install_impossible_sur_db') . " <b>{$mysql_database}</b> (" . _('install_verif_droits_mysql') . " <b>{$mysql_user}</b>)...</font><br> \n"; echo "<br>puis ...<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\">\n"; echo "<input type=\"hidden\" name=\"etape\"value=\"1\" >\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; } else { if (!$DEBUG) { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?etape=2&version={$installed_version}&lang={$lang}\">"; } else { echo "<a href=\"{$PHP_SELF}?etape=2&version={$installed_version}&lang={$lang}\">" . _('install_etape') . " 1 OK</a><br>\n"; } } } elseif ($etape == 2) { // si on part d'une version <= v1.0 : on travaille sinon, on passe à l'étape 3 if (substr($installed_version, 0, 1) == "0" || $installed_version == "1.0") { //verif si la copie de l'ancien fichier de config est présent et lisible (install/config_old.php) if (!test_old_config_file($DEBUG)) { echo "<font color=\"red\">\n"; echo _('install_le_fichier') . " \"<b>install / config_old.php</b>\" " . _('install_inaccessible') . " !<br>\n"; echo _('install_maj_conserv_config') . "<br>\n"; echo _('install_maj_copy_config_file') . " \"<b>install</b>\" " . _('install_maj_whith_name') . " \"<b>config_old.php</b>\" " . _('install_maj_and') . "<br>\n"; echo _('install_maj_verif_droit_fichier') . " <br>\n"; echo "</font><br> \n"; echo "<br>" . _('install_puis') . " ...<br>\n"; echo "<form action=\"{$PHP_SELF}?lang={$lang}\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"etape\"value=\"2\" >\n"; echo "<input type=\"hidden\" name=\"version\" value=\"{$installed_version}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_continuer') . "\">\n"; echo "</form>\n"; } else { if (!$DEBUG) { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?etape=3&version={$installed_version}&lang={$lang}\">"; } else { echo "<a href=\"{$PHP_SELF}?etape=3&version={$installed_version}&lang={$lang}\">" . _('install_etape') . " 2 OK</a><br>\n"; } } } else { if (!$DEBUG) { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?etape=3&version={$installed_version}&lang={$lang}\">"; } else { echo "<a href=\"{$PHP_SELF}?etape=3&version={$installed_version}&lang={$lang}\">" . _('install_etape') . " 2 OK</a><br>\n"; } } } elseif ($etape == 3) { // ATTENTION on ne passe cette étape que si on est en version inferieure à 1.0 ! (donc en v0.xxx) (sinon on passe à l'étape 4) if (substr($installed_version, 0, 1) != "0") { if (!$DEBUG) { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?etape=4&version={$installed_version}&lang={$lang}\">"; } else { echo "<a href=\"{$PHP_SELF}?etape=4&version={$installed_version}&lang={$lang}\">" . _('install_etape') . " 3 OK</a><br>\n"; } } else { //on lance l'execution de fichier sql de migration l'un après l'autre jusqu a la version 0.10.1 .. $db_version = explode(".", $installed_version); $db_sub_version = (int) $db_version[1]; for ($i = $db_sub_version; $i <= 10; $i++) { if ($i == 10) { // si on en est à v0.10 on passe en v1.0 $sql_file = "sql/upgrade_v0.10_to_v1.0.sql"; } else { $j = $i + 1; $sql_file = "sql/upgrade_v0." . $i . "_to_v0." . $j . ".sql"; } if ($DEBUG) { echo "sql_file = {$sql_file}<br>\n"; } execute_sql_file($sql_file, $DEBUG); } if (!$DEBUG) { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?etape=4&version=1.0&lang={$lang}\">"; } else { echo "<a href=\"{$PHP_SELF}?etape=4&version=1.0&lang={$lang}\">" . _('install_etape') . " 3 OK</a><br>\n"; } } } elseif ($etape == 4) { // on est au moins à la version 1.0 .... // ensuite tout se fait en php (plus de script de migration sql) // on determine la version la + élevée entre $installed_version et 1.0 , et on part de celle là ! if (substr($installed_version, 0, 1) == "0") { $start_version = "1.0"; } else { $start_version = $installed_version; } //on lance l'execution (include) des scripts d'upgrade l'un après l'autre jusqu a la version voulue ($config_php_conges_version) .. if ($start_version == "1.0") { $file_upgrade = 'upgrade_from_v1.0.php'; $new_installed_version = "1.1"; // execute le script php d'upgrade de la version1.0 (vers la suivante (1.1)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.1") { $file_upgrade = 'upgrade_from_v1.1.php'; $new_installed_version = "1.1.1"; // execute le script php d'upgrade de la version1.1 (vers la suivante (1.1.1)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.1.1") { $file_upgrade = 'upgrade_from_v1.1.1.php'; $new_installed_version = "1.2"; // execute le script php d'upgrade de la version1.1.1 (vers la suivante (1.2)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.2") { $file_upgrade = 'upgrade_from_v1.2.php'; $new_installed_version = "1.2.1"; // execute le script php d'upgrade de la version1.2 (vers la suivante (1.2.1)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.2.1") { $file_upgrade = 'upgrade_from_v1.2.1.php'; $new_installed_version = "1.3.0"; // execute le script php d'upgrade de la version1.2.1 (vers la suivante (1.3.0)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.3.0") { $file_upgrade = 'upgrade_from_v1.3.0.php'; $new_installed_version = "1.3.1"; // execute le script php d'upgrade de la version1.3.0 (vers la suivante (1.3.1)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.3.1") { $file_upgrade = 'upgrade_from_v1.3.1.php'; $new_installed_version = "1.3.2"; // execute le script php d'upgrade de la version1.3.1 (vers la suivante (1.3.2)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.3.2") { $file_upgrade = 'upgrade_from_v1.3.2.php'; $new_installed_version = "1.4.0"; // execute le script php d'upgrade de la version1.3.1.2 (vers la suivante (1.4.0)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.4.0") { $file_upgrade = 'upgrade_from_v1.4.0.php'; $new_installed_version = "1.4.1"; // execute le script php d'upgrade de la version1.4.0 (vers la suivante (1.4.1)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.4.1" || $start_version == "1.4.2") { $file_upgrade = 'upgrade_from_v1.4.2.php'; $new_installed_version = "1.5.0"; // execute le script php d'upgrade de la version1.4.2 (vers la suivante (1.5.0)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.5.0" || $start_version == "1.5.1") { $file_upgrade = 'upgrade_from_v1.5.0.php'; $new_installed_version = "1.6.0"; // execute le script php d'upgrade de la version1.5.0 (vers la suivante (1.6.0)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } elseif ($start_version == "1.6.0") { $file_upgrade = 'upgrade_from_v1.6.0.php'; $new_installed_version = "1.7.0"; // execute le script php d'upgrade de la version1.6.0 (vers la suivante (1.7.0)) echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$file_upgrade}?version={$new_installed_version}&lang={$lang}\">"; } else { if (!$DEBUG) { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?etape=5&version=1.4.1&lang={$lang}\">"; } else { echo "<a href=\"{$PHP_SELF}?etape=5&version=1.5.0&lang={$lang}\">" . _('install_etape') . " 4 OK</a><br>\n"; } } } elseif ($etape == 5) { // FIN // test si fichiers config.php ou config_old.php existent encore (si oui : demande de les éffacer ! if (test_config_file($DEBUG) || test_old_config_file($DEBUG)) { if (test_config_file($DEBUG)) { echo _('install_le_fichier') . " <b>\"config.php\"</b> " . _('install_remove_fichier') . ".<br> \n"; } if (test_old_config_file($DEBUG)) { echo _('install_le_fichier') . " <b>\"install/config_old.php\"</b> " . _('install_remove_fichier') . ".<br> \n"; } echo "<br><a href=\"{$PHP_SELF}?etape=5&version={$config_php_conges_version}&lang={$lang}\">" . _('install_reload_page') . " ....</a><br>\n"; } else { // mise à jour de la "installed_version" et de la langue dans la table conges_config $sql_update_version = "UPDATE conges_config SET conf_valeur = '{$config_php_conges_version}' WHERE conf_nom='installed_version' "; $result_update_version = SQL::query($sql_update_version); $sql_update_lang = "UPDATE conges_config SET conf_valeur = '{$lang}' WHERE conf_nom='lang' "; $result_update_lang = SQL::query($sql_update_lang); $comment_log = "Mise a jour de php_conges (version {$installed_version} --> version {$config_php_conges_version}) "; log_action(0, "", "", $comment_log, $DEBUG); // on propose la page de config .... echo "<br><br><h2>" . _('install_ok') . " !</h2><br>\n"; echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL=../config/\">"; } } else { // rien, on ne devrait jammais arriver dans ce else !!! } }