/** * 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 the current version $versions = array_filter($versions, function($data) use ($self, $current_version) { return $self->compare($data['current'], $current_version, '>='); });

// Filter out any versions less than the current version $versions = array_filter($versions, function($data) use ($self, $current_version) { return $self->compare($data['current'], $current_version, '>='); });

// Filter out any phpbb branches less than the current version $branches = array_filter(array_keys($versions), function($branch) use ($self, $current_branch) { return $self->compare($branch, $current_branch, '>='); }); if (!empty($branches)) { $versions = array_intersect_key($versions, array_flip($branches)); } else { // If branches are empty, it means the current phpBB branch is newer than any branch the // extension was validated against. Reverse sort the versions array so we get the newest // validated release available. krsort($versions); }