From 7b130f2c494291910643c24d0dc7b3be20ade3a9 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Wed, 30 Oct 2013 00:26:16 +0100 Subject: [PATCH] [feature/mod_version_check] Remove old version check and introduce new one --- acp/portal_module.php | 12 +- adm/mods/board3_portal_check_version.php | 33 ---- portal/includes/functions_version_check.php | 189 -------------------- 3 files changed, 4 insertions(+), 230 deletions(-) delete mode 100644 adm/mods/board3_portal_check_version.php delete mode 100644 portal/includes/functions_version_check.php diff --git a/acp/portal_module.php b/acp/portal_module.php index 1ee7efb1..52417edb 100644 --- a/acp/portal_module.php +++ b/acp/portal_module.php @@ -21,12 +21,12 @@ class phpbb_ext_board3_portal_acp_portal_module public $new_config = array(); protected $c_class; protected $db, $user, $cache, $template, $display_vars, $config, $phpbb_root_path, $portal_root_path, $phpbb_admin_path, $phpEx; - protected $root_path; + protected $root_path, $mod_version_check; public function __construct() { global $db, $user, $cache, $template; - global $config, $phpbb_root_path, $portal_root_path, $phpbb_admin_path, $phpEx; + global $config, $phpbb_root_path, $portal_root_path, $phpbb_admin_path, $phpbb_container, $phpEx; $user->add_lang_ext('board3/portal', 'mods/portal'); @@ -44,17 +44,13 @@ class phpbb_ext_board3_portal_acp_portal_module $this->phpbb_admin_path = $phpbb_admin_path; $this->portal_root_path = $this->root_path . 'portal/'; $this->php_ex = $phpEx; + $this->mod_version_check = $phpbb_container->get('board3.version.check'); if (!function_exists('column_string_const')) { include($this->portal_root_path . 'includes/functions_modules.' . $this->php_ex); } - if (!function_exists('mod_version_check')) - { - include($this->portal_root_path . 'includes/functions_version_check.' . $this->php_ex); - } - if(!function_exists('obtain_portal_config')) { include($this->portal_root_path . 'includes/functions.' . $this->php_ex); @@ -159,7 +155,7 @@ class phpbb_ext_board3_portal_acp_portal_module else { // only show the mod version check if we are on the General Settings page - mod_version_check($this->phpbb_root_path, $this->root_path); + $this->mod_version_check->version_check(); } $this->new_config = $this->config; diff --git a/adm/mods/board3_portal_check_version.php b/adm/mods/board3_portal_check_version.php deleted file mode 100644 index 68eca8ea..00000000 --- a/adm/mods/board3_portal_check_version.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Saint_hh', - 'title' => 'Board3 Portal', - 'tag' => 'board3_portal_v2_dev', - 'version' => $config['board3_portal_version'], - 'file' => array('board3.de', 'updatecheck', 'board3_portal.xml'), - ); - } -} diff --git a/portal/includes/functions_version_check.php b/portal/includes/functions_version_check.php deleted file mode 100644 index b8abd7b8..00000000 --- a/portal/includes/functions_version_check.php +++ /dev/null @@ -1,189 +0,0 @@ -lang['NO_INFO']; - $data = array( - 'title' => $var['title'], - 'description' => $user->lang['NO_INFO'], - 'download' => $user->lang['NO_INFO'], - 'announcement' => $user->lang['NO_INFO'], - ); - } - $file = get_remote_file($var['file'][0], '/' . $var['file'][1], $var['file'][2], $errstr, $errno); - - if ($file) - { - if (version_compare(PHP_VERSION, '5.0.0', '<')) - { - $row = array(); - $data_array = mvc_setup_array($file); - - $row = $data_array['mods'][$var['tag']]; - $mod_version = $row['mod_version']; - $mod_version = $mod_version['major'] . '.' . $mod_version['minor'] . '.' . $mod_version['revision'] . $mod_version['release']; - - $data = array( - 'title' => $row['title'], - 'description' => $row['description'], - 'download' => $row['download'], - 'announcement' => $row['announcement'], - ); - } - else - { - // let's not stop the page from loading if a mod author messed up their mod check file - // also take care of one of the easiest ways to mess up an xml file: "&" - $mod = @simplexml_load_string(str_replace('&', '&', $file)); - if (isset($mod->$var['tag'])) - { - $row = $mod->$var['tag']; - $mod_version = $row->mod_version->major . '.' . $row->mod_version->minor . '.' . $row->mod_version->revision . $row->mod_version->release; - - $data = array( - 'title' => $row->title, - 'description' => $row->description, - 'download' => $row->download, - 'announcement' => $row->announcement, - ); - } - } - } - - // remove spaces from the version in the mod file stored locally - $version = str_replace(' ', '', $var['version']); - if ($return_version) - { - return $version; - } - - $version_compare = (version_compare($version, $mod_version, '<')) ? false : true; - - $template->assign_block_vars('mods', array( - 'ANNOUNCEMENT' => $data['announcement'], - 'AUTHOR' => $var['author'], - 'CURRENT_VERSION' => $version, - 'DESCRIPTION' => $data['description'], - 'DOWNLOAD' => $data['download'], - 'LATEST_VERSION' => $mod_version, - 'TITLE' => $data['title'], - - 'UP_TO_DATE' => sprintf((!$version_compare) ? $user->lang['NOT_UP_TO_DATE'] : $user->lang['UP_TO_DATE'], $data['title']), - - 'S_UP_TO_DATE' => $version_compare, - - 'U_AUTHOR' => 'http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un=' . $var['author'], - )); -} - -/** -* this is for php4 only -* kind of a dirty hack, but since I get the say on how the xml is done, I can have 4 levels max -*/ -function mvc_setup_array($xml) -{ - // Fire up the built-in XML parser - $values = $index = array(); - $parser = xml_parser_create(); - xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); - - // this takes care of one possible xml error - $xml = str_replace('&', '&', $xml); - - // Set tag names and values - xml_parse_into_struct($parser, $xml, $values, $index); - - // Close down XML parser - xml_parser_free($parser); - - $ary = array(); - - foreach ($values as $value) - { - switch (trim($value['level'])) - { - case 1: - if ($value['type'] == 'open') - { - $one = $value['tag']; - } - else if ($value['type'] == 'complete') - { - $ary[$value['tag']] = $value['value']; - } - break; - - case 2: - if ($value['type'] == 'open') - { - $two = $value['tag']; - } - else if ($value['type'] == 'complete') - { - $ary[$one][$value['tag']] = $value['value']; - } - break; - - case 3: - if ($value['type'] == 'open') - { - $three = $value['tag']; - } - else if ($value['type'] == 'complete') - { - $ary[$one][$two][$value['tag']] = $value['value']; - } - break; - - case 4: - if ($value['type'] == 'complete') - { - $ary[$one][$two][$three][$value['tag']] = isset($value['value']) ? $value['value'] : ''; - } - break; - } - } - return $ary; -}