isArchivingDisabledFor() public static method

public static isArchivingDisabledFor ( array $idSites, Segment $segment, $periodLabel )
$idSites array
$segment Piwik\Segment
コード例 #1
0
ファイル: Rules.php プロジェクト: diosmosis/piwik
 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;
 }
コード例 #2
0
ファイル: Archive.php プロジェクト: carriercomm/piwik
 /**
  * Returns archive IDs for the sites, periods and archive names that are being
  * queried. This function will use the idarchive cache if it has the right data,
  * query archive tables for IDs w/o launching archiving, or launch archiving and
  * get the idarchive from ArchiveProcessor instances.
  */
 private function getArchiveIds($archiveNames)
 {
     $plugins = $this->getRequestedPlugins($archiveNames);
     // figure out which archives haven't been processed (if an archive has been processed,
     // then we have the archive IDs in $this->idarchives)
     $doneFlags = array();
     $archiveGroups = array();
     foreach ($plugins as $plugin) {
         $doneFlag = $this->getDoneStringForPlugin($plugin);
         $doneFlags[$doneFlag] = true;
         if (!isset($this->idarchives[$doneFlag])) {
             $archiveGroup = $this->getArchiveGroupOfPlugin($plugin);
             if ($archiveGroup == self::ARCHIVE_ALL_PLUGINS_FLAG) {
                 $archiveGroup = reset($plugins);
             }
             $archiveGroups[] = $archiveGroup;
         }
     }
     $archiveGroups = array_unique($archiveGroups);
     // cache id archives for plugins we haven't processed yet
     if (!empty($archiveGroups)) {
         if (!Rules::isArchivingDisabledFor($this->params->getIdSites(), $this->params->getSegment(), $this->getPeriodLabel())) {
             $this->cacheArchiveIdsAfterLaunching($archiveGroups, $plugins);
         } else {
             $this->cacheArchiveIdsWithoutLaunching($plugins);
         }
     }
     // order idarchives by the table month they belong to
     $idArchivesByMonth = array();
     foreach (array_keys($doneFlags) as $doneFlag) {
         if (empty($this->idarchives[$doneFlag])) {
             continue;
         }
         foreach ($this->idarchives[$doneFlag] as $dateRange => $idarchives) {
             foreach ($idarchives as $id) {
                 $idArchivesByMonth[$dateRange][] = $id;
             }
         }
     }
     return $idArchivesByMonth;
 }
コード例 #3
0
ファイル: Archive.php プロジェクト: diosmosis/piwik
 /**
  * Returns archive IDs for the sites, periods and archive names that are being
  * queried. This function will use the idarchive cache if it has the right data,
  * query archive tables for IDs w/o launching archiving, or launch archiving and
  * get the idarchive from ArchiveProcessor instances.
  *
  * @param string $archiveNames
  * @return array
  */
 private function getArchiveIds($archiveNames)
 {
     $plugins = $this->getRequestedPlugins($archiveNames);
     // figure out which archives haven't been processed (if an archive has been processed,
     // then we have the archive IDs in $this->idarchives)
     $doneFlags = array();
     $archiveGroups = array();
     foreach ($plugins as $plugin) {
         $doneFlag = $this->getDoneStringForPlugin($plugin, $this->params->getIdSites());
         $doneFlags[$doneFlag] = true;
         if (!isset($this->idarchives[$doneFlag])) {
             $archiveGroup = $this->getArchiveGroupOfPlugin($plugin);
             if ($archiveGroup == self::ARCHIVE_ALL_PLUGINS_FLAG) {
                 $archiveGroup = reset($plugins);
             }
             $archiveGroups[] = $archiveGroup;
         }
         $globalDoneFlag = Rules::getDoneFlagArchiveContainsAllPlugins($this->params->getSegment());
         if ($globalDoneFlag !== $doneFlag) {
             $doneFlags[$globalDoneFlag] = true;
         }
     }
     $archiveGroups = array_unique($archiveGroups);
     // cache id archives for plugins we haven't processed yet
     if (!empty($archiveGroups)) {
         if (!Rules::isArchivingDisabledFor($this->params->getIdSites(), $this->params->getSegment(), $this->getPeriodLabel())) {
             $this->cacheArchiveIdsAfterLaunching($archiveGroups, $plugins);
         } else {
             $this->cacheArchiveIdsWithoutLaunching($plugins);
         }
     }
     $idArchivesByMonth = $this->getIdArchivesByMonth($doneFlags);
     return $idArchivesByMonth;
 }