Beispiel #1
0
    function exportXML($forceProtocol = '')
    {
        global $CONF_server_id, $CONF_photosPerFlight, $CONF;
        if ($forceProtocol == '') {
            if ($CONF['sync']['protocol']['format'] == 'JSON') {
                $useJSON = 1;
                require_once dirname(__FILE__) . '/lib/json/CL_json.php';
            } else {
                $useJSON = 0;
            }
        } else {
            if ($forceProtocol == 'XML') {
                $useJSON = 0;
            } else {
                $useJSON = 1;
            }
        }
        $link = htmlspecialchars("http://" . $_SERVER['SERVER_NAME'] . getLeonardoLink(array('op' => 'show_waypoint', 'waypointIDview' => $this->waypointID)));
        if (!$useJSON) {
            return "<waypoint>\n<id>" . htmlspecialchars($this->waypointID) . "</id>\n<name>" . htmlspecialchars($this->name) . "</name>\n<intName>" . htmlspecialchars($this->intName) . "</intName>\n<location>" . htmlspecialchars($this->location) . "</location>\n<intLocation>" . htmlspecialchars($this->intLocation) . "</intLocation>\n<countryCode>" . htmlspecialchars($this->countryCode) . "</countryCode>\n<type>" . htmlspecialchars($this->type) . "</type>\n<lat>" . htmlspecialchars($this->lat()) . "</lat>\n<lon>" . htmlspecialchars($this->lon()) . "</lon>\n<link>" . htmlspecialchars($this->link) . "</link>\n<displayLink>" . $link . "</displayLink>\n<description>" . htmlspecialchars($this->description) . "</description>\n<modifyDate>" . htmlspecialchars($this->modifyDate) . "</modifyDate>\n</waypoint>";
        } else {
            return '{ 
"waypoint": {
"id" : ' . ($this->waypointID + 0) . ',
"name" : "' . json::prepStr($this->name) . '",
"intName" : "' . json::prepStr($this->intName) . '",
"location" : "' . json::prepStr($this->location) . '",
"intLocation" : "' . json::prepStr($this->intLocation) . '",
"countryCode" : "' . json::prepStr($this->countryCode) . '",
"type" : ' . ($this->type + 0) . ',
"lat" : ' . $this->lat() . ',
"lon" : ' . $this->lon() . ',
"link" : "' . json::prepStr($this->link) . '",
"displayLink" : "' . json::prepStr($link) . '",
"description" : "' . json::prepStr($this->description) . '",
"modifyDate" : "' . json::prepStr($this->modifyDate) . '"
}
}';
        }
    }
Beispiel #2
0
    function renameTracklog($newName, $oldName = '')
    {
        global $db;
        global $flightsTable;
        global $CONF_server_id;
        if ($oldName) {
            $orgFilename = $this->filename;
            $this->filename = $oldName;
        }
        $this->deleteSecondaryFiles();
        $this->deleteFile($this->getMapFilename());
        for ($metric_system = 1; $metric_system <= 2; $metric_system++) {
            for ($raw = 0; $raw <= 1; $raw++) {
                $this->deleteFile($this->getChartFilename("alt", $metric_system, $raw));
                $this->deleteFile($this->getChartFilename("speed", $metric_system, $raw));
                $this->deleteFile($this->getChartFilename("vario", $metric_system, $raw));
                $this->deleteFile($this->getChartFilename("takeoff_distance", $metric_system, $raw));
            }
        }
        $oldFilename = $this->getIGCFilename();
        $oldFilenameSaned = $this->getIGCFilename(1);
        $oldFilenameSanedFull = $this->getIGCFilename(2);
        $oldOLCfile = $this->getIGCFilename(0) . ".olc";
        $this->filename = $newName;
        @rename($oldFilename, $this->getIGCFilename());
        @rename($oldFilenameSaned, $this->getIGCFilename(1));
        @rename($oldFilenameSanedFull, $this->getIGCFilename(2));
        @rename($oldOLCfile, $this->getIGCFilename(0) . ".olc");
        $query = "UPDATE {$flightsTable} SET filename='" . $this->filename . "' WHERE ID=" . $this->flightID;
        // echo $query."<HR>";
        $res = $db->sql_query($query);
        if ($res <= 0) {
            echo "Error renaming IGC file for flight " . $this->flightID . " : {$query}<BR>";
        }
        require_once dirname(__FILE__) . '/lib/json/CL_json.php';
        require_once dirname(__FILE__) . '/CL_actionLogger.php';
        $log = new Logger();
        $log->userID = $this->userID;
        $log->ItemType = 1;
        // flight;
        $log->ItemID = $this->serverID && $this->serverID != $CONF_server_id ? $this->original_ID : $this->flightID;
        // 0 at start will fill in later if successfull
        $log->ServerItemID = $this->serverID ? $this->serverID : $CONF_server_id;
        $log->ActionID = 16;
        //1  => add  2  => edit; 4  => delete ; 16 -> rename trackog
        $log->ActionXML = '{
	"serverID": ' . ($this->serverID ? $this->serverID : $CONF_server_id) . ',
	"id": ' . ($isLocal ? $this->flightID : $this->original_ID) . ',
	"linkIGC": "' . $this->getIGC_URL() . '",
	"linkIGCzip": "' . $this->getZippedIGC_URL() . '",
	"newFilename": "' . json::prepStr($this->filename) . '",
	"oldFilename": "' . json::prepStr($oldName) . '"
}';
        $log->Modifier = 0;
        $log->ModifierID = 0;
        $log->ServerModifierID = 0;
        $log->Result = 1;
        if (!$log->Result) {
            $log->ResultDescription = "Problem in deleting flight  {$query}";
        }
        if (!$log->put()) {
            echo "Problem in logger<BR>";
        }
    }
     if ($row['PilotPhoto'] > 0) {
         //checkPilotPhoto($serverIDview,$pilotIDview);
         $imgBigRel = getPilotPhotoRelFilename($serverIDview, $pilotIDview);
         $imgBig = getPilotPhotoFilename($serverIDview, $pilotIDview);
         // echo $imgBig."<BR>";
         list($width, $height, $type, $attr) = getimagesize($imgBig);
         //echo $imgBig."  $CONF['photos']['mid']['max_width'], $CONF['photos']['mid']['max_height'], $width, $height <br>";
         list($width, $height) = CLimage::getJPG_NewSize($CONF['photos']['mid']['max_width'], $CONF['photos']['mid']['max_height'], $width, $height);
         $photo = "<a href='{$imgBigRel}' target='_blank'><img src='" . getPilotPhotoRelFilename($serverIDview, $pilotIDview, 1) . "'\n\t\t\tonmouseover=\"trailOn('{$imgBigRel}','','','','','','1','{$width}','{$height}','','.');\" onmouseout=\"hidetrail();\"\n\t\t\t border=0></a>";
         $photo = "<img src='" . getPilotPhotoRelFilename($serverIDview, $pilotIDview, 1) . "'>";
     }
     if ($_GET['json']) {
         $photo = json::prepStr($photo);
     }
     if ($_GET['json']) {
         $json = ' { "firstName":"' . json::prepStr($row["FirstName"]) . '", "lastName":"' . json::prepStr($row["LastName"]) . '", ' . ' "name":"' . json::prepStr($name) . '",' . ' "flag":"' . json::prepStr($flagIcon) . '",' . ' "photo":"' . $photo . '", ' . ' "sex":"' . json::prepStr($sexIcon) . '", "userID":"' . json::prepStr($row["serverID"] . 'u' . $row["pilotID"]) . '" } ';
     } else {
         $jsom = '';
     }
     //$pilots[]=array("score"=>$dmax,"text"=>$html,"json"=>$json);
     $pilots[] = array("id" => $pilotIDview, "name" => $name, "score" => $dmax);
 }
 if (count($pilots) > 0) {
     usort($pilots, "cmp");
     $i = 0;
     $count = $_GET['count'];
     if (!$count) {
         $count = 15;
     }
     foreach ($pilots as $pilot) {
         $pilotsFinal[] = $pilot;
 //$readonly_fields=array('LastName', 'FirstName');
 if ($CONF_use_NAC) {
     $readonly_fields = array();
     $list1 = $list2 = $list3 = '';
     $possible_readonly_fields = array('NACmemberID', 'LastName', 'FirstName', 'Birthdate', 'CIVL_ID');
     $list4 = "var all_readonly_fields  = '" . implode(',', $possible_readonly_fields) . "';\n";
     foreach ($CONF_NAC_list as $NACid => $NAC) {
         $NAC_input_url = $NAC['input_url'];
         if (preg_match_all("/#([^#]+)#/", $NAC_input_url, $matches_tmp1)) {
             //print_r($matches_tmp1);
             foreach ($matches_tmp1[1] as $paramName) {
                 //echo "!!$NAC_input_url@@$paramName@@".$pilot[$paramName]."^^";
                 $NAC_input_url = str_replace('#' . $paramName . '#', $pilot[$paramName], $NAC_input_url);
             }
         }
         $list1 .= "NAC_input_url[{$NACid}]  = '" . json::prepStr($NAC_input_url) . "';\n";
         $ext_input = empty($NAC['external_input']) ? 0 : 1;
         $list2 .= "NAC_external_input[{$NACid}]  = {$ext_input};\n";
         $use_clubs = $NAC['use_clubs'] + 0;
         $list2 .= "NAC_use_clubs[{$NACid}]  = {$use_clubs};\n";
         $list2 .= "NAC_select_clubs[{$NACid}]  = " . ($NAC['club_change_period_active'] || $NAC['add_to_club_period_active'] && !$pilot['NACclubID'] || L_auth::isAdmin($userID) || L_auth::isModerator($userID) ? 1 : 0) . ";\n";
         $externalfields = !empty($NAC['external_fields']) ? $NAC['external_fields'] : '';
         if ($ext_input && !empty($NAC['external_fields'])) {
             $list3 .= "NAC_external_fields[{$NACid}] = '{$externalfields}';\n";
             if ($pilot['NACid'] == $NACid) {
                 $tmp_fields = explode(',', $externalfields);
                 foreach ($tmp_fields as $fld) {
                     if (in_array($fld, $possible_readonly_fields)) {
                         $readonly_fields[] = $fld;
                     }
                 }
Beispiel #5
0
                                $MIN_VARIO = formatVario($row['MIN_VARIO']);
                                if ($singleFlight) {
                                    $flightID = $row['ID'] + 0;
                                    $flight = new flight();
                                    $flight->getFlightFromDB($flightID, 0);
                                    //$flight->makeJSON(0);  // no force
                                    $mapUrl = $flight->createStaticMap(0);
                                }
                                // $pref="http://xc.dhv.de/xc/modules/leonardo";
                                $pref = "http://" . $_SERVER['SERVER_NAME'];
                                $JSON_str .= ' {"flightID": "' . $row["ID"] . '", "date": "' . json::prepStr($row["DATE"]) . '", ' . '"DURATION": "' . json::prepStr($duration) . '", ' . '"START_TIME": "' . json::prepStr($START_TIME) . '", ' . '"END_TIME": "' . json::prepStr($END_TIME) . '", ' . '"MAX_ALT": "' . json::prepStr($MAX_ALT) . '", ' . '"MAX_VARIO": "' . json::prepStr($MAX_VARIO) . '", ';
                                '"MIN_VARIO": "' . json::prepStr($MIN_VARIO) . '", ';
                                if ($singleFlight) {
                                    $JSON_str .= '"g1": "' . json::prepStr($pref . substr($flight->getChartRelPath('alt', 1, 0), 0)) . '", ' . '"g2": "' . json::prepStr($pref . substr($flight->getChartRelPath('vario', 1, 0), 0)) . '" , ' . '"g3": "' . json::prepStr($pref . substr($flight->getChartRelPath('speed', 1, 0), 0)) . '" , ' . '"g4": "' . json::prepStr($pref . substr($flight->getChartRelPath('takeoff_distance', 1, 0), 0)) . '" , ' . '"firstLat": "' . json::prepStr($row["firstLat"]) . '", ' . '"firstLon": "' . json::prepStr($row["firstLon"]) . '", ' . '"lastLat": "' . json::prepStr($row["lastLat"]) . '", ' . '"lastLon": "' . json::prepStr($row["lastLon"]) . '", ' . '"map": "' . json::prepStr($pref . substr($mapUrl, 0)) . '" , ';
                                }
                                $JSON_str .= '"linearDistance": "' . json::prepStr($linearDistance) . '", ' . '"olcDistance": "' . json::prepStr($olcDistance) . '", ' . '"olcScore": "' . json::prepStr($olcScore) . '", ' . '"scoreSpeed": "' . json::prepStr($scoreSpeed) . '", ' . '"olcScoreType": "' . json::prepStr($olcScoreType) . '", ' . '"glider": "' . json::prepStr($row['glider']) . '", ' . '"gliderBrandImg": "' . json::prepStr($gliderBrandImg) . '", ' . '"gliderCat": "' . json::prepStr($gliderCat) . '", ' . '"categoryImg": "' . json::prepStr($categoryImg) . '", ' . '"pilotName": "' . json::prepStr($name) . '", ' . '"takeoff": "' . json::prepStr($location) . '"  } ';
                                $i++;
                            }
                            //$JSON_str='{"totalCount":"'.$i.'","flights":[ '. $JSON_str."  ] } ";
                            $JSON_str = '{ ' . ' "flights":[ ' . $JSON_str . '  ] } ';
                            sendJson($JSON_str);
                        }
                    }
                }
            }
        }
    }
}
function sendJson($JSON_str)
{
    if (ini_get('zlib.output_compression')) {
Beispiel #6
0
     }
     $olcScoreType = leoHtml::img($olcScoreTypeImg, 16, 16, 'top', formatOLCScoreType($olcScoreType, 0), 'icons1');
     $gliderType = $row["cat"];
     // 1=pg 2=hg flex 4=hg rigid 8=glider
     $gliderBrandImg = brands::getBrandImg($row["gliderBrandID"], $row['flight_glider'], $gliderType);
     $gliderTypeDesc = $gliderCatList[$row["cat"]];
     if ($row["category"]) {
         $gliderTypeDesc .= " - " . $CONF['gliderClasses'][$row["cat"]]['classes'][$row["category"]];
         $categoryImg = leoHtml::img("icon_class_" . $row["category"] . ".png", 0, 0, 'top', $gliderTypeDesc, 'icons1', '');
     } else {
         $categoryImg = '';
     }
     $gliderCat = leoHtml::img("icon_cat_" . $row["cat"] . ".png", 0, 0, 'top', $gliderTypeDesc, 'icons1 catListIcon');
     $MAX_ALT = formatAltitude($row['MAX_ALT']);
     $MAX_VARIO = formatVario($row['MAX_VARIO']);
     $JSON_str .= ' {"flightID": "' . $row["ID"] . '", "date": "' . json::prepStr($row["DATE"]) . '", ' . '"firstLat": "' . json::prepStr($row["firstLat"]) . '", ' . '"firstLon": "' . json::prepStr($row["firstLon"]) . '", ' . '"lastLat": "' . json::prepStr($row["lastLat"]) . '", ' . '"lastLon": "' . json::prepStr($row["lastLon"]) . '", ' . '"DURATION": "' . json::prepStr($duration) . '", ' . '"START_TIME": "' . json::prepStr($START_TIME) . '", ' . '"END_TIME": "' . json::prepStr($END_TIME) . '", ' . '"MAX_ALT": "' . json::prepStr($MAX_ALT) . '", ' . '"MAX_VARIO": "' . json::prepStr($MAX_VARIO) . '", ' . '"linearDistance": "' . json::prepStr($linearDistance) . '", ' . '"olcDistance": "' . json::prepStr($olcDistance) . '", ' . '"olcScore": "' . json::prepStr($olcScore) . '", ' . '"scoreSpeed": "' . json::prepStr($scoreSpeed) . '", ' . '"olcScoreType": "' . json::prepStr($olcScoreType) . '", ' . '"gliderBrandImg": "' . json::prepStr($gliderBrandImg) . '", ' . '"gliderCat": "' . json::prepStr($gliderCat) . '", ' . '"categoryImg": "' . json::prepStr($categoryImg) . '", ' . '"pilotName": "' . json::prepStr($name) . '", ' . '"takeoff": "' . json::prepStr($location) . '"  } ';
     $i++;
 }
 //$JSON_str='{"totalCount":"'.$i.'","flights":[ '. $JSON_str."  ] } ";
 $JSON_str = '{ "flights":[ ' . $JSON_str . "  ] } ";
 if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2')) {
     header('Cache-Control: no-cache, pre-check=0, post-check=0, max-age=0');
 } else {
     header('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
 }
 header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
 header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
 header('Content-Type: text/html');
 //$callbackFunction=$_GET['callback'];
 //echo $callbackFunction."(".$JSON_str.")";
 echo $JSON_str;
Beispiel #7
0
    foreach ($AirspaceArea as $i => $area) {
        if ($i > 0) {
            $res .= " ,\n";
        }
        $points = "";
        if ($area->Shape == 1) {
            // area
            for ($j = 0; $j < $area->NumPoints; $j++) {
                if ($j > 0) {
                    $points .= " ,";
                }
                $points .= $area->Points[$j]->Latitude . "," . $area->Points[$j]->Longitude . "";
            }
        } else {
            if ($area->Shape == 2) {
                // cirle
                $pointsArray = CalculateCircle($area->Latitude, $area->Longitude, $area->Radius);
                for ($j = 0; $j < count($pointsArray); $j++) {
                    if ($j > 0) {
                        $points .= " ,";
                    }
                    $points .= $pointsArray[$j]->lat . "," . $pointsArray[$j]->lng;
                }
            }
        }
        $res .= ' { "type":"' . json::prepStr($area->Type) . '", "name":"' . json::prepStr($area->Name) . '", "base":"' . json::prepStr(floor($area->Base->Altitude)) . '", "top":"' . json::prepStr(floor($area->Top->Altitude)) . '", "color":"' . json::prepStr($airspace_color[$area->Type]) . '", "points": [' . $points . '] } ';
        $i++;
    }
    $res .= ' ]  }';
    echo $res;
}
				
				$photo="<a href='$imgBigRel' target='_blank'><img src='".getPilotPhotoRelFilename($serverIDview,$pilotIDview,1)."'
			onmouseover=\"trailOn('$imgBigRel','','','','','','1','$width','$height','','.');\" onmouseout=\"hidetrail();\" 
			 border=0></a>";					
				
				$photo="<img src='".getPilotPhotoRelFilename($serverIDview,$pilotIDview,1)."'>";
			}
			if( $_GET['json'] ){
				$photo=json::prepStr($photo);
			}
			if ($_GET['json']) {
				$json=' { "firstName":"'.json::prepStr($row["FirstName"]).'", "lastName":"'.json::prepStr($row["LastName"]).'", '.			
			' "name":"'.json::prepStr($name).'",'.
			' "flag":"'.json::prepStr($flagIcon).'",'.
			' "photo":"'.$photo.'", '.
			' "sex":"'.json::prepStr($sexIcon).'", "userID":"'.json::prepStr($row["serverID"].'u'.$row["pilotID"]).'" } ';
			} else {
				$jsom='';
			}
		    $pilots[]=array("score"=>$dmax,"text"=>$html,"json"=>$json);
			
			
		}

		function cmp($a0, $b0)
		{
			$a=$a0['score'];
			$b=$b0['score'];
		    if ($a == $b) {
		        return 0;
		    }