getRangeInSeconds($timespan); if($timespan == "daily"){ $grouping = "GROUP BY FROM_UNIXTIME(ts, '%Y.%m.%d. %H')"; } else { $grouping = "GROUP BY FROM_UNIXTIME(ts, '%Y.%m.%d.')"; } if($timespan == "daily"){ $delta = 3600; $data_points = 24; } else { $delta = 86400; $data_points = 30; } $now = time(); $now -= $now % $delta + ($data_points-1)*$delta; for($i=0; $i<$data_points; $i++) { $data[$now] = 0; $now += $delta; } if(Registry::get('admin_user') == 0) { $q = ''; $auditdomains = $session->get('auditdomains'); foreach($auditdomains as $a) { if($q) { $q .= ",?"; } else { $q = "?"; } } reset($auditdomains); $query = $this->db->query("select (arrived-(arrived%$delta)) as ts, count(*) as num from " . VIEW_MESSAGES . " where arrived > $range AND todomain IN ($q) $domains $grouping ORDER BY ts DESC limit $data_points", $auditdomains); } else { $query = $this->db->query("select (arrived-(arrived%$delta)) as ts, count(*) as num from " . TABLE_META . " where arrived > $range $grouping ORDER BY ts DESC limit $data_points"); } foreach ($query->rows as $q) { if(isset($data[$q['ts']])) { $data[$q['ts']] = $q['num']; } } return $data; } private function getRangeInSeconds($timespan) { $range = 0; if($timespan == "daily") { return time() - 86400; } if($timespan == "weekly") { return time() - 604800; } return time() - 2592000; } }