feature 1630: upgrade to Piwigo 2.1 :-)
bug 1604: only activate core themes not all themes. git-svn-id: http://piwigo.org/svn/trunk@5982 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
aaa31653ee
commit
73db66afa5
11 changed files with 255 additions and 113 deletions
|
|
@ -33,7 +33,7 @@
|
||||||
* @param string replacing
|
* @param string replacing
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function execute_sqlfile($filepath, $replaced, $replacing)
|
function execute_sqlfile($filepath, $replaced, $replacing, $dblayer)
|
||||||
{
|
{
|
||||||
$sql_lines = file($filepath);
|
$sql_lines = file($filepath);
|
||||||
$query = '';
|
$query = '';
|
||||||
|
|
@ -54,12 +54,11 @@ function execute_sqlfile($filepath, $replaced, $replacing)
|
||||||
// we don't execute "DROP TABLE" queries
|
// we don't execute "DROP TABLE" queries
|
||||||
if (!preg_match('/^DROP TABLE/i', $query))
|
if (!preg_match('/^DROP TABLE/i', $query))
|
||||||
{
|
{
|
||||||
global $install_charset_collate;
|
if ('mysql' == $dblayer)
|
||||||
if ( !empty($install_charset_collate) )
|
|
||||||
{
|
{
|
||||||
if ( preg_match('/^(CREATE TABLE .*)[\s]*;[\s]*/im', $query, $matches) )
|
if ( preg_match('/^(CREATE TABLE .*)[\s]*;[\s]*/im', $query, $matches) )
|
||||||
{
|
{
|
||||||
$query = $matches[1].' '.$install_charset_collate.';';
|
$query = $matches[1].' DEFAULT CHARACTER SET utf8'.';';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pwg_query($query);
|
pwg_query($query);
|
||||||
|
|
@ -125,17 +124,20 @@ function available_engines()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Automatically activate all themes in the "themes" directory.
|
* Automatically activate all core themes in the "themes" directory.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function activate_all_themes()
|
function activate_core_themes()
|
||||||
{
|
{
|
||||||
include_once(PHPWG_ROOT_PATH.'admin/include/themes.class.php');
|
include_once(PHPWG_ROOT_PATH.'admin/include/themes.class.php');
|
||||||
$themes = new themes();
|
$themes = new themes();
|
||||||
foreach ($themes->fs_themes as $theme_id => $fs_theme)
|
foreach ($themes->fs_themes as $theme_id => $fs_theme)
|
||||||
{
|
{
|
||||||
$themes->perform_action('activate', $theme_id);
|
if (in_array($theme_id, array('Sylvia', 'clear', 'dark')))
|
||||||
|
{
|
||||||
|
$themes->perform_action('activate', $theme_id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -143,15 +145,15 @@ function install_db_connect(&$infos, &$errors)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$pwg_db_link = pwg_db_connect($_POST['dbhost'], $_POST['dbuser'],
|
$pwg_db_link = pwg_db_connect($_POST['dbhost'], $_POST['dbuser'], $_POST['dbpasswd'], $_POST['dbname']);
|
||||||
$_POST['dbpasswd'], $_POST['dbname']);
|
if ($pwg_db_link)
|
||||||
|
{
|
||||||
return $pwg_db_link;
|
pwg_db_check_version();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception $e)
|
catch (Exception $e)
|
||||||
{
|
{
|
||||||
array_push( $errors, l10n($e->getMessage()));
|
array_push( $errors, l10n($e->getMessage()));
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
@ -76,8 +76,6 @@ function deactivate_non_standard_plugins()
|
||||||
global $page;
|
global $page;
|
||||||
|
|
||||||
$standard_plugins = array(
|
$standard_plugins = array(
|
||||||
'add_index',
|
|
||||||
'admin_advices',
|
|
||||||
'admin_multi_view',
|
'admin_multi_view',
|
||||||
'c13y_upgrade',
|
'c13y_upgrade',
|
||||||
'event_tracer',
|
'event_tracer',
|
||||||
|
|
@ -221,8 +219,11 @@ function upgrade_db_connect()
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$pwg_db_link = pwg_db_connect($conf['db_host'], $conf['db_user'],
|
$pwg_db_link = pwg_db_connect($conf['db_host'], $conf['db_user'], $conf['db_password'], $conf['db_base']);
|
||||||
$conf['db_password'], $conf['db_base']);
|
if ($pwg_db_link)
|
||||||
|
{
|
||||||
|
pwg_db_check_version();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception $e)
|
catch (Exception $e)
|
||||||
{
|
{
|
||||||
|
|
@ -230,4 +231,33 @@ function upgrade_db_connect()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get languages defined in the language directory
|
||||||
|
*/
|
||||||
|
function get_fs_languages($target_charset = null)
|
||||||
|
{
|
||||||
|
if ( empty($target_charset) )
|
||||||
|
{
|
||||||
|
$target_charset = get_pwg_charset();
|
||||||
|
}
|
||||||
|
$target_charset = strtolower($target_charset);
|
||||||
|
|
||||||
|
$dir = opendir(PHPWG_ROOT_PATH.'language');
|
||||||
|
|
||||||
|
while ($file = readdir($dir))
|
||||||
|
{
|
||||||
|
$path = PHPWG_ROOT_PATH.'language/'.$file;
|
||||||
|
if (!is_link($path) and is_dir($path) and file_exists($path.'/iso.txt'))
|
||||||
|
{
|
||||||
|
list($language_name) = @file($path.'/iso.txt');
|
||||||
|
|
||||||
|
$languages[$file] = convert_charset($language_name, $target_charset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($dir);
|
||||||
|
@asort($languages);
|
||||||
|
|
||||||
|
return $languages;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
@ -52,18 +52,26 @@ function pwg_db_connect($host, $user, $password, $database)
|
||||||
|
|
||||||
function pwg_db_check_charset()
|
function pwg_db_check_charset()
|
||||||
{
|
{
|
||||||
defined('PWG_CHARSET') and defined('DB_CHARSET')
|
$db_charset = 'utf8';
|
||||||
or fatal_error('PWG_CHARSET and/or DB_CHARSET is not defined');
|
if (defined('DB_CHARSET') and DB_CHARSET != '')
|
||||||
if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') )
|
|
||||||
{
|
{
|
||||||
if (DB_CHARSET!='')
|
$db_charset = DB_CHARSET;
|
||||||
{
|
|
||||||
pwg_query('SET NAMES "'.DB_CHARSET.'"');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
elseif ( strtolower(PWG_CHARSET)!='iso-8859-1' )
|
pwg_query('SET NAMES "'.$db_charset.'"');
|
||||||
|
}
|
||||||
|
|
||||||
|
function pwg_db_check_version()
|
||||||
|
{
|
||||||
|
$current_mysql = pwg_get_db_version();
|
||||||
|
if (version_compare($current_mysql, REQUIRED_MYSQL_VERSION, '<'))
|
||||||
{
|
{
|
||||||
fatal_error('PWG supports only iso-8859-1 charset on MySql version '.mysql_get_server_info());
|
fatal_error(
|
||||||
|
sprintf(
|
||||||
|
'your MySQL version is too old, you have "%s" and you need at least "%s"',
|
||||||
|
$current_mysql,
|
||||||
|
REQUIRED_MYSQL_VERSION
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -694,7 +694,7 @@ SELECT
|
||||||
$result = pwg_query($query);
|
$result = pwg_query($query);
|
||||||
while ($row = pwg_db_fetch_assoc($result))
|
while ($row = pwg_db_fetch_assoc($result))
|
||||||
{
|
{
|
||||||
if (file_exists($conf['themes_dir'].'/'.$row['id'].'/'.'themeconf.inc.php'))
|
if (check_theme_installed($row['id']))
|
||||||
{
|
{
|
||||||
$themes[ $row['id'] ] = $row['name'];
|
$themes[ $row['id'] ] = $row['name'];
|
||||||
}
|
}
|
||||||
|
|
@ -706,6 +706,13 @@ SELECT
|
||||||
return $themes;
|
return $themes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function check_theme_installed($theme_id)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
return file_exists($conf['themes_dir'].'/'.$theme_id.'/'.'themeconf.inc.php');
|
||||||
|
}
|
||||||
|
|
||||||
/* Returns the PATH to the thumbnail to be displayed. If the element does not
|
/* Returns the PATH to the thumbnail to be displayed. If the element does not
|
||||||
* have a thumbnail, the default mime image path is returned. The PATH can be
|
* have a thumbnail, the default mime image path is returned. The PATH can be
|
||||||
* used in the php script, but not sent to the browser.
|
* used in the php script, but not sent to the browser.
|
||||||
|
|
@ -1148,8 +1155,12 @@ function get_filter_page_value($value_name)
|
||||||
*/
|
*/
|
||||||
function get_pwg_charset()
|
function get_pwg_charset()
|
||||||
{
|
{
|
||||||
defined('PWG_CHARSET') or fatal_error('PWG_CHARSET undefined');
|
$pwg_charset = 'utf-8';
|
||||||
return PWG_CHARSET;
|
if (defined('PWG_CHARSET'))
|
||||||
|
{
|
||||||
|
$pwg_charset = PWG_CHARSET;
|
||||||
|
}
|
||||||
|
return $pwg_charset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -848,7 +848,21 @@ function get_default_user_value($value_name, $sos_value)
|
||||||
*/
|
*/
|
||||||
function get_default_theme()
|
function get_default_theme()
|
||||||
{
|
{
|
||||||
return get_default_user_value('theme', PHPWG_DEFAULT_TEMPLATE);
|
$theme = get_default_user_value('theme', PHPWG_DEFAULT_TEMPLATE);
|
||||||
|
if (check_theme_installed($theme))
|
||||||
|
{
|
||||||
|
return $theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
// let's find the first available theme
|
||||||
|
$active_themes = get_pwg_themes();
|
||||||
|
foreach (array_keys(get_pwg_themes()) as $theme_id)
|
||||||
|
{
|
||||||
|
if (check_theme_installed($theme_id))
|
||||||
|
{
|
||||||
|
return $theme_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
46
install.php
46
install.php
|
|
@ -262,34 +262,8 @@ include(PHPWG_ROOT_PATH . 'admin/include/functions_upgrade.php');
|
||||||
|
|
||||||
if ( isset( $_POST['install'] ))
|
if ( isset( $_POST['install'] ))
|
||||||
{
|
{
|
||||||
if ($pwg_db_link = install_db_connect($infos, $errors))
|
install_db_connect($infos, $errors);
|
||||||
{
|
pwg_db_check_charset();
|
||||||
$required_version = constant('REQUIRED_'.strtoupper($dblayer).'_VERSION');
|
|
||||||
if ( version_compare(pwg_get_db_version(), $required_version, '>=') )
|
|
||||||
{
|
|
||||||
$pwg_charset = 'utf-8';
|
|
||||||
$pwg_db_charset = 'utf8';
|
|
||||||
if ($dblayer=='mysql')
|
|
||||||
{
|
|
||||||
$install_charset_collate = "DEFAULT CHARACTER SET $pwg_db_charset";
|
|
||||||
pwg_query('SET NAMES "'.$pwg_db_charset.'"');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$install_charset_collate = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$pwg_charset = 'iso-8859-1';
|
|
||||||
$pwg_db_charset = 'latin1';
|
|
||||||
$install_charset_collate = '';
|
|
||||||
if ( !array_key_exists($language, $languages->get_fs_languages($pwg_charset) ) )
|
|
||||||
{
|
|
||||||
$language='en_UK';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$webmaster = trim(preg_replace( '/\s{2,}/', ' ', $admin_name ));
|
$webmaster = trim(preg_replace( '/\s{2,}/', ' ', $admin_name ));
|
||||||
if ( empty($webmaster))
|
if ( empty($webmaster))
|
||||||
|
|
@ -320,8 +294,8 @@ $conf[\'db_host\'] = \''.$dbhost.'\';
|
||||||
$prefixeTable = \''.$prefixeTable.'\';
|
$prefixeTable = \''.$prefixeTable.'\';
|
||||||
|
|
||||||
define(\'PHPWG_INSTALLED\', true);
|
define(\'PHPWG_INSTALLED\', true);
|
||||||
define(\'PWG_CHARSET\', \''.$pwg_charset.'\');
|
define(\'PWG_CHARSET\', \'utf-8\');
|
||||||
define(\'DB_CHARSET\', \''.$pwg_db_charset.'\');
|
define(\'DB_CHARSET\', \'utf8\');
|
||||||
define(\'DB_COLLATE\', \'\');
|
define(\'DB_COLLATE\', \'\');
|
||||||
|
|
||||||
?'.'>';
|
?'.'>';
|
||||||
|
|
@ -350,13 +324,15 @@ define(\'DB_COLLATE\', \'\');
|
||||||
execute_sqlfile(
|
execute_sqlfile(
|
||||||
PHPWG_ROOT_PATH.'install/piwigo_structure-'.$dblayer.'.sql',
|
PHPWG_ROOT_PATH.'install/piwigo_structure-'.$dblayer.'.sql',
|
||||||
DEFAULT_PREFIX_TABLE,
|
DEFAULT_PREFIX_TABLE,
|
||||||
$prefixeTable
|
$prefixeTable,
|
||||||
|
$dblayer
|
||||||
);
|
);
|
||||||
// We fill the tables with basic informations
|
// We fill the tables with basic informations
|
||||||
execute_sqlfile(
|
execute_sqlfile(
|
||||||
PHPWG_ROOT_PATH.'install/config.sql',
|
PHPWG_ROOT_PATH.'install/config.sql',
|
||||||
DEFAULT_PREFIX_TABLE,
|
DEFAULT_PREFIX_TABLE,
|
||||||
$prefixeTable
|
$prefixeTable,
|
||||||
|
$dblayer
|
||||||
);
|
);
|
||||||
|
|
||||||
$query = '
|
$query = '
|
||||||
|
|
@ -366,7 +342,7 @@ INSERT INTO '.$prefixeTable.'config (param,value,comment)
|
||||||
pwg_query($query);
|
pwg_query($query);
|
||||||
|
|
||||||
// fill languages table
|
// fill languages table
|
||||||
foreach ($languages->get_fs_languages($pwg_charset) as $language_code => $language_name)
|
foreach ($languages->get_fs_languages() as $language_code => $language_name)
|
||||||
{
|
{
|
||||||
$languages->perform_action('activate', $language_code);
|
$languages->perform_action('activate', $language_code);
|
||||||
}
|
}
|
||||||
|
|
@ -378,9 +354,9 @@ INSERT INTO '.$prefixeTable.'config (param,value,comment)
|
||||||
// themes class
|
// themes class
|
||||||
if (!defined('PWG_CHARSET'))
|
if (!defined('PWG_CHARSET'))
|
||||||
{
|
{
|
||||||
define('PWG_CHARSET', $pwg_charset);
|
define('PWG_CHARSET', 'utf-8');
|
||||||
}
|
}
|
||||||
activate_all_themes();
|
activate_core_themes();
|
||||||
|
|
||||||
$insert = array(
|
$insert = array(
|
||||||
'id' => 1,
|
'id' => 1,
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ SELECT language FROM '.USER_INFOS_TABLE.'
|
||||||
$all_tables = array();
|
$all_tables = array();
|
||||||
$query = 'SHOW TABLES LIKE "'.$prefixeTable.'%"';
|
$query = 'SHOW TABLES LIKE "'.$prefixeTable.'%"';
|
||||||
$result = pwg_query($query);
|
$result = pwg_query($query);
|
||||||
while ( $row=pwg_db_fetch_assoc($result) )
|
while ( $row=pwg_db_fetch_row($result) )
|
||||||
{
|
{
|
||||||
array_push($all_tables, $row[0]);
|
array_push($all_tables, $row[0]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,40 +26,10 @@ if (!defined('PHPWG_ROOT_PATH'))
|
||||||
die('Hacking attempt!');
|
die('Hacking attempt!');
|
||||||
}
|
}
|
||||||
|
|
||||||
$upgrade_description = 'Automatically activate core themes and used themes.';
|
$upgrade_description = 'Automatically activate core themes.';
|
||||||
|
|
||||||
$themes_core = array('Sylvia', 'dark', 'clear');
|
include_once(PHPWG_ROOT_PATH . 'admin/include/functions_install.inc.php');
|
||||||
|
activate_core_themes();
|
||||||
$query = '
|
|
||||||
SELECT
|
|
||||||
DISTINCT(theme)
|
|
||||||
FROM '.PREFIX_TABLE.'user_infos
|
|
||||||
;';
|
|
||||||
$themes_used = array_from_query($query, 'theme');
|
|
||||||
|
|
||||||
$query = '
|
|
||||||
SELECT
|
|
||||||
id
|
|
||||||
FROM '.PREFIX_TABLE.'themes
|
|
||||||
;';
|
|
||||||
$themes_active = array_from_query($query, 'id');
|
|
||||||
|
|
||||||
|
|
||||||
$themes_to_activate = array_diff(
|
|
||||||
array_unique(array_merge($themes_used, $themes_core)),
|
|
||||||
$themes_active
|
|
||||||
);
|
|
||||||
|
|
||||||
// echo '<pre>'; print_r($themes_to_activate); echo '</pre>'; exit();
|
|
||||||
|
|
||||||
foreach ($themes_to_activate as $theme)
|
|
||||||
{
|
|
||||||
$query = '
|
|
||||||
INSERT INTO '.PREFIX_TABLE.'themes
|
|
||||||
(id) VALUES(\''.$theme.'\'
|
|
||||||
;';
|
|
||||||
pwg_query($query);
|
|
||||||
}
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
"\n"
|
"\n"
|
||||||
|
|
|
||||||
|
|
@ -33,11 +33,6 @@ else
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
define('UPGRADES_PATH', PHPWG_ROOT_PATH.'install/db');
|
|
||||||
|
|
||||||
list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
|
|
||||||
define('CURRENT_DATE', $dbnow);
|
|
||||||
|
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | Fill upgrade table without applying upgrade |
|
// | Fill upgrade table without applying upgrade |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
|
|
@ -88,7 +83,7 @@ if (!empty($inserts))
|
||||||
ob_start();
|
ob_start();
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
|
|
||||||
for ($upgrade_id = 61; ; $upgrade_id++)
|
for ($upgrade_id = 61; $upgrade_id <= 79; $upgrade_id++)
|
||||||
{
|
{
|
||||||
if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'))
|
if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'))
|
||||||
{
|
{
|
||||||
|
|
@ -119,5 +114,5 @@ echo '</pre>';
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
|
|
||||||
// now we upgrade from 2.0.0
|
// now we upgrade from 2.0.0
|
||||||
// include_once(PHPWG_ROOT_PATH.'install/upgrade_2.0.0.php');
|
include_once(PHPWG_ROOT_PATH.'install/upgrade_2.0.0.php');
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
118
install/upgrade_2.0.0.php
Normal file
118
install/upgrade_2.0.0.php
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
<?php
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
// | Piwigo - a PHP based picture gallery |
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
// | Copyright(C) 2008-2010 Piwigo Team http://piwigo.org |
|
||||||
|
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||||
|
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
// | 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 |
|
||||||
|
// | the Free Software Foundation |
|
||||||
|
// | |
|
||||||
|
// | 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 |
|
||||||
|
// | along with this program; if not, write to the Free Software |
|
||||||
|
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
|
||||||
|
// | USA. |
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
|
||||||
|
if (!defined('PHPWG_ROOT_PATH'))
|
||||||
|
{
|
||||||
|
die ('This page cannot be loaded directly, load upgrade.php');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE)
|
||||||
|
{
|
||||||
|
die ('Hacking attempt!');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
// | Fill upgrade table without applying upgrade |
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
|
||||||
|
// retrieve already applied upgrades
|
||||||
|
$query = '
|
||||||
|
SELECT id
|
||||||
|
FROM '.PREFIX_TABLE.'upgrade
|
||||||
|
;';
|
||||||
|
$applied = array_from_query($query, 'id');
|
||||||
|
|
||||||
|
// retrieve existing upgrades
|
||||||
|
$existing = get_available_upgrade_ids();
|
||||||
|
|
||||||
|
// which upgrades need to be applied?
|
||||||
|
$to_apply = array_diff($existing, $applied);
|
||||||
|
$inserts = array();
|
||||||
|
foreach ($to_apply as $upgrade_id)
|
||||||
|
{
|
||||||
|
if ($upgrade_id >= 81)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
array_push(
|
||||||
|
$inserts,
|
||||||
|
array(
|
||||||
|
'id' => $upgrade_id,
|
||||||
|
'applied' => CURRENT_DATE,
|
||||||
|
'description' => '[migration from 2.0.0 to '.PHPWG_VERSION.'] not applied',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($inserts))
|
||||||
|
{
|
||||||
|
mass_inserts(
|
||||||
|
'`'.UPGRADE_TABLE.'`',
|
||||||
|
array_keys($inserts[0]),
|
||||||
|
$inserts
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
// | Perform upgrades |
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
echo '<pre>';
|
||||||
|
|
||||||
|
for ($upgrade_id = 81; $upgrade_id <= 90; $upgrade_id++)
|
||||||
|
{
|
||||||
|
if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
unset($upgrade_description);
|
||||||
|
|
||||||
|
echo "\n\n";
|
||||||
|
echo '=== upgrade '.$upgrade_id."\n";
|
||||||
|
|
||||||
|
// include & execute upgrade script. Each upgrade script must contain
|
||||||
|
// $upgrade_description variable which describe briefly what the upgrade
|
||||||
|
// script does.
|
||||||
|
include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php');
|
||||||
|
|
||||||
|
// notify upgrade
|
||||||
|
$query = '
|
||||||
|
INSERT INTO `'.PREFIX_TABLE.'upgrade`
|
||||||
|
(id, applied, description)
|
||||||
|
VALUES
|
||||||
|
(\''.$upgrade_id.'\', NOW(), \'[migration from 2.0.0 to '.PHPWG_VERSION.'] '.$upgrade_description.'\')
|
||||||
|
;';
|
||||||
|
pwg_query($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</pre>';
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
// now we upgrade from 2.1.0
|
||||||
|
// include_once(PHPWG_ROOT_PATH.'install/upgrade_2.1.0.php');
|
||||||
|
?>
|
||||||
34
upgrade.php
34
upgrade.php
|
|
@ -47,6 +47,7 @@ include(PHPWG_ROOT_PATH . 'include/config_default.inc.php');
|
||||||
define('USERS_TABLE', $prefixeTable.'users');
|
define('USERS_TABLE', $prefixeTable.'users');
|
||||||
include_once(PHPWG_ROOT_PATH.'include/constants.php');
|
include_once(PHPWG_ROOT_PATH.'include/constants.php');
|
||||||
define('PREFIX_TABLE', $prefixeTable);
|
define('PREFIX_TABLE', $prefixeTable);
|
||||||
|
define('UPGRADES_PATH', PHPWG_ROOT_PATH.'install/db');
|
||||||
|
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | functions |
|
// | functions |
|
||||||
|
|
@ -201,9 +202,11 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions_upgrade.php');
|
||||||
include(PHPWG_ROOT_PATH .'include/dblayer/functions_'.$conf['dblayer'].'.inc.php');
|
include(PHPWG_ROOT_PATH .'include/dblayer/functions_'.$conf['dblayer'].'.inc.php');
|
||||||
|
|
||||||
upgrade_db_connect();
|
upgrade_db_connect();
|
||||||
|
|
||||||
pwg_db_check_charset();
|
pwg_db_check_charset();
|
||||||
|
|
||||||
|
list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
|
||||||
|
define('CURRENT_DATE', $dbnow);
|
||||||
|
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | template initialization |
|
// | template initialization |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
|
|
@ -260,6 +263,10 @@ else if (!in_array('md5sum', $columns_of[PREFIX_TABLE.'images']))
|
||||||
{
|
{
|
||||||
$current_release = '1.7.0';
|
$current_release = '1.7.0';
|
||||||
}
|
}
|
||||||
|
else if (!in_array(PREFIX_TABLE.'themes', $tables))
|
||||||
|
{
|
||||||
|
$current_release = '2.0.0';
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
die('No upgrade required, the database structure is up to date');
|
die('No upgrade required, the database structure is up to date');
|
||||||
|
|
@ -296,12 +303,15 @@ if (isset($_POST['submit']) and check_upgrade())
|
||||||
|
|
||||||
if (!@file_put_contents($config_file, $config_file_contents))
|
if (!@file_put_contents($config_file, $config_file_contents))
|
||||||
{
|
{
|
||||||
array_push($page['infos'],
|
array_push(
|
||||||
l10n_args('In <i>%s</i>, before <b>?></b>, insert:',
|
$page['infos'],
|
||||||
'local/config/database.inc.php') .
|
sprintf(
|
||||||
'<p><textarea rows="4" cols="40">' .
|
l10n('In <i>%s</i>, before <b>?></b>, insert:'),
|
||||||
implode("\r\n" , $mysql_changes).'</textarea></p>'
|
'local/config/database.inc.php'
|
||||||
);
|
)
|
||||||
|
.'<p><textarea rows="4" cols="40">'
|
||||||
|
.implode("\r\n" , $mysql_changes).'</textarea></p>'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -367,7 +377,15 @@ REPLACE INTO '.PLUGINS_TABLE.'
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
foreach (get_languages('utf-8') as $language_code => $language_name)
|
if (!defined('PWG_CHARSET'))
|
||||||
|
{
|
||||||
|
define('PWG_CHARSET', 'utf-8');
|
||||||
|
}
|
||||||
|
|
||||||
|
include_once(PHPWG_ROOT_PATH.'admin/include/languages.class.php');
|
||||||
|
$languages = new languages();
|
||||||
|
|
||||||
|
foreach ($languages->fs_languages as $language_code => $language_name)
|
||||||
{
|
{
|
||||||
if ($language == $language_code)
|
if ($language == $language_code)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue