diff options
| author | Nicofuma <github@nicofuma.fr> | 2014-04-14 19:09:06 +0200 |
|---|---|---|
| committer | Tristan Darricau <github@nicofuma.fr> | 2014-05-28 22:16:37 +0200 |
| commit | 44752c0dbfe11afb58de8956a79fbe5ec0f3e127 (patch) | |
| tree | 6514c20a487c6cd4091a72d864f501d0d336eefc /phpBB/includes | |
| parent | e0b2ceef833dee55a1701216d4f0823375e8fa74 (diff) | |
| download | forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.tar forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.tar.gz forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.tar.bz2 forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.tar.xz forums-44752c0dbfe11afb58de8956a79fbe5ec0f3e127.zip | |
[ticket/11366] Moving to \phpbb\version_helper
+ bug fix (missing exception)
+ Using \phpbb\version_helper
So, now, the version file have a new format :
{
"stable": {
"<branch>": {
"current": "<version>",
[ "announcement": "<announcement link>", ]
[ "download": "<download link>", ]
},
"<branch>": {
...
}
},
"unstable": {
}
}
PHPBB3-11366
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/acp/acp_extensions.php | 77 |
1 files changed, 47 insertions, 30 deletions
diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php index ac26621b89..0aeb0968a4 100644 --- a/phpBB/includes/acp/acp_extensions.php +++ b/phpBB/includes/acp/acp_extensions.php @@ -251,9 +251,18 @@ class acp_extensions try { - $infos = array(); - $this->version_check($md_manager, $infos, $request->variable('versioncheck_force', false)); - $template->assign_vars($infos); + $updates_available = $this->version_check($md_manager, $request->variable('versioncheck_force', false)); + + $template->assign_vars(array( + 'S_UP_TO_DATE' => empty($updates_available), + 'S_VERSIONCHECK' => true, + 'UP_TO_DATE_MSG' => $this->user->lang(empty($updates_available) ? 'UP_TO_DATE' : 'NOT_UP_TO_DATE', $md_manager->get_metadata('display-name')), + )); + + foreach ($updates_available as $branch => $version_data) + { + $template->assign_block_vars('updates_available', $version_data); + } } catch (\RuntimeException $e) { @@ -295,7 +304,15 @@ class acp_extensions 'META_VERSION' => $meta['version'], ); - $this->version_check($md_manager, $enabled_extension_meta_data[$name]); + $updates = $this->version_check($md_manager); + + $enabled_extension_meta_data[$name]['S_UP_TO_DATE'] = empty($updates); + $enabled_extension_meta_data[$name]['S_VERSIONCHECK'] = true; + $enabled_extension_meta_data[$name]['U_VERSIONCHECK_FORCE'] = $this->u_action . '&action=details&versioncheck_force=1&ext_name=' . urlencode($md_manager->get_metadata('name')); + } + catch (\RuntimeException $e) + { + $enabled_extension_meta_data[$name]['S_VERSIONCHECK'] = false; } catch(\phpbb\extension\exception $e) { @@ -343,7 +360,15 @@ class acp_extensions 'META_VERSION' => $meta['version'], ); - $this->version_check($md_manager, $disabled_extension_meta_data[$name]); + $updates = $this->version_check($md_manager); + + $disabled_extension_meta_data[$name]['S_UP_TO_DATE'] = empty($updates); + $disabled_extension_meta_data[$name]['S_VERSIONCHECK'] = true; + $disabled_extension_meta_data[$name]['U_VERSIONCHECK_FORCE'] = $this->u_action . '&action=details&versioncheck_force=1&ext_name=' . urlencode($md_manager->get_metadata('name')); + } + catch (\RuntimeException $e) + { + $disabeld_extension_meta_data[$name]['S_VERSIONCHECK'] = false; } catch(\phpbb\extension\exception $e) { @@ -394,7 +419,15 @@ class acp_extensions 'META_VERSION' => $meta['version'], ); - $this->version_check($md_manager, $available_extension_meta_data[$name]); + $updates = $this->version_check($md_manager); + + $available_extension_meta_data[$name]['S_UP_TO_DATE'] = empty($updates); + $available_extension_meta_data[$name]['S_VERSIONCHECK'] = true; + $available_extension_meta_data[$name]['U_VERSIONCHECK_FORCE'] = $this->u_action . '&action=details&versioncheck_force=1&ext_name=' . urlencode($md_manager->get_metadata('name')); + } + catch (\RuntimeException $e) + { + $available_extension_meta_data[$name]['S_VERSIONCHECK'] = false; } catch(\phpbb\extension\exception $e) { @@ -439,13 +472,12 @@ class acp_extensions } /** - * Check the version and dump to the template + * Check the version and return the availables updates. * * @param \phpbb\extension\metadata_manager $md_manager The metadata manager for the version to check. - * @param array $array_dest The array to bind to the template. * @param bool $force Ignores cached data. Default to false. */ - private function version_check(\phpbb\extension\metadata_manager $md_manager, &$array_dest, $force = false) + private function version_check(\phpbb\extension\metadata_manager $md_manager, $force = false) { $meta = $md_manager->get_metadata('all'); @@ -453,29 +485,14 @@ class acp_extensions { throw new \RuntimeException($this->user->lang('NO_VERSIONCHECK')); } + + $meta_vc = $meta['extra']['version-check']; - $version_helper = new \phpbb\extension\version_helper($this->cache, $this->user); - $version_helper->set_metadata($meta); + $version_helper = new \phpbb\version_helper($this->cache, $this->config, $this->user); + $version_helper->set_current_version($meta['version']); + $version_helper->set_file_location($meta_vc['host'], $meta_vc['directory'], $meta_vc['filename']); - try - { - $version_helper->get_version($force); - $version_compare = $version_helper->is_uptodate(); - - $array_dest = array_merge($array_dest, array( - 'S_VERSIONCHECK' => true, - 'S_UP_TO_DATE' => $version_compare, - 'LATEST_VERSION' => $version_helper->get_latest_version(), - 'LATEST_DOWNLOAD' => $version_helper->get_latest_download_link(), - 'LATEST_ANNOUNCEMENT' => $version_helper->get_latest_announcement_link(), - 'UP_TO_DATE_MSG' => $this->user->lang($version_compare ? 'UP_TO_DATE' : 'NOT_UP_TO_DATE', $md_manager->get_metadata('display-name')), - 'U_VERSIONCHECK_FORCE' => $this->u_action . '&action=details&versioncheck_force=1&ext_name=' . urlencode($md_manager->get_metadata('name')), - )); - } - catch(\RuntimeException $e) - { - $array_dest['S_VERSIONCHECK'] = false; - } + return $updates = $version_helper->get_suggested_updates(true); } /** |
