public static function getInstance() { if (self::$instance == null) { self::$instance = new self(); } return self::$instance; }
public static function getInstance() { if (self::$instance == null) { $c = __CLASS__; self::$instance = new $c(); } return self::$instance; }
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); }
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(); }
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(); }
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(); }