示例#1
0
 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;
 }
示例#2
0
 /**
  * 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());
 }
示例#3
0
 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;
 }
示例#4
0
 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());
 }