public static build ( string | integer | array $idSites, string $period, |
||
$idSites | string | integer | array | A single ID (eg, `'1'`), multiple IDs (eg, `'1,2,3'` or `array(1, 2, 3)`), or `'all'`. |
$period | string | 'day', `'week'`, `'month'`, `'year'` or `'range'` |
$strDate | 'YYYY-MM-DD', magic keywords (ie, 'today'; {@link Date::factory()} or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD'). | |
$segment | boolean | false | string | Segment definition or false if no segment should be used. {@link Piwik\Segment} |
$_restrictSitesToLogin | boolean | false | string | Used only when running as a scheduled task. |
Результат | static |
public static function build($idSites, $period, $strDate, $segment = false, $_restrictSitesToLogin = false)
{
$websiteIds = Site::getIdSitesFromIdSitesString($idSites, $_restrictSitesToLogin);
$timezone = false;
if (count($websiteIds) == 1) {
$timezone = Site::getTimezoneFor($websiteIds[0]);
}
if (Period::isMultiplePeriod($strDate, $period)) {
$oPeriod = PeriodFactory::build($period, $strDate, $timezone);
$allPeriods = $oPeriod->getSubperiods();
} else {
$oPeriod = PeriodFactory::makePeriodFromQueryParams($timezone, $period, $strDate);
$allPeriods = array($oPeriod);
}
$segment = new Segment($segment, $websiteIds);
$idSiteIsAll = $idSites == self::REQUEST_ALL_WEBSITES_FLAG;
$isMultipleDate = Period::isMultiplePeriod($strDate, $period);
return static::factory($segment, $allPeriods, $websiteIds, $idSiteIsAll, $isMultipleDate);
}
protected function getNumeric($idSite, $period, $date, $segment, $toFetch) { Piwik::checkUserHasViewAccess($idSite); $archive = Archive::build($idSite, $period, $date, $segment); $dataTable = $archive->getDataTableFromNumeric($toFetch); return $dataTable; }