function correctForm($errors) { global $input, $system; if (empty($errors)) { return "<p>The temp is " . convertTemp($input, $system) . "</p>"; } }
function calcHumidex($temp, $humidity, $useunit) { // Calculate Humidex from temperature and humidity // Source of calculation: http://www.physlink.com/reference/weather.cfm global $Status; $T = convertTemp($temp, 'C'); $H = $humidity; $t = 7.5 * $T / (237.7 + $T); $et = pow(10, $t); $e = 6.112 * $et * ($H / 100); $humidex = $T + 5 / 9 * ($e - 10); $Status .= "// calcHumidex T={$T} C, H={$H} calc={$humidex} "; if ($humidex < $T) { $humidex = $T; $Status .= ' set to T, '; } if (preg_match('|F|i', $useunit)) { # convert to F $humidex = sprintf("%01.1f", round(1.8 * $humidex + 32.0, 1)); } $humidex = round($humidex, 1); $Status .= " humidex={$humidex} {$useunit}\n"; return $humidex; }
function outputForecast($saddress, $city, $state, $sunit) { $googleurl = "https://maps.googleapis.com/maps/api/geocode/xml?key=AIzaSyDISWh9GHBOX2VYSgHw0969f-G6ShYYpMQ&address="; $address = $saddress . ',' . $city . ',' . $state; $geocodeurl = $googleurl . urlencode($address); try { $response_xml_data = @file_get_contents($geocodeurl); } catch (Exception $e) { echo '<script language="javascript">'; echo 'alert("', $e->getMessage(), '")'; echo '</script>'; return; } if ($response_xml_data == FALSE) { echo '<script language="javascript">'; echo 'alert("Fetching address failed.Please try again!")'; echo '</script>'; return; } $simplexml = simplexml_load_string($response_xml_data); $lats = $simplexml->xpath('//location/lat'); $lngs = $simplexml->xpath('//location/lng'); $formataddress = $simplexml->xpath('//status'); if (count($lats) == 0 || count($lngs) == 0 || strpos($formataddress[0], 'ZERO_RESULTS') == true) { echo '<div id="forecast" class="diverror">'; echo "<h2>No results returned!</h2>\n <h2>Please try another address.</h2>"; echo '</div>'; return; } $lat = $lats[0]; $lng = $lngs[0]; $forecasturl = "https://api.forecast.io/forecast/f2f049b51c218c7578dfccf9b55c2b08/"; $urlpram = $lat . ',' . $lng . '?units=' . $sunit . '&exclude=flags'; $forecasturl .= $urlpram; try { $response_xml_data = @file_get_contents($forecasturl); } catch (Exception $e) { echo '<script language="javascript">'; echo 'alert("', $e->getMessage(), '")'; echo '</script>'; return; } if ($response_xml_data == FALSE) { echo '<script language="javascript">'; echo 'alert("Fetching weather forcast failed.Please try again!")'; echo '</script>'; return; } $jsonObject = json_decode($response_xml_data, true); $wCondition = $jsonObject['currently']['summary']; $wTemp = convertTemp($jsonObject['currently']['temperature'], $sunit); $wicon = converticon($jsonObject['currently']['icon'], $wCondition); $wprecp = convertprecep($jsonObject['currently']['precipIntensity'], $sunit); $wprecprob = convertpercernt($jsonObject['currently']['precipProbability']); $wwspeed = convertwindspeed($jsonObject['currently']['windSpeed'], $sunit); $wdewpoint = round($jsonObject['currently']['dewPoint']); $whumid = convertpercernt($jsonObject['currently']['humidity']); if (isset($jsonObject['currently']['visibility'])) { $wvisib = convertvisibility($jsonObject['currently']['visibility'], $sunit); } else { $wvisib = convertvisibility(0, $sunit); } $wsunrise = convertTime($jsonObject['daily']['data'][0]['sunriseTime'], $jsonObject['timezone']); $wsunset = convertTime($jsonObject['daily']['data'][0]['sunsetTime'], $jsonObject['timezone']); echo '<div id="forecast" class="divtable"><h2>' . $wCondition . '</h2><h2>' . $wTemp . '</h2>' . $wicon; echo '<table><tr><td>Precipitation:</td><td>' . $wprecp . '</td></tr>'; echo '<tr><td>Chance of Rain:</td><td>' . $wprecprob . '</td></tr>'; echo '<tr><td>Wind Speed:</td><td>' . $wwspeed . '</td></tr>'; echo '<tr><td>Dew Point:</td><td>' . $wdewpoint . '</td></tr>'; echo '<tr><td>Humidity:</td><td>' . $whumid . '</td></tr>'; echo '<tr><td>Visibility:</td><td>' . $wvisib . '</td></tr>'; echo '<tr><td>Sunrise:</td><td>' . $wsunrise . '</td></tr>'; echo '<tr><td>Sunset:</td><td>' . $wsunset . '</td></tr></table></div>'; }
function import_text_params($arrSQL) { $params = new objectInfo(); $ValidReportSQL = false; if (is_array($arrSQL)) { foreach ($arrSQL as $sql) { // find the main reports sql statement if (strpos($sql, 'ReportData:') === 0) { $values = substr(trim($sql), 11); $values = substr($values, 0, strlen($values) - 1); $data_array = explode(',', $values); $sql_array = array(); foreach ($data_array as $value) { $parts = explode('=', $value, 2); $sql_array[trim($parts[0])] = substr(trim($parts[1]), 1, -1); } $params->title = $sql_array['description']; $params->reporttype = $sql_array['reporttype']; $params->groupname = $sql_array['groupname']; $params->standard_report = $sql_array['standard_report']; $params->special_class = substr($sql_array['special_report'], 2); // move some report type to new locations, misc for unknow categories if ($params->groupname == 'ap:chk') { $params->groupname = 'bnk:chk'; } if ($params->groupname == 'ap:pur') { $params->groupname = 'vend:stmt'; } if ($params->groupname == 'ar:rcpt') { $params->groupname = 'bnk:rcpt'; } if (substr($params->groupname, 0, 2) == 'ap') { $params->groupname = str_replace('ap', 'vend', $params->groupname); } if (substr($params->groupname, 0, 2) == 'ar') { $params->groupname = str_replace('ar', 'cust', $params->groupname); } // pull the table data $params->tables = array(); for ($i = 1; $i < 6; $i++) { if ($sql_array['table' . $i]) { $params->tables[] = new objectInfo(array('tablename' => $sql_array['table' . $i], 'relationship' => pb_replace_tables($sql_array, $sql_array['table' . $i . 'criteria']))); } } $ValidReportSQL = true; } } } if (!$ValidReportSQL) { return false; } // no valid report sql statement found in the text file, error foreach ($arrSQL as $sql) { // fetch the translations for the field descriptions if (strpos($sql, 'FieldDesc') === 0) { // then it's a field description, find the index and save $sql = trim($sql); $FldIndex = substr($sql, 9, strpos($sql, ':') - 9); $Language[$FldIndex] = substr($sql, strpos($sql, ':') + 2, -1); } } while ($sql = array_shift($arrSQL)) { if (strpos($sql, 'FieldData') === 0) { // a valid field, write it while (true) { // handles multiline fields if (substr(trim($sql), -2) == "';") { break; } $sql .= "\n" . array_shift($arrSQL); if (sizeof($arrSQL) < 1) { break; } } $sql = trim($sql); $entrytype = substr($sql, strpos($sql, '=') + 2, strpos($sql, "',") - strpos($sql, '=') - 2); $sql = trim(substr($sql, strpos($sql, "',") + 2)); $seqnum = substr($sql, strpos($sql, '=') + 2, strpos($sql, "',") - strpos($sql, '=') - 2); $sql = trim(substr($sql, strpos($sql, "',") + 2)); $fieldname = substr($sql, strpos($sql, '=') + 2, strpos($sql, "',") - strpos($sql, '=') - 2); $sql = trim(substr($sql, strpos($sql, "',") + 2)); $description = substr($sql, strpos($sql, '=') + 2, strpos($sql, "',") - strpos($sql, '=') - 2); $sql = trim(substr($sql, strpos($sql, "',") + 2)); $visible = substr($sql, strpos($sql, '=') + 2, strpos($sql, "',") - strpos($sql, '=') - 2); $sql = trim(substr($sql, strpos($sql, "',") + 2)); $columnbreak = substr($sql, strpos($sql, '=') + 2, strpos($sql, "',") - strpos($sql, '=') - 2); $sql = trim(substr($sql, strpos($sql, "',") + 2)); if ($entrytype == 'security') { $params_arr = stripslashes(substr($sql, 8, strlen($sql) - 10)); } else { $sql = str_replace("\r", "", $sql); $sql = str_replace("\n", "\r\n", $sql); $params_arr = unserialize(stripslashes(substr($sql, 8, strlen($sql) - 10))); } $temp = array('fieldname' => pb_replace_tables($sql_array, $fieldname), 'description' => $description, 'visible' => $visible, 'columnbreak' => $columnbreak); if (is_array($params_arr)) { foreach ($params_arr as $key => $value) { $temp[$key] = pb_replace_tables($sql_array, $value); } } elseif ($params_arr) { $temp['params'] = $params_arr; } // clean out some un-needed data switch ($entrytype) { case 'pagelist': $params->description = $params_arr['narrative']; $params->emailmessage = $params_arr['email_msg']; $params->datefield = $params_arr['datefield']; $params->datelist = $params_arr['dateselect']; $params->datedefault = $params_arr['datedefault']; $params->filenameprefix = $params_arr['filenameprefix']; $params->filenamefield = $params_arr['filenamesource']; if ($params->reporttype == 'rpt') { $params->truncate = $params_arr['trunclong']; $params->totalonly = $params_arr['totalonly']; } if ($params->reporttype == 'frm') { $params->serialform = $params_arr['serialform']; $params->setprintedfield = $params_arr['setprintedflag']; $params->formbreakfield = $params_arr['formbreakfield']; } $params->security = 'u:0;g:0'; $params->page->size = $params_arr['papersize']; $params->page->orientation = $params_arr['paperorientation']; $params->page->margin->top = $params_arr['margintop']; $params->page->margin->bottom = $params_arr['marginbottom']; $params->page->margin->left = $params_arr['marginleft']; $params->page->margin->right = $params_arr['marginright']; if ($params->reporttype == 'rpt') { $params->page->heading->show = $params_arr['coynameshow']; $params->page->heading->font = $params_arr['coynamefont']; $params->page->heading->size = $params_arr['coynamefontsize']; $params->page->heading->color = $params_arr['coynamefontcolor']; $params->page->heading->align = $params_arr['coynamealign']; $params->page->title1->show = $params_arr['title1show']; $params->page->title1->text = $params_arr['title1desc']; $params->page->title1->font = $params_arr['title1font']; $params->page->title1->size = $params_arr['title1fontsize']; $params->page->title1->color = $params_arr['title1fontcolor']; $params->page->title1->align = $params_arr['title1fontalign']; $params->page->title2->show = $params_arr['title2show']; $params->page->title2->text = $params_arr['title2desc']; $params->page->title2->font = $params_arr['title2font']; $params->page->title2->size = $params_arr['title2fontsize']; $params->page->title2->color = $params_arr['title2fontcolor']; $params->page->title2->align = $params_arr['title2fontalign']; $params->page->filter->font = $params_arr['filterfont']; $params->page->filter->size = $params_arr['filterfontsize']; $params->page->filter->color = $params_arr['filterfontcolor']; $params->page->filter->align = $params_arr['filterfontalign']; $params->page->data->font = $params_arr['datafont']; $params->page->data->size = $params_arr['datafontsize']; $params->page->data->color = $params_arr['datafontcolor']; $params->page->data->align = $params_arr['datafontalign']; $params->page->totals->font = $params_arr['totalsfont']; $params->page->totals->size = $params_arr['totalsfontsize']; $params->page->totals->color = $params_arr['totalsfontcolor']; $params->page->totals->align = $params_arr['totalsfontalign']; } $temp = NULL; break; case 'critlist': $temp['type'] = $temp['value']; unset($temp['value']); unset($temp['columnbreak']); unset($temp['index']); $entrytype = 'filterlist'; break; case 'fieldlist': if ($params->reporttype == 'rpt') { $temp['total'] = $temp['index']; // set total flag unset($temp['index']); } elseif ($params->reporttype == 'frm') { $temp = convertTemp($temp, $sql_array); } break; case 'grouplist': unset($temp['columnbreak']); unset($temp['visible']); unset($temp['index']); break; case 'sortlist': unset($temp['columnbreak']); unset($temp['visible']); unset($temp['index']); break; case 'security': $params->security = convert_security($params_arr); $temp = NULL; break; default: } if ($temp) { $objTemp = new objectInfo($temp); if (!is_array($params->{$entrytype})) { $params->{$entrytype} = array(); } array_push($params->{$entrytype}, $objTemp); } } } // some cleanup and table mapping $params->datefield = pb_replace_tables($sql_array, $params->datefield); $params->filenamefield = pb_replace_tables($sql_array, $params->filenamefield); $params->formbreakfield = pb_replace_tables($sql_array, $params->formbreakfield); //echo 'params = '; print_r($params); echo '<br>'; exit(); return $params; }
function getdaily($result, $unit) { $darray = $result['daily']['data']; $dobj = []; for ($i = 1; $i < count($darray); ++$i) { $table = array('Day' => date("l", $darray[$i]['time']), 'Month Date' => date("M d", $darray[$i]['time']), 'Icon Image' => converticon($darray[$i]['icon']), 'Min Temp' => convertTemp($darray[$i]['temperatureMin'], $unit), 'Max Temp' => convertTemp($darray[$i]['temperatureMax'], $unit), 'Summary' => $darray[$i]['summary'], 'Humidity' => convertpercernt($darray[$i]['humidity']), 'Visibility' => convertvisibility($darray[$i], $unit), 'Wind Speed' => convertwindspeed($darray[$i], $unit), 'Sunrise' => convertTime($darray[$i]['sunriseTime'], $result['timezone']), 'Sunset' => convertTime($darray[$i]['sunsetTime'], $result['timezone']), 'Pressure' => convertpressure($darray[$i]['pressure'], $unit)); array_push($dobj, $table); } return $dobj; }