Piwik\Archive::getArchiveIds PHP Метод

getArchiveIds() приватный Метод

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 getArchiveIds ( string $archiveNames ) : array
$archiveNames string
Результат 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;
    }