|
<?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 |
|
} |
|
} |
|
|
|
|