diff options
| author | Marc Alexander <admin@m-a-styles.de> | 2017-01-22 16:09:51 +0100 |
|---|---|---|
| committer | Marc Alexander <admin@m-a-styles.de> | 2017-01-22 16:09:51 +0100 |
| commit | 0572d6e33ad8f19f9f70d872421ee6ab268d6ae8 (patch) | |
| tree | 3b91b626881bf7b03a57456f5d2465f27e6d983e /phpBB/phpbb | |
| parent | 3567f45e3d6872fc999862a4b0adb957149e0ed8 (diff) | |
| download | forums-0572d6e33ad8f19f9f70d872421ee6ab268d6ae8.tar forums-0572d6e33ad8f19f9f70d872421ee6ab268d6ae8.tar.gz forums-0572d6e33ad8f19f9f70d872421ee6ab268d6ae8.tar.bz2 forums-0572d6e33ad8f19f9f70d872421ee6ab268d6ae8.tar.xz forums-0572d6e33ad8f19f9f70d872421ee6ab268d6ae8.zip | |
[ticket/14968] Add method for retrieving updates on current branch
PHPBB3-14968
Diffstat (limited to 'phpBB/phpbb')
| -rw-r--r-- | phpBB/phpbb/version_helper.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/phpBB/phpbb/version_helper.php b/phpBB/phpbb/version_helper.php index a1e66ba8fe..b5f493de9d 100644 --- a/phpBB/phpbb/version_helper.php +++ b/phpBB/phpbb/version_helper.php @@ -201,6 +201,45 @@ class version_helper } /** + * Gets the latest version for the current branch the user is on + * + * @param bool $force_update Ignores cached data. Defaults to false. + * @param bool $force_cache Force the use of the cache. Override $force_update. + * @return string + * @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. + return 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; + }); + } + + /** * Obtains the latest version information * * @param bool $force_update Ignores cached data. Defaults to false. |
