Example #1
0
 private function calc($range, $lastRange)
 {
     $data = array();
     $data['current_user_count'] = UserTable::getInstance()->countByRange($range[0], $range[1]);
     $data['last_user_count'] = UserTable::getInstance()->countByRange($lastRange[0], $lastRange[1]);
     $data['user_count_delta'] = $this->delta($data['current_user_count'], $data['last_user_count']);
     $data['current_stats_user_count'] = SfGuardUserTable::getInstance()->countByRange($range[0], $range[1]);
     $data['last_stats_user_count'] = SfGuardUserTable::getInstance()->countByRange($lastRange[0], $lastRange[1]);
     $data['stats_user_count_delta'] = $this->delta($data['current_stats_user_count'], $data['last_stats_user_count']);
     $data['current_likes_count'] = MongoManager::getDm()->getRepository('Documents\\YiidActivity')->countByRange($range[0], $range[1]);
     $data['last_likes_count'] = MongoManager::getDm()->getRepository('Documents\\YiidActivity')->countByRange($lastRange[0], $lastRange[1]);
     $data['likes_count_delta'] = $this->delta($data['current_likes_count'], $data['last_likes_count']);
     $data['current_cbl_count'] = MongoManager::getDm()->getRepository('Documents\\YiidActivity')->countCBLByRange($range[0], $range[1]);
     $data['last_cbl_count'] = MongoManager::getDm()->getRepository('Documents\\YiidActivity')->countCBLByRange($lastRange[0], $lastRange[1]);
     $data['cbl_count_delta'] = $this->delta($data['current_cbl_count'], $data['last_cbl_count']);
     $data['current_domain_count'] = DomainProfileTable::getInstance()->countByRange($range[0], $range[1]);
     $data['last_domain_count'] = DomainProfileTable::getInstance()->countByRange($lastRange[0], $lastRange[1]);
     $data['domain_count_delta'] = $this->delta($data['current_domain_count'], $data['last_domain_count']);
     $data['current_verified_domain_count'] = DomainProfileTable::getInstance()->countVerifiedByRange($range[0], $range[1]);
     $data['last_verified_domain_count'] = DomainProfileTable::getInstance()->countVerifiedByRange($lastRange[0], $lastRange[1]);
     $data['verified_domain_count_delta'] = $this->delta($data['current_verified_domain_count'], $data['last_verified_domain_count']);
     $data['current_stats'] = MongoManager::getStatsDm()->getRepository('Documents\\AnalyticsActivity')->findOnlyByRange($range[0], $range[1]);
     $data['last_stats'] = MongoManager::getStatsDm()->getRepository('Documents\\AnalyticsActivity')->findOnlyByRange($lastRange[0], $lastRange[1]);
     $data['current_stats'] = $data['current_stats'] && $data['current_stats']->hasNext() ? $data['current_stats']->getNext() : null;
     $data['last_stats'] = $data['last_stats'] && $data['last_stats']->hasNext() ? $data['last_stats']->getNext() : null;
     $data['current_clickback_count'] = $data['current_stats'] ? $data['current_stats']['value']['cb'] : 0;
     $data['last_clickback_count'] = $data['last_stats'] ? $data['last_stats']['value']['cb'] : 0;
     $data['clickback_count_delta'] = $this->delta($data['current_clickback_count'], $data['last_clickback_count']);
     $data['current_media_penetration_count'] = $data['current_stats'] ? $data['current_stats']['value']['mp'] : 0;
     $data['last_media_penetration_count'] = $data['last_stats'] ? $data['last_stats']['value']['mp'] : 0;
     $data['media_penetration_count_delta'] = $this->delta($data['current_media_penetration_count'], $data['last_media_penetration_count']);
     $data['share_distribution'] = $data['current_stats'] ? array($data['current_stats']['value']['s']['facebook'] ? $data['current_stats']['value']['s']['facebook']['l'] : 0, $data['current_stats']['value']['s']['twitter'] ? $data['current_stats']['value']['s']['twitter']['l'] : 0, $data['current_stats']['value']['s']['linkedin'] ? $data['current_stats']['value']['s']['linkedin']['l'] : 0, $data['current_stats']['value']['s']['google'] ? $data['current_stats']['value']['s']['google']['l'] : 0) : array(0, 0, 0, 0);
     $data['share_distribution_labels'] = array('Fb:' . $data['share_distribution'][0], 'Tw:' . $data['share_distribution'][1], 'Li:' . $data['share_distribution'][2], 'Go:' . $data['share_distribution'][3]);
     if ($this->range == 'today' || $this->range == 'yesterday') {
         $lActivityStats = MongoManager::getStatsDm()->getRepository("Documents\\ActivityStats")->findByRangeGroupByDay($range[0], $range[1]);
         $h = null;
         if ($lActivityStats && $lActivityStats->hasNext()) {
             $temp = $lActivityStats->getNext();
             $h = $temp['value']['h'];
             unset($h['php_ckuf']);
         }
         $data['current_likes_range'] = $h ? $h : array();
         $lActivityStats = MongoManager::getStatsDm()->getRepository("Documents\\DealStats")->findByRangeGroupByDay($range[0], $range[1]);
         $h = null;
         if ($lActivityStats && $lActivityStats->hasNext()) {
             $temp = $lActivityStats->getNext();
             $h = $temp['value']['h'];
             unset($h['php_ckuf']);
         }
         $data['current_deals_range'] = $h ? $h : array();
     } else {
         $lActivityStats = MongoManager::getStatsDm()->getRepository("Documents\\ActivityStats")->findLikesByRangeGroupByDay($range[0], $range[1]);
         if ($lActivityStats) {
             $lActivityStats = $lActivityStats->toArray();
             $data['current_likes_range'] = array_values($this->padLikes($lActivityStats, date('c', $range[0]), date('c', $range[1])));
             $lActivityStats = MongoManager::getStatsDm()->getRepository("Documents\\DealStats")->findLikesByRangeGroupByDay($range[0], $range[1]);
             $lActivityStats = $lActivityStats->toArray();
             $data['current_deals_range'] = array_values($this->padLikes($lActivityStats, date('c', $range[0]), date('c', $range[1])));
         }
     }
     $data['top_users'] = array_slice(MongoManager::getStatsDm()->getRepository("Documents\\AnalyticsActivity")->groupByUsers($range[0], $range[1]), 0, 5);
     $data['top_hosts'] = array_slice(MongoManager::getStatsDm()->getRepository("Documents\\AnalyticsActivity")->groupByHosts($range[0], $range[1]), 0, 5);
     $data['top_urls'] = array_slice(MongoManager::getStatsDm()->getRepository("Documents\\AnalyticsActivity")->groupByUrls($range[0], $range[1]), 0, 5);
     //$cb = new Chartbeat();
     //$data['current_popup_visitors_count'] = $cb->getVisitorsByDate($this->range);
     $data['current_pi_count'] = intval(VisitTable::countPisForDay($range[0]));
     $data['last_pi_count'] = intval(VisitTable::countPisForDay($lastRange[0]));
     $data['pi_count_delta'] = $this->delta($data['current_pi_count'], $data['last_pi_count']);
     $data['current_conversion'] = $this->conversion($data['current_likes_count'], $data['current_pi_count']);
     $data['last_conversion'] = $this->conversion($data['last_likes_count'], $data['last_pi_count']);
     $data['conversion_delta'] = $this->delta($data['current_conversion'], $data['last_conversion']);
     return $data;
 }