From 491e8adc7467de9f9aa6dbbebfcb8b82c676b46a Mon Sep 17 00:00:00 2001 From: patdenice Date: Wed, 20 Apr 2011 14:52:52 +0000 Subject: feature:2271 Merge autoupdate plugin into piwigo core. git-svn-id: http://piwigo.org/svn/trunk@10511 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/updates_pwg.php | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 admin/updates_pwg.php (limited to 'admin/updates_pwg.php') diff --git a/admin/updates_pwg.php b/admin/updates_pwg.php new file mode 100644 index 000000000..016deeecd --- /dev/null +++ b/admin/updates_pwg.php @@ -0,0 +1,166 @@ + user may choose upgrade. +2 = upgrade on same branch +3 = upgrade on different branch +*/ +$step = isset($_GET['step']) ? $_GET['step'] : 0; +$upgrade_to = isset($_GET['to']) ? $_GET['to'] : ''; + +// +-----------------------------------------------------------------------+ +// | Step 0 | +// +-----------------------------------------------------------------------+ +if ($step == 0) +{ + $template->assign(array( + 'CHECK_VERSION' => false, + 'DEV_VERSION' => false, + ) + ); + + if (preg_match('/(\d+\.\d+)\.(\d+)/', PHPWG_VERSION, $matches)) + { + $url = PHPWG_URL.'/download/all_versions.php'; + $url .= '?rand='.md5(uniqid(rand(), true)); // Avoid server cache + + if (@fetchRemote($url, $result) + and $all_versions = @explode("\n", $result) + and is_array($all_versions)) + { + $template->assign('CHECK_VERSION', true); + + $last_version = trim($all_versions[0]); + $upgrade_to = $last_version; + + if (version_compare(PHPWG_VERSION, $last_version, '<')) + { + $new_branch = preg_replace('/(\d+\.\d+)\.\d+/', '$1', $last_version); + $actual_branch = $matches[1]; + + if ($new_branch == $actual_branch) + { + $step = 2; + } + else + { + $step = 3; + + // Check if new version exists in same branch + foreach ($all_versions as $version) + { + $new_branch = preg_replace('/(\d+\.\d+)\.\d+/', '$1', $version); + + if ($new_branch == $actual_branch) + { + if (version_compare(PHPWG_VERSION, $version, '<')) + { + $step = 1; + } + break; + } + } + } + } + } + } + else + { + $template->assign('DEV_VERSION', true); + } +} + +// +-----------------------------------------------------------------------+ +// | Step 1 | +// +-----------------------------------------------------------------------+ +if ($step == 1) +{ + $template->assign(array( + 'MINOR_VERSION' => $version, + 'MAJOR_VERSION' => $last_version, + ) + ); +} + +// +-----------------------------------------------------------------------+ +// | Step 2 | +// +-----------------------------------------------------------------------+ +if ($step == 2 and is_webmaster()) +{ + if (isset($_POST['submit']) and isset($_POST['upgrade_to'])) + { + updates::upgrade_to($_POST['upgrade_to'], $step); + } +} + +// +-----------------------------------------------------------------------+ +// | Step 3 | +// +-----------------------------------------------------------------------+ +if ($step == 3 and is_webmaster()) +{ + if (isset($_POST['dumpDatabase'])) + { + updates::dump_database(isset($_POST['includeHistory'])); + } + + if (isset($_POST['submit']) and isset($_POST['upgrade_to'])) + { + updates::upgrade_to($_POST['upgrade_to'], $step); + } + + $updates = new updates(); + $updates->get_merged_extensions($upgrade_to); + $updates->get_server_extensions($upgrade_to); + $template->assign('missing', $updates->missing); +} + +// +-----------------------------------------------------------------------+ +// | Process template | +// +-----------------------------------------------------------------------+ + +if (!is_webmaster()) +{ + array_push($page['errors'], l10n('Webmaster status is required.')); +} + +$template->assign(array( + 'STEP' => $step, + 'PHPWG_VERSION' => PHPWG_VERSION, + 'UPGRADE_TO' => $upgrade_to, + 'RELEASE_URL' => PHPWG_URL.'/releases/'.$upgrade_to, + ) +); + +$template->set_filename('plugin_admin_content', 'updates_pwg.tpl'); +$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); + +?> \ No newline at end of file -- cgit v1.2.3