private static function send_xml() { // Cover old and new format $api_server = Config::Get('VACENTRAL_API_SERVER'); if ($api_server == '') { $api_server = Config::Get('PHPVMS_API_SERVER'); } ob_start(); $web_service = new CodonWebService(); $options = array(CURLOPT_USERAGENT => 'phpVMS (' . PHPVMS_VERSION . ')'); $web_service->setOptions($options); self::$xml_response = $web_service->post($api_server . '/update', self::$xml->asXML()); if (!self::$xml_response) { if (Config::Get('VACENTRAL_DEBUG_MODE') == true) { Debug::log(self::$method . ' - ' . date('h:i:s A - m/d/Y'), 'vacentral'); Debug::log(print_r($web_service->errors, true), 'vacentral'); } self::$last_error = 'No response from API server'; return false; } self::$response = @simplexml_load_string(self::$xml_response); ob_end_clean(); if (!is_object(self::$response)) { if (Config::Get('VACENTRAL_DEBUG_MODE') == true) { Debug::log(self::$method . ' - ' . date('h:i:s A - m/d/Y'), 'vacentral'); Debug::log(' - no response from server', 'vacentral'); } self::$last_error = 'No response from API server'; return false; } if (Config::Get('VACENTRAL_DEBUG_MODE') == true) { Debug::log(self::$method . ' - ' . date('h:i:s A - m/d/Y'), 'vacentral'); Debug::log(' - ' . (string) self::$response->detail, 'vacentral'); Debug::log(' - ' . (string) self::$response->dbg, 'vacentral'); # Extra detail if (Config::Get('VACENTRAL_DEBUG_DETAIL') == '2') { Debug::log('SENT XML: ', 'vacentral'); Debug::log(self::$xml->asXML(), 'vacentral'); Debug::log('RECIEVED XML: ', 'vacentral'); Debug::log(self::$response->asXML(), 'vacentral'); Debug::log('', 'vacentral'); } } if ((int) self::$response->responsecode != 200) { if (Config::Get('VACENTRAL_DEBUG_MODE') == true) { Debug::log(self::$method . ' - ', 'vacentral'); Debug::log(' - ' . (string) self::$response->message->detail, 'vacentral'); } self::$last_error = self::$response->message->detail; return false; } return true; }
/** * Send current installation data to phpVMS server * * @param string $version * @return void */ public static function RegisterInstall($version = '') { if ($version == '') { $version = PHPVMS_VERSION; } $ext = serialize(get_loaded_extensions()); $params = new SimpleXMLElement('<registration/>'); $params->addChild('name', SITE_NAME); $params->addChild('url', SITE_URL); $params->addChild('version', $version); $params->addChild('php', phpversion()); $params->addChild('mysql', @mysql_get_server_info()); $params->addChild('ext', $ext); $url = 'http://api.phpvms.net/register'; error_reporting(0); $file = new CodonWebService(); $response = $file->post($url, $params->asXML()); }
protected static function navDetailsFromServer($navpoints) { if (!is_array($navpoints) && count($navpoints) == 0) { return array(); } /* Send a simple XML string over: <phpvms> <navpoints> <navpoint>NAME</navpoint> <navpoint>NAME2</navpoint> </navpoints> </phpvms> @TODO: Convert send format to json, much smaller */ $xml = new SimpleXMLElement('<phpvms/>'); $nav_xml = $xml->addChild('navpoints'); foreach ($navpoints as $p) { $nav_xml->addChild('navpoint', $p); } /* Send the request, data is returned as JSON format */ $web_service = new CodonWebService(); $xml_response = $web_service->post(Config::Get('PHPVMS_API_SERVER') . '/navdata/get/json', $xml->asXML()); $insert = array(); $sql = 'INSERT INTO ' . TABLE_PREFIX . "navdata\n\t\t\t\t(`type`, `name`, `title`, `freq`, `lat`, `lng`) VALUES "; if (empty($xml_response)) { /* None of those exist on the server, but cache them on this side so we don't keep checking over and over */ foreach ($navpoints as $point) { $insert[] = "(0, '{$point}', '{$point}', '0', '0', '0')"; } $sql .= implode(',', $insert); DB::query($sql); return array(); } $returned_points = json_decode($xml_response); if (empty($returned_points)) { foreach ($navpoints as $point) { $insert[] = "(0, '{$point}', '{$point}', '0', '0', '0')"; } $sql .= implode(',', $insert); DB::query($sql); return array(); } $return = array(); foreach ($returned_points as $point) { $keys = array_keys($navpoints, $point->name); foreach ($keys as $k) { unset($navpoints[$k]); } $return[$point->name][] = $point; $insert[] = "({$point->type}, '{$point->name}', '{$point->title}', '{$point->freq}', '{$point->lat}', '{$point->lng}')"; } // Then the ones not listed foreach ($navpoints as $point) { $insert[] = "(0, '{$point}', '{$point}', '0', '0', '0')"; } $sql .= implode(',', $insert); DB::query($sql); return $return; }
public static function RegisterInstall($version = '') { if ($version == '') { $version = PHPVMS_VERSION; } $ext = serialize(get_loaded_extensions()); $params = new SimpleXMLElement('<registration/>'); $params->addChild('name', SITE_NAME); $params->addChild('url', SITE_URL); $params->addChild('email', SettingsData::GetSettingValue('ADMIN_EMAIL')); $params->addChild('version', $version); $params->addChild('php', phpversion()); $params->addChild('mysql', @mysql_get_server_info()); $params->addChild('ext', $ext); $url = 'http://api.phpvms.net/register'; # Do fopen(), if that fails then it'll default to # curl error_reporting(0); $file = new CodonWebService(); $response = $file->post($url, $params->asXML()); }