module_version . $xoops_config->module_codename; $lang = WPLANG; $check_url = "http://ja.xpressme.info/version_check/index.php?version=$xpress_version&lang=$lang"; echo '
'."\n"; echo '

'."\n"; echo '

' . __('XPressME Upgrade', 'xpressme') . "


\n"; if(get_xpress_latest_version()){ $latest = get_option('xpressme_latest_version'); //print_r($latest); if ($latest) { $site_url=$latest['url']; $package=$latest['package']; $latest_version=$latest['latest_version']; $check_time=$latest['check_time']; } if (version_compare($xpress_version, $latest_version, '>')){ echo '

'; printf(__('You are using a XPressME Integration Kit development version (%1$s). Cool! Please stay updated.', 'xpressme') , $xpress_version , $latest['develop_url']); echo '

'; } else if (version_compare($xpress_version, $latest_version, '<')) { echo '

'. __('There is a new version of XPressME Integration Kit available for upgrade', 'xpressme') . '

'; echo '

'; // printf(__('You can upgrade to version %s automatically or download the package and install it manually:'),$latest_version); printf(__('You can upgrade to version %s download the package and install it manually:', 'xpressme'),$latest_version); echo '

'; echo ''; printf(__('Download %s', 'xpressme') , $latest_version); echo ''; if ($latest['diff_response'] == 'diff_exists'){ echo '

'; printf(__('You can download the differential file from version %s to %s and upgrade it manually:', 'xpressme'),$xpress_version,$latest['diff_latest_version']); echo '

'; echo ''; printf(__('Download differential file for %s', 'xpressme') , $latest['diff_latest_version']); echo ''; } } else { echo '

'. __('You have the latest version of XPressME Integration Kit. You do not need to upgrade', 'xpressme') . '

'; } if ($latest['develop_response'] == 'development_exists' && !empty($latest['develop_package']) ) { echo '

'; printf(__('You can use the development version %s download the package and install it manually:', 'xpressme'),$latest['develop_latest_version']); echo '

'; echo ''; printf(__('Download %s', 'xpressme') , $latest['develop_latest_version']); echo ''; } } else { echo '

'; printf(__('There is no response from version check API now. sorry, please confirm it after.', 'xpressme'),$check_url); echo "

\n"; } } function xp_remote_get($url, $headers = ""){ global $xoops_config; $xpress_version = $xoops_config->module_version . $xoops_config->module_codename; require_once( $xoops_config->module_path . '/wp-includes/class-snoopy.php'); // Snoopy is an HTTP client in PHP $client = new Snoopy(); $client->agent = 'XPressME/' . $xpress_version; $client->read_timeout = 2; if (is_array($headers) ) { $client->rawheaders = $headers; } @$client->fetch($url); $response['response']['code'] = $client->status; $response['body'] = $client->results; return $response; return $client; } function get_xpress_latest_version(){ global $wp_version, $wpdb, $wp_local_package; global $xoops_config; $xpress_version = $xoops_config->module_version . $xoops_config->module_codename; $lang = WPLANG; $check_url = "http://ja.xpressme.info/version_check/index.php?version=$xpress_version&lang=$lang"; $request_options = array( 'timeout' => 3, 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if (! function_exists('wp_remote_get')) { $response = xp_remote_get($check_url); if (empty($response['body'])) return false; } else { $response = wp_remote_get($check_url, $request_options); if ( is_wp_error( $response ) ) return false; } if ( 200 != $response['response']['code'] ) return false; $body = trim( $response['body'] ); $body = str_replace(array("\r\n", "\r"), "\n", $body); $returns = explode("\n", $body); if ( isset( $returns[0] ) ) $response = $returns[0]; else $response = ''; if ( isset( $returns[1] ) ) $url = clean_url( $returns[1] ); else $url = ''; if ( isset( $returns[2] ) ) $package = clean_url( $returns[2] ); else $package = ''; if ( isset( $returns[3] ) ) $latest_version = $returns[3]; else $latest_version = ''; if ( isset( $returns[4] ) ) $lang = $returns[4]; else $lang = ''; // diff if ( isset( $returns[6] ) ) $diff_response = $returns[6]; else $diff_response = ''; if ( isset( $returns[7] ) ) $diff_url = clean_url( $returns[7] ); else $diff_url = ''; if ( isset( $returns[8] ) ) $diff_package = clean_url( $returns[8] ); else $diff_package = ''; if ( isset( $returns[9] ) ) $diff_latest_version = $returns[9]; else $diff_latest_version = ''; if ( isset( $returns[10] ) ) $diff_lang = $returns[10]; else $diff_lang = ''; // developer if ( isset( $returns[12] ) ) $develop_response = $returns[12]; else $develop_response = ''; if ( isset( $returns[13] ) ) $develop_url = clean_url( $returns[13] ); else $develop_url = ''; if ( isset( $returns[14] ) ) $develop_package = clean_url( $returns[14] ); else $develop_package = ''; if ( isset( $returns[15] ) ) $develop_latest_version = $returns[15]; else $develop_latest_version = ''; if ( isset( $returns[16] ) ) $develop_lang = $returns[16]; else $develop_lang = ''; $write_options = array ( 'response' => $response , 'url' => $url , 'package' => $package , 'latest_version' => $latest_version , 'lang' => $lang , 'diff_response' => $diff_response , 'diff_url' => $diff_url , 'diff_package' => $diff_package , 'diff_latest_version' => $diff_latest_version , 'diff_lang' => $diff_lang , 'develop_response' => $develop_response , 'develop_url' => $develop_url , 'develop_package' => $develop_package , 'develop_latest_version' => $develop_latest_version , 'develop_lang' => $develop_lang , 'check_time' => time() ); $latest_version = get_option('xpressme_latest_version'); if (!$latest_version) { add_option('xpressme_latest_version', $write_options); } else { update_option('xpressme_latest_version', $write_options); } return true; } function xpress_update_check() { if ( defined('WP_INSTALLING') ) return; global $pagenow; $php_query_string = $_SERVER['QUERY_STRING']; if ( 'admin.php' == $pagenow && 'page=upgrade_page' == $php_query_string) return; global $wp_version, $wpdb, $wp_local_package; global $xoops_config; $php_query_string = $_SERVER['QUERY_STRING']; $xpress_version = $xoops_config->module_version . $xoops_config->module_codename; $latest = get_option('xpressme_latest_version'); if (!$latest ) { get_xpress_latest_version(); $latest = get_option('xpressme_latest_version'); } if ($latest) { $next_check = $latest['check_time'] + (60*60*24); $now_time = time(); if ($next_check < $now_time ){ get_xpress_latest_version(); $latest = get_option('xpressme_latest_version'); } } if ($latest) { $url=$latest['url']; $package=$latest['package']; $latest_version=$latest['latest_version']; $check_time=$latest['check_time']; $upgrade_page = $xoops_config->module_url . "/wp-admin/admin.php?page=upgrade_page"; if (version_compare($xpress_version, $latest_version, '<')) { if ( current_user_can('manage_options') ){ $msg = sprintf( __('XPressME Integration Kit Version %1$s is available! Please update now.', 'xpressme'), $latest_version, $upgrade_page ); } else { $msg = sprintf( __('XPressME Integration Kit Version %1$s is available! Please notify the site administrator.', 'xpressme'), $latest_version ); } echo "
$msg
"; } } } ?>