From eaacc88183222375ee7d07b5f811ba6bf7cbc34e Mon Sep 17 00:00:00 2001 From: nikrou Date: Fri, 4 Dec 2009 18:59:05 +0000 Subject: Feature 1255 : migration script git-svn-id: http://piwigo.org/svn/trunk@4423 68402e56-0260-453c-a942-63ccdbb3a9ee --- install.php | 125 ++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 96 insertions(+), 29 deletions(-) (limited to 'install.php') diff --git a/install.php b/install.php index 2f66dc7b7..81f936a32 100644 --- a/install.php +++ b/install.php @@ -122,9 +122,31 @@ $admin_mail = (!empty($_POST['admin_mail'])) ? $_POST['admin_mail'] : ''; $infos = array(); $errors = array(); +// database config file migration : mysql.inc.php et config_database.inc.php +$old_config_file = PHPWG_ROOT_PATH . 'include/mysql.inc.php'; +$config_file = PHPWG_ROOT_PATH . 'include/config_database.inc.php'; +if (!file_exists($config_file) && file_exists($old_config_file)) +{ + $step = 3; + include $old_config_file; + $file_content = ''; +} // Open config.php ... if it exists -$config_file = PHPWG_ROOT_PATH.'include/config_database.inc.php'; -if (@file_exists($config_file)) +elseif (@file_exists($config_file)) { include($config_file); // Is Piwigo already installed ? @@ -175,9 +197,12 @@ else { } define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); -load_language( 'common.lang', '', array('language'=>$language, 'target_charset'=>'utf-8') ); -load_language( 'admin.lang', '', array('language'=>$language, 'target_charset'=>'utf-8') ); -load_language( 'install.lang', '', array('language'=>$language, 'target_charset'=>'utf-8') ); +if ($step != 3) +{ + load_language('common.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); + load_language('admin.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); + load_language('install.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); +} //------------------------------------------------- check php version if (version_compare(PHP_VERSION, REQUIRED_PHP_VERSION, '<')) @@ -188,8 +213,11 @@ if (version_compare(PHP_VERSION, REQUIRED_PHP_VERSION, '<')) //----------------------------------------------------- template initialization include( PHPWG_ROOT_PATH .'include/template.class.php'); $template = new Template(PHPWG_ROOT_PATH.'admin/template/goto', 'roma'); -$template->set_filenames( array('install'=>'install.tpl') ); -$step = 1; +$template->set_filenames( array('install' => 'install.tpl') ); +if (!isset($step)) +{ + $step = 1; +} //---------------------------------------------------------------- form analyze if ( isset( $_POST['install'] )) { @@ -352,39 +380,78 @@ INSERT INTO piwigo_config (param,value,comment) } //------------------------------------------------------ start template output -$dbengines = available_engines(); +if ($step == 3) +{ + @umask(0111); + // writing the new configuration file + if ( !($fp = @fopen( $config_file, 'w' ))) + { + $html_content = htmlentities( $file_content, ENT_QUOTES ); + $html_content = nl2br( $html_content ); + $error_copy = l10n('Copy the text in pink between hyphens and paste it into the file "include/config_database.inc.php"(Warning : config_database.inc.php must only contain what is in pink, no line return or space character)'); + $error_copy .= '
--------------------------------------------------------------------
'; + $error_copy .= '' . $html_content . ''; + $error_copy .= '
--------------------------------------------------------------------
'; + } + else + { + @fputs($fp, $file_content, strlen($file_content)); + @fclose($fp); -foreach (get_languages('utf-8') as $language_code => $language_name) + @unlink($old_config_file); + header("Location: index.php"); + exit(); + } + + $template->assign( + array( + 'T_CONTENT_ENCODING' => 'utf-8', + 'migration' => true + )); +} +else { - if ($language == $language_code) + $dbengines = available_engines(); + + foreach (get_languages('utf-8') as $language_code => $language_name) { - $template->assign('language_selection', $language_code); + if ($language == $language_code) + { + $template->assign('language_selection', $language_code); + } + $languages_options[$language_code] = $language_name; } - $languages_options[$language_code] = $language_name; + $template->assign('language_options', $languages_options); + + $template->assign( + array( + 'T_CONTENT_ENCODING' => 'utf-8', + 'RELEASE' => PHPWG_VERSION, + 'F_ACTION' => 'install.php?language=' . $language, + 'F_DB_ENGINES' => $dbengines, + 'F_DB_LAYER' => $dblayer, + 'F_DB_HOST' => $dbhost, + 'F_DB_USER' => $dbuser, + 'F_DB_NAME' => $dbname, + 'F_DB_PREFIX' => $table_prefix, + 'F_ADMIN' => $admin_name, + 'F_ADMIN_EMAIL' => $admin_mail, + 'L_INSTALL_HELP' => sprintf(l10n('install_help'), PHPWG_URL.'/forum'), + )); } -$template->assign('language_options', $languages_options); - -$template->assign( - array( - 'T_CONTENT_ENCODING' => 'utf-8', - 'RELEASE' => PHPWG_VERSION, - 'F_ACTION' => 'install.php?language=' . $language, - 'F_DB_ENGINES' => $dbengines, - 'F_DB_LAYER' => $dblayer, - 'F_DB_HOST' => $dbhost, - 'F_DB_USER' => $dbuser, - 'F_DB_NAME' => $dbname, - 'F_DB_PREFIX' => $table_prefix, - 'F_ADMIN' => $admin_name, - 'F_ADMIN_EMAIL' => $admin_mail, - 'L_INSTALL_HELP' => sprintf(l10n('install_help'), PHPWG_URL.'/forum'), - )); //------------------------------------------------------ errors & infos display if ($step == 1) { $template->assign('install', true); } +elseif ($step == 3) +{ + if (isset($error_copy)) + { + array_push($errors, $error_copy); + } +} else { array_push($infos, l10n('install_end_message')); -- cgit v1.2.3