aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb
diff options
context:
space:
mode:
authorTristan Darricau <github@nicofuma.fr>2017-01-22 23:10:22 +0100
committerTristan Darricau <github@nicofuma.fr>2017-01-22 23:10:22 +0100
commit085a839963b61e9812aa06601b1ffeb2eb077ab9 (patch)
tree0704c11cc4046d2ad235515774b62e2ab9ee8750 /phpBB/phpbb
parentdcadfe092c16b539121d2118169419ed01a6cc2c (diff)
parent38d0f2892e9d8f55c6e6af2d004da9621ee7f8f5 (diff)
downloadforums-085a839963b61e9812aa06601b1ffeb2eb077ab9.tar
forums-085a839963b61e9812aa06601b1ffeb2eb077ab9.tar.gz
forums-085a839963b61e9812aa06601b1ffeb2eb077ab9.tar.bz2
forums-085a839963b61e9812aa06601b1ffeb2eb077ab9.tar.xz
forums-085a839963b61e9812aa06601b1ffeb2eb077ab9.zip
Merge pull request #4662 from marc1706/ticket/14968
[ticket/14968] Distinguish between update/upgrade & show upgrade info in ACP index * marc1706/ticket/14968: [ticket/14968] Use earlier version as written in comment [ticket/14968] Update docblock and ensure method returns array [ticket/14968] Display possible upgrade on acp index and update page [ticket/14968] Add method for retrieving updates on current branch
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r--phpBB/phpbb/version_helper.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/phpBB/phpbb/version_helper.php b/phpBB/phpbb/version_helper.php
index a1e66ba8fe..135d390584 100644
--- a/phpBB/phpbb/version_helper.php
+++ b/phpBB/phpbb/version_helper.php
@@ -201,6 +201,49 @@ class version_helper
}
/**
+ * Gets the latest update for the current branch the user is on
+ * Will suggest versions from newer branches when EoL has been reached
+ * and/or version from newer branch is needed for having all known security
+ * issues fixed.
+ *
+ * @param bool $force_update Ignores cached data. Defaults to false.
+ * @param bool $force_cache Force the use of the cache. Override $force_update.
+ * @return array Version info or empty array if there are no updates
+ * @throws \RuntimeException
+ */
+ public function get_update_on_branch($force_update = false, $force_cache = false)
+ {
+ $versions = $this->get_versions_matching_stability($force_update, $force_cache);
+
+ $self = $this;
+ $current_version = $this->current_version;
+
+ // Filter out any versions less than to the current version
+ $versions = array_filter($versions, function($data) use ($self, $current_version) {
+ return $self->compare($data['current'], $current_version, '>=');
+ });
+
+ // Get the lowest version from the previous list.
+ $update_info = array_reduce($versions, function($value, $data) use ($self, $current_version) {
+ if ($value === null && $self->compare($data['current'], $current_version, '>='))
+ {
+ if (!$data['eol'] && (!$data['security'] || $self->compare($data['security'], $data['current'], '<=')))
+ {
+ return ($self->compare($data['current'], $current_version, '>')) ? $data : array();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ return $value;
+ });
+
+ return $update_info === null ? array() : $update_info;
+ }
+
+ /**
* Obtains the latest version information
*
* @param bool $force_update Ignores cached data. Defaults to false.