示例#1
0
 /**
  * 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;
 }
示例#2
0
 function getHoldsFailedPerSession($forGraph)
 {
     //load searches by type
     $events = new Analytics_Event();
     //Get total sessions from the databse
     $totalSessions = new Analytics_Session();
     $numTotalSessions = $totalSessions->count('id');
     $eventDateFilter = $events->getDateFilterSQL();
     $sessionFilter = $this->getSessionFilterSQL();
     $events->query("SELECT numHolds, count(sessionId) as numSessions from (SELECT count(analytics_event.id) as numHolds, sessionId FROM analytics_event INNER JOIN analytics_session on sessionId = analytics_session.id WHERE action ='Failed Hold' " . $eventDateFilter . " " . $sessionFilter . " GROUP BY sessionId) as holdData GROUP BY numHolds ORDER BY numHolds");
     $eventsInfoRaw = array();
     $totalEvents = 0;
     while ($events->fetch()) {
         $eventsInfoRaw[$events->numHolds . ' Holds'] = (int) $events->numSessions;
         $totalEvents += $events->numSessions;
     }
     $numZeroSessions = $numTotalSessions - $totalEvents;
     if ($forGraph) {
         $eventInfo[] = array('0 Holds', (double) sprintf('%01.2f', $numZeroSessions / $numTotalSessions * 100));
     } else {
         $eventInfo[] = array('0 Holds', $numZeroSessions, (double) sprintf('%01.2f', $numZeroSessions / $numTotalSessions * 100));
     }
     $numReported = $numZeroSessions;
     foreach ($eventsInfoRaw as $name => $count) {
         if ($forGraph && (double) ($count / $numTotalSessions) < 0.02) {
             break;
         }
         $numReported += $count;
         if ($forGraph) {
             $eventInfo[] = array($name, (double) sprintf('%01.2f', $count / $numTotalSessions * 100));
         } else {
             $eventInfo[] = array($name, $count, (double) sprintf('%01.2f', $count / $numTotalSessions * 100));
         }
         if ($forGraph && count($eventInfo) >= 10) {
             break;
         }
     }
     if ($forGraph && $numTotalSessions - $numReported > 0) {
         $eventInfo[] = array('Other', (double) sprintf('%01.2f', ($numTotalSessions - $numReported) / $numTotalSessions * 100));
     }
     return $eventInfo;
 }