mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-05-08 22:35:00 +02:00
improvement: upgrades id retrieving in include/common.inc.php and
upgrade_feed.php are now made by dedicated function get_available_upgrade_ids. bug fixed: after an installation, you had to play all available upgrades, which was wrong. install.php inserts informations related to all available upgrades at installation time. Thus avoiding automatic upgrades. git-svn-id: http://piwigo.org/svn/trunk@1027 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
+2
-18
@@ -134,31 +134,15 @@ or die ( "Could not connect to database" );
|
||||
|
||||
if ($conf['check_upgrade_feed'])
|
||||
{
|
||||
define('PREFIX_TABLE', $prefixeTable);
|
||||
define('UPGRADES_PATH', PHPWG_ROOT_PATH.'install/db');
|
||||
|
||||
// retrieve already applied upgrades
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.PREFIX_TABLE.'upgrade
|
||||
FROM '.UPGRADE_TABLE.'
|
||||
;';
|
||||
$applied = array_from_query($query, 'id');
|
||||
|
||||
// retrieve existing upgrades
|
||||
$existing = array();
|
||||
|
||||
if ($contents = opendir(UPGRADES_PATH))
|
||||
{
|
||||
while (($node = readdir($contents)) !== false)
|
||||
{
|
||||
if (is_file(UPGRADES_PATH.'/'.$node)
|
||||
and preg_match('/^(.*?)-database\.php$/', $node, $match))
|
||||
{
|
||||
array_push($existing, $match[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
natcasesort($existing);
|
||||
$existing = get_available_upgrade_ids();
|
||||
|
||||
// which upgrades need to be applied?
|
||||
if (count(array_diff($existing, $applied)) > 0)
|
||||
|
||||
@@ -488,7 +488,7 @@ function pwg_debug( $string )
|
||||
*/
|
||||
function redirect( $url )
|
||||
{
|
||||
global $user, $template, $lang_info, $conf, $lang, $t2, $page;
|
||||
global $user, $template, $lang_info, $conf, $lang, $t2, $page, $debug;
|
||||
|
||||
// $refresh, $url_link and $title are required for creating an automated
|
||||
// refresh page in header.tpl
|
||||
@@ -972,4 +972,31 @@ SELECT '.$conf['user_fields']['email'].'
|
||||
|
||||
return $email;
|
||||
}
|
||||
|
||||
/**
|
||||
* which upgrades are available ?
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function get_available_upgrade_ids()
|
||||
{
|
||||
$upgrades_path = PHPWG_ROOT_PATH.'install/db';
|
||||
|
||||
$available_upgrade_ids = array();
|
||||
|
||||
if ($contents = opendir($upgrades_path))
|
||||
{
|
||||
while (($node = readdir($contents)) !== false)
|
||||
{
|
||||
if (is_file($upgrades_path.'/'.$node)
|
||||
and preg_match('/^(.*?)-database\.php$/', $node, $match))
|
||||
{
|
||||
array_push($available_upgrade_ids, $match[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
natcasesort($available_upgrade_ids);
|
||||
|
||||
return $available_upgrade_ids;
|
||||
}
|
||||
?>
|
||||
|
||||
+14
@@ -338,6 +338,20 @@ INSERT INTO '.USER_INFOS_TABLE.'
|
||||
(2, \'guest\', \''.$language.'\')
|
||||
;';
|
||||
mysql_query($query);
|
||||
|
||||
// Available upgrades must be ignored after a fresh installation. To
|
||||
// make PWG avoid upgrading, we must tell it upgrades have already been
|
||||
// made.
|
||||
foreach (get_available_upgrade_ids() as $upgrade_id)
|
||||
{
|
||||
$query = '
|
||||
INSERT INTO '.UPGRADE_TABLE.'
|
||||
(id, applied, description)
|
||||
VALUES
|
||||
('.$upgrade_id.', NOW(), \'upgrade included in installation\')
|
||||
';
|
||||
mysql_query($query);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-14
@@ -56,20 +56,7 @@ SELECT id
|
||||
$applied = array_from_query($query, 'id');
|
||||
|
||||
// retrieve existing upgrades
|
||||
$existing = array();
|
||||
|
||||
if ($contents = opendir(UPGRADES_PATH))
|
||||
{
|
||||
while (($node = readdir($contents)) !== false)
|
||||
{
|
||||
if (is_file(UPGRADES_PATH.'/'.$node)
|
||||
and preg_match('/^(.*?)-database\.php$/', $node, $match))
|
||||
{
|
||||
array_push($existing, $match[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
natcasesort($existing);
|
||||
$existing = get_available_upgrade_ids();
|
||||
|
||||
// which upgrades need to be applied?
|
||||
$to_apply = array_diff($existing, $applied);
|
||||
|
||||
Reference in New Issue
Block a user