function getSessionFilter($label, $field) { $analyticsSession = new Analytics_Session(); $analyticsSession->selectAdd(); $analyticsSession->selectAdd("distinct({$field})"); $analyticsSession->find(); $filter = array(); $filter['label'] = $label; $filter['field'] = $field; while ($analyticsSession->fetch()) { if ($analyticsSession->{$field} == null) { $filter['values']['null'] = 'unset'; } else { $filter['values'][$analyticsSession->{$field}] = $analyticsSession->{$field}; } } natcasesort($filter['values']); return $filter; }
/** * Recent activity includes users, searches done, events, and page views */ function getRecentActivity() { global $analytics; $interval = isset($_REQUEST['interval']) ? $_REQUEST['interval'] : 10; $curTime = time(); $activityByMinute = array(); $analyticsSession = $analytics->getSessionFilters(); if ($analyticsSession == null) { $analyticsSession = new Analytics_Session(); } $analyticsSession->selectAdd('count(id) as numActiveUsers'); $analyticsSession->whereAdd('lastRequestTime > ' . ($curTime - $interval)); //$analyticsSession->whereAdd("lastRequestTime <= $curTime"); if ($analyticsSession->find(true)) { $activityByMinute['activeUsers'] = $analyticsSession->numActiveUsers; } else { $activityByMinute['activeUsers'] = 0; } $pageView = new Analytics_PageView(); $pageView->selectAdd('count(id) as numPageViews'); $pageView->whereAdd("pageEndTime > " . ($curTime - $interval)); //$pageView->whereAdd("pageEndTime <= $curTime"); if ($pageView->find(true)) { $activityByMinute['pageViews'] = $pageView->numPageViews; } else { $activityByMinute['pageViews'] = 0; } $searches = new Analytics_Search(); $searches->selectAdd('count(id) as numSearches'); $searches->whereAdd("searchTime > " . ($curTime - $interval)); //$searches->whereAdd("searchTime <= $curTime"); if ($searches->find(true)) { $activityByMinute['searches'] = $searches->numSearches; } else { $activityByMinute['searches'] = 0; } $events = new Analytics_Event(); $events->selectAdd('count(id) as numEvents'); $events->whereAdd("eventTime > " . ($curTime - $interval)); //$events->whereAdd("eventTime <= $curTime"); if ($events->find(true)) { $activityByMinute['events'] = $events->numEvents; } else { $activityByMinute['events'] = 0; } return $activityByMinute; }