--- a/common.inc.php +++ b/common.inc.php @@ -1,1 +1,159 @@ +<?php +date_default_timezone_set("Australia/Sydney"); +$basePath = ""; +/** Returns the offset from the origin timezone to the remote timezone, in seconds. + * @param $remote_tz; + * @param $origin_tz; If null the servers current timezone is used as the origin. + * @return int; + */ +function get_timezone_offset($remote_tz, $origin_tz = null) { + if ($origin_tz === null) { + if (!is_string($origin_tz = date_default_timezone_get())) { + return false; // A UTC timestamp was returned -- bail out! + } + } + $origin_dtz = new DateTimeZone($origin_tz); + $remote_dtz = new DateTimeZone($remote_tz); + $origin_dt = new DateTime("now", $origin_dtz); + $remote_dt = new DateTime("now", $remote_dtz); + $offset = $origin_dtz->getOffset($origin_dt) - $remote_dtz->getOffset($remote_dt); + return $offset; +} + +function getSensorValuesByHour($sensorID, $timeFrom, $timeTo) { + $sql = 'select min(time) as time, min(value), max(value), avg(value), stddev(value) from sensor_values where sensor_id = ? + and extract(epoch from time) > ? and extract(epoch from time) < ? + group by sensor_id, date_trunc(\'hour\', time) order by time'; + + $query = $this->db->query($sql, Array($sensorID, $timeFrom, $timeTo)); + return $query->result_array(); +} + +function getSensorValuesByDay($sensorID, $dayFrom, $dayTo) { + $sql = 'select min(time) as time, min(value), max(value), avg(value), stddev(value) from sensor_values where sensor_id = ? + group by sensor_id, date_trunc(\'day\', time) order by time'; + + $query = $this->db->query($sql, Array($sensorID)); + return $query->result_array(); +} + +function getSensorDataYears($sensorID, $timeFrom, $timeTo) { + $sql = "select distinct extract('year' from time) as year from sensor_values where sensor_id = ? order by year"; + + $query = $this->db->query($sql, Array($sensorID)); + return $query->result_array(); +} + +function getSensorDataMonths($sensorID, $timeFrom, $timeTo) { + $sql = "select distinct extract('month' from time) as month, extract('year' from time) as year from sensor_values where sensor_id = ? order by year, month"; + + $query = $this->db->query($sql, Array($sensorID)); + return $query->result_array(); +} + +function getSensorDataDays($sensorID, $timeFrom, $timeTo) { + $sql = "select distinct extract('day' from time) as day, extract('month' from time) as month, extract('year' from time) as year from sensor_values where sensor_id = ? order by year,month,day"; + + $query = $this->db->query($sql, Array($sensorID)); + return $query->result_array(); +} + +function include_header($title) { + global $basePath; + ?> + <!DOCTYPE html> + + <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> + <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> + <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> + <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]--> + <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]--> + <head> + <meta charset="utf-8" /> + + <!-- Set the viewport width to device width for mobile --> + <meta name="viewport" content="width=device-width" /> + + <title><?php echo $title; ?> - Scannr</title> + + <!-- Included CSS Files --> + <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/foundation.css"> + <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/app.css"> + + <!--[if lt IE 9]> + <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/ie.css"> + <![endif]--> + + + <!-- IE Fix for HTML5 Tags --> + <!--[if lt IE 9]> + <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + + </head> + <body xmlns:schema="http://schema.org/" xmlns:foaf="http://xmlns.com/foaf/0.1/"> + + <!-- navBar --> + <div id="navbar" class="container"> + <div class="row"> + <div class="four columns"> + <h1><a href="/">Disclosr</a></h1> + </div> + <div class="eight columns hide-on-phones"> + <strong class="right"> + <a href="getAgency.php">Agencies</a> + <a href="about.php">About/FAQ</a> + </strong> + </div> + </div> + </div> + <!-- /navBar --> + + <!-- container --> + <div class="container"> + <?php + } + + function include_footer() { + global $basePath; + ?> + + </div> + <!-- container --> + + + + + <!-- Included JS Files --> + <script src="<?php echo $basePath; ?>js/foundation.js"></script> + <script src="<?php echo $basePath; ?>js/app.js"></script> + <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> + <script>window.jQuery || document.write('<script src="js/jquery-1.8.2.min.js"><\/script>')</script> + + <script type="text/javascript" src="<?php echo $basePath ?>js/flotr2/flotr2.js"></script> + <?php + if (strpos($_SERVER['SERVER_NAME'], ".gs")) { + ?> + <script type="text/javascript"> + + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-12341040-2']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + + </script> + + </body> + </html> + + <?php + } +} + +