Пример #1
0
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>';
}
Пример #4
0
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;
}
Пример #5
0
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;
}