aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2012-06-14 21:46:47 +0000
committerplegall <plg@piwigo.org>2012-06-14 21:46:47 +0000
commitc89365f10e1703a08f33b1798bcaecd169aa8861 (patch)
treec9649a38f0a044d016d6d941230db9089fb97938
parent754a12881d7a4c9a5bdc4a3456cb704822688630 (diff)
feature 2632: add a test on upgrade.php, if a remote site is detected downgrade to 2.3.4
git-svn-id: http://piwigo.org/svn/trunk@15680 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--admin/include/updates.class.php8
-rw-r--r--upgrade.php38
2 files changed, 42 insertions, 4 deletions
diff --git a/admin/include/updates.class.php b/admin/include/updates.class.php
index 524b627a7..3a81fbb0f 100644
--- a/admin/include/updates.class.php
+++ b/admin/include/updates.class.php
@@ -359,11 +359,11 @@ class updates
}
}
- function upgrade_to($upgrade_to, &$step)
+ function upgrade_to($upgrade_to, &$step, $check_current_version=true)
{
global $page, $conf, $template;
- if (!version_compare($_POST['upgrade_to'], PHPWG_VERSION, '>'))
+ if ($check_current_version and !version_compare($upgrade_to, PHPWG_VERSION, '>'))
{
redirect(get_root_url().'admin.php?page=plugin-'.basename(dirname(__FILE__)));
}
@@ -371,14 +371,14 @@ class updates
if ($step == 2)
{
preg_match('/(\d+\.\d+)\.(\d+)/', PHPWG_VERSION, $matches);
- $code = $matches[1].'.x_to_'.$_POST['upgrade_to'];
+ $code = $matches[1].'.x_to_'.$upgrade_to;
$dl_code = str_replace(array('.', '_'), '', $code);
$remove_path = $code;
$obsolete_list = 'obsolete.list';
}
else
{
- $code = $_POST['upgrade_to'];
+ $code = $upgrade_to;
$dl_code = $code;
$remove_path = version_compare($code, '2.0.8', '>=') ? 'piwigo' : 'piwigo-'.$code;
$obsolete_list = PHPWG_ROOT_PATH.'install/obsolete.list';
diff --git a/upgrade.php b/upgrade.php
index 7bee609aa..b0edd7609 100644
--- a/upgrade.php
+++ b/upgrade.php
@@ -230,6 +230,44 @@ $template->assign(array(
);
// +-----------------------------------------------------------------------+
+// | Remote sites are not compatible with Piwigo 2.4+ |
+// +-----------------------------------------------------------------------+
+
+$has_remote_site = false;
+
+$query = 'SELECT galleries_url FROM '.SITES_TABLE.';';
+$result = pwg_query($query);
+while ($row = pwg_db_fetch_assoc($result))
+{
+ if (url_is_remote($row['galleries_url']))
+ {
+ $has_remote_site = true;
+ }
+}
+
+if ($has_remote_site)
+{
+ include_once(PHPWG_ROOT_PATH.'admin/include/updates.class.php');
+ include_once(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php');
+
+ $page['errors'] = array();
+ $step = 3;
+ updates::upgrade_to('2.3.4', $step, false);
+
+ if (!empty($page['errors']))
+ {
+ echo '<ul>';
+ foreach ($page['errors'] as $error)
+ {
+ echo '<li>'.$error.'</li>';
+ }
+ echo '</ul>';
+ }
+
+ exit();
+}
+
+// +-----------------------------------------------------------------------+
// | upgrade choice |
// +-----------------------------------------------------------------------+