Пример #1
0
 public static function getInstance()
 {
     if (self::$instance == null) {
         self::$instance = new self();
     }
     return self::$instance;
 }
Пример #2
0
 public static function getInstance()
 {
     if (self::$instance == null) {
         $c = __CLASS__;
         self::$instance = new $c();
     }
     return self::$instance;
 }
Пример #3
0
 public function getSitesInfo()
 {
     $view = new Piwik_View("MultiSites/templates/index.tpl");
     $mySites = Piwik_SitesManager_API::getInstance()->getSitesWithAtLeastViewAccess();
     $params = $this->getGraphParamsModified();
     $this->dateToStr = $params['date'];
     $ids = 'all';
     $this->period = Piwik_Common::getRequestVar('period', 'day');
     $this->date = Piwik_Common::getRequestVar('date', 'today');
     $lastDate = date('Y-m-d', strtotime("-1 " . $this->period, strtotime($this->date)));
     $visits = Piwik_VisitsSummary_API::getInstance()->getVisits($ids, $this->period, $this->date);
     $lastVisits = Piwik_VisitsSummary_API::getInstance()->getVisits($ids, $this->period, $lastDate);
     $actions = Piwik_VisitsSummary_API::getInstance()->getActions($ids, $this->period, $this->date);
     $lastActions = Piwik_VisitsSummary_API::getInstance()->getActions($ids, $this->period, $lastDate);
     $uniqueUsers = Piwik_VisitsSummary_API::getInstance()->getUniqueVisitors($ids, $this->period, $this->date);
     $lastUniqueUsers = Piwik_VisitsSummary_API::getInstance()->getUniqueVisitors($ids, $this->period, $lastDate);
     $visitsSummary = $this->getSummary($lastVisits, $visits, $mySites, "visits");
     $actionsSummary = $this->getSummary($lastActions, $actions, $mySites, "actions");
     $uniqueSummary = $this->getSummary($lastUniqueUsers, $uniqueUsers, $mySites, "unique");
     $visitsArray = $visits->getArray();
     $actionsArray = $actions->getArray();
     $uniqueUsersArray = $uniqueUsers->getArray();
     $lastVisitsArray = $lastVisits->getArray();
     $lastActionsArray = $lastActions->getArray();
     $lastUniqueUsersArray = $lastUniqueUsers->getArray();
     foreach ($mySites as &$site) {
         $idSite = $site['idsite'];
         $site['visits'] = array_shift($visitsArray[$idSite]->getColumn(0));
         $site['actions'] = array_shift($actionsArray[$idSite]->getColumn(0));
         $site['unique'] = array_shift($uniqueUsersArray[$idSite]->getColumn(0));
         $site['lastVisits'] = array_shift($lastVisitsArray[$idSite]->getColumn(0));
         $site['lastActions'] = array_shift($lastActionsArray[$idSite]->getColumn(0));
         $site['lastUnique'] = array_shift($lastUniqueUsersArray[$idSite]->getColumn(0));
         $site['visitsSummaryValue'] = $visitsSummary[$idSite];
         $site['actionsSummaryValue'] = $actionsSummary[$idSite];
         $site['uniqueSummaryValue'] = $uniqueSummary[$idSite];
     }
     $view->mySites = $mySites;
     $view->evolutionBy = $this->evolutionBy;
     $view->period = $this->period;
     $view->date = $this->date;
     $view->page = $this->page;
     $view->limit = $this->limit;
     $view->orderBy = $this->orderBy;
     $view->order = $this->order;
     $view->dateToStr = $this->dateToStr;
     $this->setGeneralVariablesView($view);
     $minTimestamp = Zend_Registry::get('access')->getSitesMinDate();
     if (!empty($minTimestamp)) {
         $minDate = Piwik_Date::factory($minTimestamp);
         $this->setMinDateView($minDate, $view);
     }
     echo $view->render();
 }
 public function test_archiveVisitsSummary()
 {
     Piwik_VisitsSummary_API::get($this->idSite, 'year', $this->dateTime);
 }
 /**
  * @group        Benchmarks
  * @group        ArchivingProcess
  */
 public function testArchivingProcess()
 {
     Piwik_VisitsSummary_API::get(self::$fixture->idSite, self::$fixture->period, self::$fixture->date);
 }
 public function test_archiveVisitsSummary_andQueryAll()
 {
     Piwik_VisitsSummary_API::get('all', 'day', $this->dateTime);
 }
Пример #7
0
	public function getSitesInfo()
	{
		$view = new Piwik_View("MultiSites/templates/index.tpl");
		$mySites = Piwik_SitesManager_API::getSitesWithAtLeastViewAccess();


		$params = $this->getGraphParamsModified();
		$this->dateToStr = $params['date'];

		$ids = 'all';
		$this->period = PiwiK_Common::getRequestVar('period', 'day');		

		$this->date = PiwiK_Common::getRequestVar('date', 'today');
		$lastDate =  date('Y-m-d',strtotime("-1 ".$this->period, strtotime($this->date)));

		$visits = Piwik_VisitsSummary_API::getVisits($ids, $this->period, $this->date);
		$lastVisits = Piwik_VisitsSummary_API::getVisits($ids, $this->period, $lastDate);

		$actions = Piwik_VisitsSummary_API::getActions($ids, $this->period, $this->date);
		$lastActions = Piwik_VisitsSummary_API::getActions($ids, $this->period, $lastDate);

		$uniqueUsers = Piwik_VisitsSummary_API::getUniqueVisitors($ids, $this->period, $this->date);
		$lastUniqueUsers = Piwik_VisitsSummary_API::getUniqueVisitors($ids, $this->period, $lastDate);

		$visitsSummary = $this->getSummary($lastVisits, $visits, $mySites, "visits");
		$actionsSummary = $this->getSummary($lastActions, $actions, $mySites, "actions");
		$uniqueSummary = $this->getSummary($lastUniqueUsers, $uniqueUsers, $mySites, "unique");

		$visitsArray = $visits->getArray();
		$actionsArray = $actions->getArray();
		$uniqueUsersArray = $uniqueUsers->getArray();
		$lastVisitsArray = $lastVisits->getArray();
		$lastActionsArray = $lastActions->getArray();
		$lastUniqueUsersArray = $lastUniqueUsers->getArray();
		foreach($mySites as &$site)
		{
			$idSite = $site['idsite'];
			$site['visits'] = array_shift($visitsArray[$idSite]->getColumn(0));
			$site['actions'] = array_shift($actionsArray[$idSite]->getColumn(0));
			$site['unique'] = array_shift($uniqueUsersArray[$idSite]->getColumn(0));
			$site['lastVisits'] = array_shift($lastVisitsArray[$idSite]->getColumn(0));
			$site['lastActions'] = array_shift($lastActionsArray[$idSite]->getColumn(0));
			$site['lastUnique'] = array_shift($lastUniqueUsersArray[$idSite]->getColumn(0));
			$site['visitsSummaryValue'] = $visitsSummary[$idSite];
			$site['actionsSummaryValue'] = $actionsSummary[$idSite];
			$site['uniqueSummaryValue'] = $uniqueSummary[$idSite];
		}

		$view->mySites = $mySites;
		$view->arrowAsc = '<img src="plugins/MultiSites/images/arrow_asc.gif" width="16px" height="16px" />';
		$view->arrowDesc = '<img src="plugins/MultiSites/images/arrow_desc.gif" width="16px" height="16px" />';
		$view->evolutionBy = $this->evolutionBy;
		$view->period = $this->period;
		$view->date = $this->date;
		$view->page = $this->page;
		$view->limit = $this->limit;
		$view->orderBy = $this->orderBy;
		$view->order = $this->order;
		$view->dateToStr = $this->dateToStr;
		
		$this->setGeneralVariablesView($view);
		$period = Piwik_Period::factory(Piwik_Common::getRequestVar('period'), Piwik_Date::factory($this->strDate));
		$view->prettyDate = $period->getLocalizedLongString();
		
		echo $view->render();
	}
Пример #8
0
 public function getSitesInfo()
 {
     Piwik::checkUserHasSomeViewAccess();
     // overwrites the default Date set in the parent controller
     // Instead of the default current website's local date,
     // we set "today" or "yesterday" based on the default Piwik timezone
     $piwikDefaultTimezone = Piwik_SitesManager_API::getInstance()->getDefaultTimezone();
     $dateRequest = Piwik_Common::getRequestVar('date', 'today');
     $period = Piwik_Common::getRequestVar('period', 'day');
     $date = $dateRequest;
     if ($period != 'range') {
         $date = $this->getDateParameterInTimezone($dateRequest, $piwikDefaultTimezone);
         $date = $date->toString();
     }
     $mySites = Piwik_SitesManager_API::getInstance()->getSitesWithAtLeastViewAccess();
     $ids = 'all';
     $visits = Piwik_VisitsSummary_API::getInstance()->getVisits($ids, $period, $date);
     $actions = Piwik_VisitsSummary_API::getInstance()->getActions($ids, $period, $date);
     $uniqueUsers = Piwik_VisitsSummary_API::getInstance()->getUniqueVisitors($ids, $period, $date);
     if ($period != 'range') {
         $lastDate = Piwik_Period_Range::removePeriod($period, Piwik_Date::factory($date), $n = 1);
         $lastVisits = Piwik_VisitsSummary_API::getInstance()->getVisits($ids, $period, $lastDate);
         $lastActions = Piwik_VisitsSummary_API::getInstance()->getActions($ids, $period, $lastDate);
         $lastUniqueUsers = Piwik_VisitsSummary_API::getInstance()->getUniqueVisitors($ids, $period, $lastDate);
         $visitsSummary = $this->getSummary($lastVisits, $visits, $mySites, "visits");
         $actionsSummary = $this->getSummary($lastActions, $actions, $mySites, "actions");
         $uniqueSummary = $this->getSummary($lastUniqueUsers, $uniqueUsers, $mySites, "unique");
         $lastVisitsArray = $lastVisits->getArray();
         $lastActionsArray = $lastActions->getArray();
         $lastUniqueUsersArray = $lastUniqueUsers->getArray();
     }
     $visitsArray = $visits->getArray();
     $actionsArray = $actions->getArray();
     $uniqueUsersArray = $uniqueUsers->getArray();
     $totalVisits = $totalActions = 0;
     foreach ($mySites as &$site) {
         $idSite = $site['idsite'];
         $tmp = $visitsArray[$idSite]->getColumn(0);
         $site['visits'] = $tmp[0];
         $totalVisits += $tmp[0];
         $tmp = $actionsArray[$idSite]->getColumn(0);
         $site['actions'] = $tmp[0];
         $totalActions += $tmp[0];
         $tmp = $uniqueUsersArray[$idSite]->getColumn(0);
         $site['unique'] = $tmp[0];
         if ($period != 'range') {
             $tmp = $lastVisitsArray[$idSite]->getColumn(0);
             $site['lastVisits'] = $tmp[0];
             $tmp = $lastActionsArray[$idSite]->getColumn(0);
             $site['lastActions'] = $tmp[0];
             $tmp = $lastUniqueUsersArray[$idSite]->getColumn(0);
             $site['lastUnique'] = $tmp[0];
         }
         $site['visitsSummaryValue'] = isset($visitsSummary[$idSite]) ? $visitsSummary[$idSite] : 0;
         $site['actionsSummaryValue'] = isset($actionsSummary[$idSite]) ? $actionsSummary[$idSite] : 0;
         $site['uniqueSummaryValue'] = isset($uniqueSummary[$idSite]) ? $uniqueSummary[$idSite] : 0;
     }
     $view = new Piwik_View("MultiSites/templates/index.tpl");
     $view->mySites = $mySites;
     $view->evolutionBy = $this->evolutionBy;
     $view->period = $period;
     $view->dateRequest = $dateRequest;
     $view->page = $this->page;
     $view->limit = $this->limit;
     $view->orderBy = $this->orderBy;
     $view->order = $this->order;
     $view->totalVisits = $totalVisits;
     $view->totalActions = $totalActions;
     $params = $this->getGraphParamsModified();
     $view->dateSparkline = $period == 'range' ? $dateRequest : $params['date'];
     $view->autoRefreshTodayReport = false;
     // if the current date is today, or yesterday,
     // in case the website is set to UTC-12), or today in UTC+14, we refresh the page every 5min
     if (in_array($date, array('today', date('Y-m-d'), 'yesterday', Piwik_Date::factory('yesterday')->toString('Y-m-d'), Piwik_Date::factory('now', 'UTC+14')->toString('Y-m-d')))) {
         $view->autoRefreshTodayReport = true;
     }
     $this->setGeneralVariablesView($view);
     $this->setMinMaxDateAcrossWebsites($mySites, $view);
     $view->show_sparklines = Zend_Registry::get('config')->General->show_multisites_sparklines;
     echo $view->render();
 }
Пример #9
0
	public function getSitesInfo()
	{
		Piwik::checkUserHasSomeViewAccess();
		$displayRevenueColumn = Piwik_Common::isGoalPluginEnabled();
		
		// overwrites the default Date set in the parent controller 
		// Instead of the default current website's local date, 
		// we set "today" or "yesterday" based on the default Piwik timezone
		$piwikDefaultTimezone = Piwik_SitesManager_API::getInstance()->getDefaultTimezone();
		$dateRequest = Piwik_Common::getRequestVar('date', 'today');
		$period = Piwik_Common::getRequestVar('period', 'day');	
		$date = $dateRequest;
		if($period != 'range')
		{
			$date = $this->getDateParameterInTimezone($dateRequest, $piwikDefaultTimezone);
			$date = $date->toString();
		}
		
		$mySites = Piwik_SitesManager_API::getInstance()->getSitesWithAtLeastViewAccess();
		
		$ids = 'all';
		
		// Current date - select metrics
		$dataTableArray = Piwik_VisitsSummary_API::getInstance()->get($ids, $period, $date, $segment = false, $columns = array('nb_visits', 'nb_actions'));
		$currentVisits = $this->getArrayFromAPI($dataTableArray, 'nb_visits');
		$currentActions = $this->getArrayFromAPI($dataTableArray, 'nb_actions');
		if($displayRevenueColumn)
		{
		    $dataTableArray = Piwik_Goals_API::getInstance()->get($ids, $period, $date, $segment = false, $idGoal = false, $columns = array('revenue'));
		    $currentRevenue = $this->getArrayFromAPI($dataTableArray, 'revenue');
		}
		// Previous date
		$lastVisits = $lastActions = $lastRevenue = array();
		if($period != 'range')
		{
			$lastDate = Piwik_Period_Range::removePeriod($period, Piwik_Date::factory($date), $n = 1 );
			$dataTableArray = Piwik_VisitsSummary_API::getInstance()->get($ids, $period, $lastDate, $segment = false, $columns = array('nb_visits', 'nb_actions'));
			$lastVisits =  $this->getArrayFromAPI($dataTableArray, 'nb_visits');
			$lastActions =  $this->getArrayFromAPI($dataTableArray, 'nb_actions');
			if($displayRevenueColumn)
			{
			    $dataTableArray = Piwik_Goals_API::getInstance()->get($ids, $period, $lastDate, $segment = false, $idGoal = false, $columns = array('revenue'));
			    $lastRevenue = $this->getArrayFromAPI($dataTableArray, 'revenue');
			}
		}
		
		$visitsSummary = $this->getChangeCurrentVsLast($currentVisits, $lastVisits);
		$actionsSummary = $this->getChangeCurrentVsLast($currentActions, $lastActions);
		if($displayRevenueColumn)
		{
		    $revenueSummary = $this->getChangeCurrentVsLast($currentRevenue, $lastRevenue);
		}
		$totalVisits = $totalActions = $totalRevenue = 0;
		
		foreach($mySites as &$site)
		{
			$idSite = $site['idsite'];
			if($period != 'range')
			{
				$site['lastVisits'] = $lastVisits[$idSite];
				$site['lastActions'] = $lastActions[$idSite];
				if($displayRevenueColumn)
				{
				    $site['lastRevenue'] = $lastRevenue[$idSite];
				}
			}
			
			$site['visits'] = $currentVisits[$idSite];
			$site['actions'] = $currentActions[$idSite];
			$totalVisits += $site['visits'];
			$totalActions += $site['actions'];
			$site['visitsSummaryValue'] = $visitsSummary[$idSite];
			$site['actionsSummaryValue'] = $actionsSummary[$idSite];
			$site['revenue'] = $site['revenueSummaryValue'] = 0;
			if($displayRevenueColumn)
			{
    			$site['revenue'] = $currentRevenue[$idSite];
    			$totalRevenue += $site['revenue'];
    			$site['revenueSummaryValue'] = $revenueSummary[$idSite];
			}
		}
		$mySites = $this->applyPrettyMoney($mySites);
		
		$view = new Piwik_View("MultiSites/templates/index.tpl");
		$view->mySites = $mySites;
		$view->evolutionBy = $this->evolutionBy;
		$view->period = $period;
		$view->dateRequest = $dateRequest;
		$view->page = $this->page;
		$view->limit = $this->limit;
		$view->orderBy = $this->orderBy;
		$view->order = $this->order;
		$view->totalVisits = $totalVisits;
		$view->totalRevenue = $totalRevenue;
		$view->displayRevenueColumn = $displayRevenueColumn;
		$view->totalActions = $totalActions;
	
		$params = $this->getGraphParamsModified();
		$view->dateSparkline = $period == 'range' ? $dateRequest : $params['date'];
		
		$view->autoRefreshTodayReport = false;
		// if the current date is today, or yesterday, 
		// in case the website is set to UTC-12), or today in UTC+14, we refresh the page every 5min
		if(in_array($date, array(	'today', date('Y-m-d'), 
											'yesterday', Piwik_Date::factory('yesterday')->toString('Y-m-d'),
											Piwik_Date::factory('now', 'UTC+14')->toString('Y-m-d'))))
		{
			
			$view->autoRefreshTodayReport = Zend_Registry::get('config')->General->multisites_refresh_after_seconds;
		}
		$this->setGeneralVariablesView($view);
		$this->setMinMaxDateAcrossWebsites($mySites, $view);
		$view->show_sparklines = Zend_Registry::get('config')->General->show_multisites_sparklines;

		echo $view->render();
	}