public function fs_shortcode($atts) { // FIRST CHECK FOR POST REQUEST AND CALL 'query' METHOD FROM 'FS_Query'. // METHOD WILL RETURN RESULTS VIEW if (isset($_POST['fs_query'])) { $fs_rss_result = FS_Query::query(); return $fs_rss_result; } // IF NO $_POST['fs_query'] THEN JUST CONTINUE AS NORMAL DISPLAYING THE FORM // CHECK GUIDs ARE SET BEFORE DISPLAYING QUERY FORM if ($this->FS_GUID_flight || $this->FS_GUID_route) { // RETURN THE GENERIC FORM FOR QUERIENG FLIGHTSTATS RSS FEED // note * include in ob_buffer and assign to variable in order to return through shortcode. ob_start(); // start buffer require 'views/query_form.php'; // include form $fs_query_form = ob_get_contents(); // assign buffer contents to variable ob_end_clean(); // end buffer and remove buffer contents return $fs_query_form; // IF AT LEAST ONE GUID IS NOT SET DISPLAY ERROR MESSAGE } else { // DISPLAY ERROR MESSAGE IF NO GUID SUPPLIED return '<p style="margin: 10px; padding: 5px; background: #f00; text-align:center; font-weight:bold; color: #000;">Please supply a valid FlightStats GUID</p>'; } }
static function query() { // SANITIZE POST INPUT $fs_rss_params = filter_var_array($_POST, FILTER_SANITIZE_STRING); // CHECK IF FIELD HIDDEN WITH CSS HAS BEEN SUBMITTED WITH A VALUE. // IF SO IT'S PROBABLY AN AUTOMATED SUBMISSION, SO RETURN ERROR MESSAGE. if ($fs_rss_params['fs_bot_check'] !== '') { return self::FS_ERROR_MISSING; } // --------------------------- CREATE DATE ------ // SET TIME TO TODAY $fs_time = time(); // THEN.. // CHECK IF SELECTED DAY YESTERDAY OR TOMORROW AND ADD OR SUBTRACT 60*60*24 = 86400 - ONE DAY if ($fs_rss_params['fs_sched_date'] === 'yesterday') { $fs_time -= 86400; } elseif ($fs_rss_params['fs_sched_date'] === 'tomorrow') { $fs_time += 86400; } // CREATE FORMATTED DATE FOR QUERY $fs_date = date('Y-m-d', $fs_time); // ---------------------------------------------- // CREATE REMAINING QUERY VARS // FLIGHT NO = $fs_flight if (isset($fs_rss_params['fs_flight_no']) && $fs_rss_params['fs_flight_no'] != '') { $fs_flight = trim($fs_rss_params['fs_flight_no']); } // DEPARTURE AIRPORT = $fs_dep if (isset($fs_rss_params['fs_dep_airport']) && $fs_rss_params['fs_dep_airport'] != '') { $fs_dep = trim($fs_rss_params['fs_dep_airport']); } // ARRIVAL AIRPORT = $fs_arr if (isset($fs_rss_params['fs_arr_airport']) && $fs_rss_params['fs_arr_airport'] != '') { $fs_arr = trim($fs_rss_params['fs_arr_airport']); } // IF FLIGHT NO IS SUPPLIED QUERY IT ALONE. if (isset($fs_flight)) { $fs_result = self::execute_query($fs_date, $fs_flight); // ! IMPORTANT ! // CHECK RETURNED submit_rss VALUE, IF THAT VALUE IS FALSE CONTINUE ON TO TRY QUERY BY ROUTE - ( INCORRECT FLIGHT NO. ) if ($fs_result) { return $fs_result; // ------------ POSSIBBLE RETURN ---- } // SET TO TRUE SO MESSAGE CAN BE ADDED EXPLAINING ALTERNITIVE QUERY self::$flight_no_failed = TRUE; } // FROM HERE THE FLIGHT NO QUERY EITHER RETURNED FALSE OR WASN'T SET, SO TRY QUERY WITH AIRPORT LOCATIONS if (isset($fs_dep) && isset($fs_arr)) { // CREATE ARRAY TO PASS TO submit_rss. THE ARRAY WILL DISTINGUISH BETWEEN FLIGHT NO QUERY AND ROUTE QUERY $fs_route[] = $fs_dep; $fs_route[] = $fs_arr; $fs_result = self::execute_query($fs_date, $fs_route); // ! IMPORTANT ! // CHECK RETURNED submit_rss VALUE, IF THAT VALUE IS ALSO FALSE CONTINUE TO RETURN ERROR MESSAGE if ($fs_result) { return $fs_result; // ------------ POSSIBBLE RETURN ---- } } // IF ALL POSSIBBLE QUERY PARAMS FAILED OR WASN'T AVAILABLE, // I.E. NONE OF THE CONDITIONALS RETURNED A VALUE EXITING THE METHOD, SIMPLY RETURN THE ERROR MESSAGE return self::FS_ERROR_MISSING; // ------------ POSSIBBLE RETURN ---- }