Jon Posted September 9, 2011 Report Share Posted September 9, 2011 Hello All, I am looking to create separate pages for my virtual airline's schedules. Is there a get a schedule function? In the API, I can see you can find by dep icao and arr icao but it doesn't mention anything about by airline.Does this just get called in the main module.php and then just set a variable? Thanks in advance Jon Quote Link to comment Share on other sites More sharing options...
Guest lorathon Posted September 9, 2011 Report Share Posted September 9, 2011 Open the core/common/SchedulesData.class.php file. At the top you will see the following. It has instructions on how to pull schedules using the SchedulesData::findSchedules Function. /** * A generic find function for schedules. As parameters, do: * * $params = array( 's.depicao' => 'value', * 's.arricao' => array ('multiple', 'values'), * ); * * Syntax is ('s.columnname' => 'value'), where value can be * an array is multiple values, or with a SQL wildcard (%) * if that's what is desired. * * Columns from the schedules table should be prefixed by 's.', * the aircraft table as 'a.' * * You can also pass offsets ($start and $count) in order to * facilitate pagination * * @tutorial http://docs.phpvms.net/media/development/searching_and_retriving_schedules */ public static function findSchedules($params, $count = '', $start = '') { $sql = 'SELECT s.*, a.id as aircraftid, a.name as aircraft, a.registration, a.minrank as aircraft_minrank, a.ranklevel as aircraftlevel, dep.name as depname, dep.lat AS deplat, dep.lng AS deplng, arr.name as arrname, arr.lat AS arrlat, arr.lng AS arrlng FROM ' . TABLE_PREFIX . 'schedules AS s LEFT JOIN ' . TABLE_PREFIX . 'airports AS dep ON dep.icao = s.depicao LEFT JOIN ' . TABLE_PREFIX . 'airports AS arr ON arr.icao = s.arricao LEFT JOIN ' . TABLE_PREFIX . 'aircraft AS a ON a.id = s.aircraft '; /* Build the select "WHERE" based on the columns passed, this is a generic function */ $sql .= DB::build_where($params); // Order matters if (Config::Get('SCHEDULES_ORDER_BY') != '') { $sql .= ' ORDER BY ' . Config::Get('SCHEDULES_ORDER_BY'); } if (strlen($count) != 0) { $sql .= ' LIMIT ' . $count; } if (strlen($start) != 0) { $sql .= ' OFFSET ' . $start; } $ret = DB::get_results($sql); if(!$ret) { return array(); } return $ret; } Quote Link to comment Share on other sites More sharing options...
Strider Posted September 9, 2011 Report Share Posted September 9, 2011 Is it a possibility to get an example of how to seperate schedules by airline? Quote Link to comment Share on other sites More sharing options...
Guest lorathon Posted September 9, 2011 Report Share Posted September 9, 2011 Is it a possibility to get an example of how to seperate schedules by airline? Sure. <?php $code = 'AA'; // insert the airline code into here $count = 10; // set the number of schedules you wish returned $params = array( 's.code' => $code, 's.enabled' => 1, ); $scheds = SchedulesData::finsSchedules($params); // This will give you all of the (enabled) schedules with the airline code plugged into $code $scheds = SchedulesData::findSchedules($params, $count); // This will give $count number of (enabled) schedules with the airline code Quote Link to comment Share on other sites More sharing options...
Strider Posted September 9, 2011 Report Share Posted September 9, 2011 Where about should that go? In the function findSchedules? Or above that? Quote Link to comment Share on other sites More sharing options...
Guest lorathon Posted September 9, 2011 Report Share Posted September 9, 2011 What I would do is to write a new module using that code. (NONE OF THIS HAS BEEN TESTED. I WROTE IT HERE. ) core/modules/custom_schedules.php <?php class custom_schedules extends CodonModule { public static index() { $this->set('airlines', OperationsData::getAllAirlines(true); $this->render('custom_schedules_main.tpl'); } public static airlineSched($code) { $params = array( 's.code' => $code, 's.enabled' => 1, ); $scheds = SchedulesData::findSchedules($params); $this->set('scheds', $scheds); $this->render('custom_schedules_airline.tpl'); } } So you will need to construct two templates custom_schedules_main.tpl <table> <thead> <th>Airline Code</th> <th>Details</th> </thead> <tbody> <?php if($airlines) { foreach($airlines as $row) { ?> <tr> <td><?php echo $row->code?></td> <td><a href="<?php echo SITE_URL.'/index.php/custom_schedules/airlineSched/'.$row->code?>">LINK</a></td> </tr> <?php } } else { ?> <tr> <td>No Airlines Available</td> </tr> </tbody> </table> custom_schedules_airline.tpl <table> <thead> <th>Flight #</th> </thead> <tbody> <?php if($scheds) { foreach($scheds as $row) { ?> <tr> <td><?php echo $row->code.$row->flightnum?></td> </tr> <?php } } else { ?> <tr> <td>No Schedules for this Airline</td> </tr> </tbody> </table> Then you should be able to call the module from www.YOURSITE.com/index.php/custom_schedules Quote Link to comment Share on other sites More sharing options...
Strider Posted September 9, 2011 Report Share Posted September 9, 2011 Found some little errors, fixed them, and they work a treat, thanks Jeff +1 to you. Quote Link to comment Share on other sites More sharing options...
Strider Posted September 9, 2011 Report Share Posted September 9, 2011 Click here You can see it in action . Quote Link to comment Share on other sites More sharing options...
Guest lorathon Posted September 9, 2011 Report Share Posted September 9, 2011 No problem. If you post the errors I will change my original post. I was trying to do it all from memory and quickly. Figured I might have missed something Quote Link to comment Share on other sites More sharing options...
Strider Posted September 9, 2011 Report Share Posted September 9, 2011 Module code: <?php class airlineschedules extends CodonModule { public function index() { $this->set('airlines', OperationsData::getAllAirlines(true)); $this->render('custom_schedules_main.tpl'); } public function airlineSched($code) { $params = array( 's.code' => $code, 's.enabled' => 1, ); $scheds = SchedulesData::findSchedules($params); $this->set('scheds', $scheds); $this->render('custom_schedules_airline.tpl'); } } ?> NB: I changed the name of the module you had public static index, should have been public function or public static function, but function works just fine. Also with the SchedulesData::findSchedules, you had fat fingered the keyboard, and had finsSchedules hehe. custom_schedules_airline: <table> <thead> <th>Flight #</th> <th>Dep. airport</th> <th>Arr. Airport</th> <th>Book</th> </thead> <tbody> <?php if($scheds) { foreach($scheds as $row) { ?> <tr> <td><a href="<?php echo url('/schedules/details/'.$row->id);?>"><?php echo $row->code.$row->flightnum?></a></td> <td><?php echo $row->depicao . ' '. $row->depname;?></td> <td><?php echo $row->arricao .' '. $row->arrname;?></td> <td><?php if(Auth::LoggedIn()) { ?> <a id="<?php echo $row->id; ?>" class="addbid" href="<?php echo url('/schedules/addbid');?>">Add to Bid</a> <?php } ?> </td> </tr> <?php } } else { ?> <tr> <td>No Schedules for this Airline</td> </tr> <?php } ?> </tbody> </table> NB: I have edited to my own liking. Main problem was you never closed the else statement, the same with the custom_schedules_main.tpl Custome_schedules_main.tpl: <table border="1" class="display" id="schedule"> <thead> <th>Airline Code</th> <th>Details</th> </thead> <tbody> <?php if($airlines) { foreach($airlines as $row) { ?> <tr> <td><?php echo $row->code?></td> <td><a href="<?php echo SITE_URL.'/index.php/airlineschedules/airlineSched/'.$row->code?>">View Schedules</a></td> </tr> <?php } } else { ?> <tr> <td>No Airlines Available</td> </tr> <?php } ?> </tbody> </table> NB:I have edited this to my liking. Quote Link to comment Share on other sites More sharing options...
Jon Posted September 10, 2011 Author Report Share Posted September 10, 2011 Thanks for this guys Will take a look later Jon Quote Link to comment Share on other sites More sharing options...
CPC900 Posted October 19, 2012 Report Share Posted October 19, 2012 I get an error How does it "grab" the schedule data from the sql database? Is it because I have a different code for my database, other than phpvms_ Here is the error: [b] Not Found[/b] The requested URL /CPCfile:///index.php/airlineschedules/airlineSched/CPC was not found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. Quote Link to comment Share on other sites More sharing options...
CPC900 Posted October 22, 2012 Report Share Posted October 22, 2012 BUMP Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.