Piwik\ArchiveProcessor\Rules::getMinTimeProcessedForTemporaryArchive PHP Méthode

getMinTimeProcessedForTemporaryArchive() public static méthode

public static getMinTimeProcessedForTemporaryArchive ( Date $dateStart, Piwik\Period $period, Segment $segment, Site $site )
$dateStart Piwik\Date
$period Piwik\Period
$segment Piwik\Segment
$site Piwik\Site
    public static function getMinTimeProcessedForTemporaryArchive(Date $dateStart, \Piwik\Period $period, Segment $segment, Site $site)
    {
        $now = time();
        $minimumArchiveTime = $now - Rules::getTodayArchiveTimeToLive();
        $idSites = array($site->getId());
        $isArchivingDisabled = Rules::isArchivingDisabledFor($idSites, $segment, $period->getLabel());
        if ($isArchivingDisabled) {
            if ($period->getNumberOfSubperiods() == 0 && $dateStart->getTimestamp() <= $now) {
                // Today: accept any recent enough archive
                $minimumArchiveTime = false;
            } else {
                // This week, this month, this year:
                // accept any archive that was processed today after 00:00:01 this morning
                $timezone = $site->getTimezone();
                $minimumArchiveTime = Date::factory(Date::factory('now', $timezone)->getDateStartUTC())->setTimezone($timezone)->getTimestamp();
            }
        }
        return $minimumArchiveTime;
    }

Usage Example

Exemple #1
0
 /**
  * Returns the minimum archive processed datetime to look at. Only public for tests.
  *
  * @return int|bool  Datetime timestamp, or false if must look at any archive available
  */
 protected function getMinTimeArchiveProcessed()
 {
     $endDateTimestamp = self::determineIfArchivePermanent($this->params->getDateEnd());
     $isArchiveTemporary = $endDateTimestamp === false;
     $this->temporaryArchive = $isArchiveTemporary;
     if ($endDateTimestamp) {
         // Permanent archive
         return $endDateTimestamp;
     }
     // Temporary archive
     return Rules::getMinTimeProcessedForTemporaryArchive($this->params->getDateStart(), $this->params->getPeriod(), $this->params->getSegment(), $this->params->getSite());
 }