/** * Return the number of visitors that visited every site in the given list for the * given date range. Includes the number of visitors that visited at least one site * and the number that visited every site. * * This data is calculated on demand, and for very large tables can take a long time * to run. * * See {@link Model\DistinctMetricsAggregator} for more information. * * @param string $idSite comma separated list of site IDs, ie, `"1,2,3"` * @param string $period * @param string $date * @return array Metrics **nb_total_visitors** and **nb_shared_visitors**. * @throws Exception if $idSite references zero sites or just one site. */ public function getCommonVisitors($idSite, $period, $date, $segment = false) { if (empty($idSite)) { throw new Exception("No sites to get common visitors for."); } $idSites = Site::getIdSitesFromIdSitesString($idSite); Piwik::checkUserHasViewAccess($idSites); $segment = new Segment($segment, $idSites); $period = PeriodFactory::build($period, $date); return $this->distinctMetricsAggregator->getCommonVisitorCount($idSites, $period->getDateStart(), $period->getDateEnd(), $segment); }
/** * @expectedException \Exception */ public function test_getCommonVisitorCount_Throws_WhenOneSiteSupplied() { $this->instance->getCommonVisitorCount(array(1), Date::factory("2012-01-01"), Date::factory("2012-02-01"), new Segment("", array(1))); }