public function jumpseat()
 {
     $icao = DB::escape($_GET['depicao']);
     $this->set('airport', OperationsData::getAirportInfo($icao));
     $this->set('cost', DB::escape($_GET['cost']));
     $this->show('RSL/realschedulelite_jumpseatconfirm.tpl');
 }
Esempio n. 2
0
 public function jumpseat()
 {
     $icao = DB::escape($_GET['depicao']);
     $this->set('airport', OperationsData::getAirportInfo($icao));
     $this->set('cost', DB::escape($_GET['cost']));
     $this->show('fbsv/jumpseatconfirm.php');
 }
Esempio n. 3
0
 public function jumpseat()
 {
     if (!Auth::LoggedIn()) {
         $this->set('message', 'You must be logged in to access this feature!');
         $this->render('core_error.tpl');
         return;
     } else {
         $icao = DB::escape($this->post->depicao);
         $this->set('airport', OperationsData::getAirportInfo($icao));
         $this->set('cost', DB::escape($this->post->cost));
         $this->show('Fltbook/jumpseatticket');
     }
 }
Esempio n. 4
0
 public function viewmap()
 {
     if ($this->get->type === 'pirep') {
         $data = PIREPData::getReportDetails($this->get->id);
     } elseif ($this->get->type === 'schedule') {
         $data = SchedulesData::getScheduleDetailed($this->get->id);
     } elseif ($this->get->type === 'preview') {
         $data = new stdClass();
         $depicao = OperationsData::getAirportInfo($this->get->depicao);
         $arricao = OperationsData::getAirportInfo($this->get->arricao);
         $data->deplat = $depicao->lat;
         $data->deplng = $depicao->lng;
         $data->depname = $depicao->name;
         $data->arrlat = $arricao->lat;
         $data->arrlng = $arricao->lng;
         $data->arrname = $arricao->name;
         $data->route = $this->get->route;
         unset($depicao);
         unset($arricao);
         $data->route_details = NavData::parseRoute($data);
     }
     $this->set('mapdata', $data);
     $this->render('route_map.tpl');
 }
Esempio n. 5
0
 /**
  * PIREPData::fileReport()
  * 
  * @param mixed $pirepdata
  * @return
  */
 public static function fileReport($pirepdata)
 {
     /*$pirepdata = array('pilotid'=>'',
       'code'=>'',
       'flightnum'=>'',
       'depicao'=>'',
       'arricao'=>'',
       'aircraft'=>'',
       'flighttime'=>'',
       'submitdate'=>'',
       'comment'=>'',
       'fuelused'=>'',
       'source'=>''
       'log'=>''
       );*/
     if (!is_array($pirepdata)) {
         return false;
     }
     $pirepdata['code'] = strtoupper($pirepdata['code']);
     $pirepdata['flightnum'] = strtoupper($pirepdata['flightnum']);
     $pirepdata['depicao'] = strtoupper($pirepdata['depicao']);
     $pirepdata['arricao'] = strtoupper($pirepdata['arricao']);
     /* Check if this PIREP was just submitted, check the last 10 minutes
      */
     if (Config::Get('PIREP_CHECK_DUPLICATE') == true) {
         $time_limit = Config::Get('PIREP_TIME_CHECK');
         if (empty($time_limit)) {
             $time_limit = 1;
         }
         $sql = "SELECT `pirepid` FROM " . TABLE_PREFIX . "pireps\n\t\t\t\t\tWHERE `pilotid` = {$pirepdata['pilotid']} \n\t\t\t\t\t\tAND `code` = '{$pirepdata['code']}'\n\t\t\t\t\t\tAND `flightnum` = '{$pirepdata['flightnum']}' \n\t\t\t\t\t\tAND DATE_SUB(NOW(), INTERVAL {$time_limit} MINUTE) <= `submitdate`";
         $res = DB::get_row($sql);
         if ($res) {
             self::$lasterror = 'This PIREP was just submitted!';
             return $res->pirepid;
         }
     }
     if ($pirepdata['depicao'] == '' || $pirepdata['arricao'] == '') {
         self::$lasterror = 'The departure or arrival airports are blank';
         return false;
     }
     # Check the aircraft
     if (!is_numeric($pirepdata['aircraft'])) {
         // Check by registration
         $ac = OperationsData::getAircraftByReg($pirepdata['aircraft']);
         if ($ac) {
             $pirepdata['aircraft'] = $ac->id;
         } else {
             // Check by name
             $ac = OperationsData::getAircraftByName($pirepdata['aircraft']);
             if ($ac) {
                 $pirepdata['aircraft'] = $ac->id;
             } else {
                 $pirepdata['aircraft'] = '0';
             }
         }
     }
     # Check the airports, add to database if they don't exist
     $depapt = OperationsData::getAirportInfo($pirepdata['depicao']);
     if (!$depapt) {
         $depapt = OperationsData::RetrieveAirportInfo($pirepdata['depicao']);
     }
     $arrapt = OperationsData::getAirportInfo($pirepdata['arricao']);
     if (!$arrapt) {
         $arrapt = OperationsData::RetrieveAirportInfo($pirepdata['arricao']);
     }
     # Look up the schedule
     $sched = SchedulesData::getScheduleByFlight($pirepdata['code'], $pirepdata['flightnum']);
     /*	Get route information, and also the detailed layout of the route
        Store it cached, in case the schedule changes later, then the route
        information remains intact. Also, if the nav data changes, then 
        the route is saved as it was 
        */
     if (!empty($pirepdata['route'])) {
         /*	They supplied some route information, so build up the data
            based on that. It needs a certain structure passed, so build that */
         $pirepdata['route'] = str_replace('SID', '', $pirepdata['route']);
         $pirepdata['route'] = str_replace('STAR', '', $pirepdata['route']);
         $pirepdata['route'] = str_replace('DCT', '', $pirepdata['route']);
         $pirepdata['route'] = trim($pirepdata['route']);
         $tmp = new stdClass();
         $tmp->deplat = $depapt->lat;
         $tmp->deplng = $depapt->lng;
         $tmp->route = $pirepdata['route'];
         $pirepdata['route_details'] = NavData::parseRoute($tmp);
         $pirepdata['route_details'] = serialize($pirepdata['route_details']);
         unset($tmp);
     }
     if (empty($pirepdata['route']) && !empty($sched->route)) {
         $pirepdata['route'] = $sched->route;
         $pirepdata['route'] = str_replace('SID', '', $pirepdata['route']);
         $pirepdata['route'] = str_replace('STAR', '', $pirepdata['route']);
         $pirepdata['route'] = str_replace('DCT', '', $pirepdata['route']);
         $pirepdata['route'] = trim($pirepdata['route']);
         /*	The schedule doesn't have any route_details, so let's populate
               the schedule while we're here. Then we'll use that same info
               to populate our details information 
            */
         if (empty($sched->route_details)) {
             $pirepdata['route_details'] = serialize(SchedulesData::getRouteDetails($sched->id));
         } else {
             /*	The schedule does have route information, and it's already been cached */
             $pirepdata['route_details'] = $sched->route_details;
         }
     }
     /*	This setting forces the next code to automatically
        calculate a load value for this current PIREP */
     if (Config::Get('PIREP_OVERRIDE_LOAD') == true) {
         $pirepdata['load'] == '';
     }
     # Check the load, if it's blank then look it up
     #	Based on the aircraft that was flown
     if (!isset($pirepdata['load']) || empty($pirepdata['load'])) {
         $pirepdata['load'] = FinanceData::getLoadCount($pirepdata['aircraft'], $sched->flighttype);
     }
     /* If the distance isn't supplied, then calculate it */
     if (!isset($pirepdata['distance']) || empty($pirepdata['distance'])) {
         $pirepdata['distance'] = OperationsData::getAirportDistance($depapt, $arrapt);
     }
     /* See if there's a landing rate */
     if (!isset($pirepdata['landingrate']) || empty($pirepdata['landingrate'])) {
         $pirepdata['landingrate'] = 0;
     }
     /* Any "raw" parameterized data which needs to be added */
     if (isset($pirepdata['rawdata'])) {
         $pirepdata['rawdata'] = serialize($pirepdata['rawdata']);
     } else {
         $pirepdata['rawdata'] = '';
     }
     /* Escape the comment field */
     //$pirepdata['log'] = DB::escape($pirepdata['log']);
     if (isset($pirepdata['comment'])) {
         $comment = DB::escape($pirepdata['comment']);
         unset($pirepdata['comment']);
     }
     /* Proper timestamp */
     $pirepdata['flighttime'] = str_replace(':', '.', $pirepdata['flighttime']);
     $pirepdata['flighttime_stamp'] = str_replace('.', ':', $pirepdata['flighttime']) . ':00';
     /* Export status as 0 */
     $pirepdata['exported'] = 0;
     $pirepdata['submitdate'] = 'NOW()';
     $pirepdata['modifieddate'] = 'NOW()';
     $pirepdata['accepted'] = PIREP_PENDING;
     $pirepdata['expenselist'] = '0';
     $pirepdata['flighttype'] = $sched->flighttype;
     # Do the insert based on the columns here
     $cols = array();
     $col_values = array();
     foreach ($pirepdata as $key => $value) {
         if ($key == 'submitdate') {
             $value = 'NOW()';
         } elseif ($key == 'comment') {
             continue;
         } else {
             $value = "'" . DB::escape($value) . "'";
         }
         $cols[] = "`{$key}`";
         $col_values[] = $value;
     }
     $cols = implode(', ', $cols);
     $col_values = implode(', ', $col_values);
     $sql = 'INSERT INTO ' . TABLE_PREFIX . "pireps ({$cols}) VALUES ({$col_values});";
     DB::query($sql);
     $pirepid = DB::$insert_id;
     // Add the comment if its not blank
     if ($comment != '') {
         self::addComment($pirepid, $pirepdata['pilotid'], $comment);
     }
     # Update the financial information for the PIREP, true to refresh fuel
     self::PopulatePIREPFinance($pirepid, true);
     # Do other assorted tasks that are along with a PIREP filing
     # Update the flown count for that route
     self::UpdatePIREPFeed();
     # Update any pilot's information
     $pilotinfo = PilotData::getPilotData($pirepdata['pilotid']);
     $pilotcode = PilotData::getPilotCode($pilotinfo->code, $pilotinfo->pilotid);
     PilotData::UpdateLastPIREPDate($pilotinfo->pilotid);
     if (Config::Get('EMAIL_SEND_PIREP') === true) {
         # Send an email to the admin that a PIREP was submitted
         $sub = "A PIREP has been submitted by {$pilotcode} ({$pirepdata['depicao']} - {$pirepdata['arricao']})";
         $message = "A PIREP has been submitted by {$pilotcode} " . "({$pilotinfo->firstname} {$pilotinfo->lastname})\n\n" . "{$pirepdata['code']}{$pirepdata['flightnum']}: {$pirepdata['depicao']} to {$pirepdata['arricao']}\n" . "Aircraft: {$pirepdata['aircraft']}\n" . "Flight Time: {$pirepdata['flighttime']}\n" . "Landing Rate: {$pirepdata['landingrate']}\n" . "Filed using: {$pirepdata['source']}\n\n" . "Comment: {$comment}\n\n" . "Click to approve this pirep (admin must be signed in):\n" . adminurl('/pirepadmin/approvepirep/' . $pirepid);
         $email = Config::Get('EMAIL_NEW_PIREP');
         if (empty($email)) {
             $email = ADMIN_EMAIL;
         }
         Util::SendEmail($email, $sub, $message);
     }
     /* Add this into the activity feed */
     $message = Lang::get('activity.new.pirep');
     foreach ($pirepdata as $key => $value) {
         $message = str_replace('$' . $key, $value, $message);
     }
     # Add it to the activity feed
     ActivityData::addActivity(array('pilotid' => $pirepdata['pilotid'], 'type' => ACTIVITY_NEW_PIREP, 'refid' => $pirepid, 'message' => htmlentities($message)));
     /* Now send data to vaCentral */
     CentralData::send_pirep($pirepid);
     // Reset this ID back
     DB::$insert_id = $pirepid;
     self::$pirepid = $pirepid;
     return $pirepid;
 }
Esempio n. 6
0
	<textarea name="route" style="width: 600px; height: 100px;"><?php 
echo $_GET['route'];
?>
</textarea>
	<br />
	<input type="submit" name="submit" value="View Route" />
</form>
<pre>
<?php 
$data = new stdClass();
$data->route = $_GET['route'];
$depicao = OperationsData::getAirportInfo($_GET['depicao']);
if (!$depicao) {
    $depicao = OperationsData::RetrieveAirportInfo($_GET['depicao']);
}
$arricao = OperationsData::getAirportInfo($_GET['arricao']);
if (!$arricao) {
    $arricao = OperationsData::RetrieveAirportInfo($_GET['arricao']);
}
$data->deplat = $depicao->lat;
$data->deplng = $depicao->lng;
$data->depname = $depicao->name;
$data->arrlat = $arricao->lat;
$data->arrlng = $arricao->lng;
$data->arrname = $arricao->name;
unset($depicao);
unset($arricao);
$data->route_details = NavData::parseRoute($data);
print_r($data->route_details);
$mapdata = $data;
?>
Esempio n. 7
0
    public function importairports()
    {
        if (!file_exists($_FILES['uploadedfile']['tmp_name'])) {
            $this->render('airport_import_form.php');
            return;
        }
        echo '<h3>Processing Import</h3>';
        # Get the column headers
        $allaircraft = OperationsData::getAllAirports(false);
        $headers = array();
        $dbcolumns = DB::get_cols();
        foreach ($dbcolumns as $col) {
            $headers[] = $col->name;
        }
        $temp_name = $_FILES['uploadedfile']['tmp_name'];
        $new_name = CACHE_PATH . '/' . $_FILES['uploadedfile']['name'];
        if (!move_uploaded_file($temp_name, $new_name)) {
            $this->render('core_error.php');
            $this->set('message', 'Shit the bed?');
            return false;
        }
        $fp = fopen($new_name, 'r');
        if (isset($_POST['header'])) {
            $skip = true;
        }
        $added = 0;
        $updated = 0;
        $total = 0;
        echo '<div style="overflow: auto; height: 400px; 
					border: 1px solid #666; margin-bottom: 20px; 
					padding: 5px; padding-top: 0px; padding-bottom: 20px;">';
        if (isset($_POST['erase_airports'])) {
            OperationsData::deleteAllAirports();
            echo "Deleting All Airports<br />";
        }
        while ($fields = fgetcsv($fp, 1000, ',')) {
            // Skip the first line
            if ($skip == true) {
                $skip = false;
                continue;
            }
            //Check for empty lines, continue
            if (empty($fields)) {
                continue;
            }
            //Create Varibles...
            $icao = $fields[0];
            $name = $fields[1];
            $country = $fields[2];
            $lat = $fields[3];
            $lng = $fields[4];
            $hub = $fields[5];
            $fuelprice = $fields[6];
            $chartlink = $fields[7];
            //Since we need the values filled in, if not, then continue
            if (empty($icao) || empty($lat) || empty($lng)) {
                continue;
            }
            # Enabled or not
            if ($hub == '1') {
                $hub = true;
            } else {
                $hub = false;
            }
            //Build Array, seem can't use the array merge for some reason...
            $data = array('icao' => $fields[0], 'name' => $fields[1], 'country' => $fields[2], 'lat' => $fields[3], 'lng' => $fields[4], 'hub' => $hub, 'fuelprice' => $fields[6], 'chartlink' => $fields[7]);
            # Does this airport exist?
            $aiport_info = OperationsData::getAirportInfo($icao);
            if ($aiport_info) {
                echo "Editing {$icao} - {$name}<br>";
                OperationsData::editAirport($data);
                $updated++;
            } else {
                echo "Adding {$icao} - {$name}<br>";
                OperationsData::addAirport($data);
                $added++;
            }
            $total++;
        }
        //You should always close a file before deleting otherwise it will spit the unlink error due to permissions
        fclose($fp);
        unlink($new_name);
        echo "The import process is complete, added {$added} airports, updated {$updated}, for a total of {$total}<br />";
    }
?>
" title="Available aircraft to search from your current location">
            </td>
        </tr>
        <tr>
            <td>Select Arrival Airfield:</td>
            <td >
                <select style="width: 30%" name="arricao">
                    <option value="">All</option>
                    <?php 
$airs = FBSVData::arrivalairport($last_location->arricao);
if (!$airs) {
    echo '<option>No Airports Available!</option>';
} else {
    foreach ($airs as $air) {
        $nam = OperationsData::getAirportInfo($air->arricao);
        echo '<option value="' . $air->arricao . '">' . $air->arricao . ' - ' . $nam->name . '</option>';
    }
}
?>
                </select> <img src="<?php 
echo fileurl('/lib/images/info.png');
?>
" title="Available airports to search from your current location">
            </td>
        	<td align="center" >
				<input type="hidden" name="action" value="findflight" />
                <input type="submit" name="submit" value="Search Flight" />
			</td>			
		</tr>
    </table>
Esempio n. 9
0
 /**
  * ActivityData::pushToTwitter()
  * 
  * @param mixed $params
  * @return void
  */
 public static function pushToTwitter($params)
 {
     require_once CORE_LIB_PATH . '/twitteroauth/twitteroauth.php';
     $params = array_merge(array('pilotid' => '', 'type' => '', 'refid' => '', 'message' => ''), $params);
     $message = '';
     # These defaults will be ignored
     $lat = -120;
     $long = -120;
     if (!empty($params['pilotid'])) {
         $pilot = PilotData::getPilotData($params['pilotid']);
         $message .= PilotData::getPilotCode($pilot->code, $pilot->pilotid) . ' ' . $pilot->firstname . ' ' . $pilot->lastname . ' ';
     }
     $message .= $params['message'] . ' ';
     # Show a new PIREP, also get the airport information
     if ($params['type'] == ACTIVITY_NEW_PIREP) {
         $message .= url('/pireps/view/' . $params['refid']);
         $pirep = PIREPData::findPIREPS(array('pirepid' => $params['refid']), 1);
         $pirep = $pirep[0];
         $airport = OperationsData::getAirportInfo($pirep->arricao);
         $lat = $airport->lat;
         $long = $airport->lng;
     } elseif ($params['type'] == ACTIVITY_NEW_PILOT) {
         $message .= url('/profile/view/' . $params['pilotid']);
         $airport = OperationsData::getAirportInfo($pilot->hub);
         $lat = $airport->lat;
         $long = $airport->lng;
     }
     $tweet = new TwitterOAuth(Config::get('TWITTER_CONSUMER_KEY'), Config::get('TWITTER_CONSUMER_SECRET'), Config::get('TWITTER_OAUTH_TOKEN'), Config::get('TWITTER_OAUTH_SECRET'));
     $status = $tweet->post('statuses/update', array('status' => $message, 'lat' => $lat, 'long' => $long, 'trim_user' => true));
     return $status;
 }
Esempio n. 10
0
?>
<html>
<head>
</head>
<body>
<form method="get" action="">
	Enter airport: <input type ="text" name="depicao" value="<?php 
echo $_GET['depicao'];
?>
" /> 
	<input type="submit" name="submit" value="View Distances" />
</form>
<p>To verify, use <a href="http://www.gpsvisualizer.com/calculators" target="_new">gps visualizer</a>. press control+f to find a certain airport.</p>
<?php 
if (!isset($_GET['submit'])) {
    exit;
}
$depicao = OperationsData::getAirportInfo($_GET['depicao']);
$all_airports = OperationsData::getAllAirports();
echo "Plotting distance between {$depicao->name} ({$depicao->icao}) and...<br><br>";
echo '<ul>';
foreach ($all_airports as $airport) {
    Config::Set('UNITS', 'mi');
    $mi_dist = OperationsData::getAirportDistance($depicao, $airport);
    Config::Set('UNITS', 'km');
    $km_dist = OperationsData::getAirportDistance($depicao, $airport);
    Config::Set('UNITS', 'nm');
    $nm_dist = OperationsData::getAirportDistance($depicao, $airport);
    echo "<li>{$airport->name} ({$airport->icao})\n\t\t\t<ul>\n\t\t\t\t<li>{$depicao->lat}, {$depicao->lng}  >  {$airport->lat}, {$airport->lng}</li>\n\t\t\t\t<li>{$mi_dist} m</li>\n\t\t\t\t<li>{$km_dist} km</li>\n\t\t\t\t<li>{$nm_dist} nm</li>\n\t\t\t</ul>\n\t\t  </li>";
}
echo '</ul>';
Esempio n. 11
0
 # Get the pilot id:
 $pilotid = PilotData::parsePilotID($_POST['UserName']);
 # Get the flight ID
 $flightinfo = SchedulesData::getProperFlightNum($_POST['FlightId']);
 $code = $flightinfo['code'];
 $flightnum = $flightinfo['flightnum'];
 preg_match('/^([A-Za-z]*) - .*/', $_POST['DepartureIcaoName'], $aptinfo);
 $depicao = $aptinfo[1];
 # Make sure it exists
 if (!OperationsData::getAirportInfo($depicao)) {
     OperationsData::RetrieveAirportInfo($depicao);
 }
 preg_match('/^([A-Za-z]*) - .*/', $_POST['ArrivalIcaoName'], $aptinfo);
 $arricao = $aptinfo[1];
 # Make sure it exists
 if (!OperationsData::getAirportInfo($arricao)) {
     OperationsData::RetrieveAirportInfo($arricao);
 }
 # Find a flight using just the flight code
 $sched = SchedulesData::findFlight($flightnum);
 # Can't do it. They completely screwed this up
 if (!$sched) {
     echo "#Answer# Error - Invalid flight ID;";
     return;
 }
 $code = $sched->code;
 $flightnum = $sched->flightnum;
 $aircraft = $sched->aircraft;
 if ($depicao != $sched->depicao || $arricao != $sched->arricao) {
     $comment = 'phpVMS Message: Arrival or Departure does not match schedule. ';
 }