public function generalSettings() { Piwik::checkUserHasSomeAdminAccess(); $view = Piwik_View::factory('generalSettings'); if (Piwik::isUserIsSuperUser()) { $enableBrowserTriggerArchiving = Piwik_ArchiveProcessing::isBrowserTriggerArchivingEnabled(); $todayArchiveTimeToLive = Piwik_ArchiveProcessing::getTodayArchiveTimeToLive(); $showWarningCron = false; if (!$enableBrowserTriggerArchiving && $todayArchiveTimeToLive < 3600) { $showWarningCron = true; } $view->showWarningCron = $showWarningCron; $view->todayArchiveTimeToLive = $todayArchiveTimeToLive; $view->enableBrowserTriggerArchiving = $enableBrowserTriggerArchiving; $view->language = Piwik_LanguagesManager::getLanguageCodeForCurrentUser(); if (!Zend_Registry::get('config')->isFileWritable()) { $view->configFileNotWritable = true; } $view->mail = Zend_Registry::get('config')->mail->toArray(); } $this->setBasicVariablesView($view); $view->topMenu = Piwik_GetTopMenu(); $view->menu = Piwik_GetAdminMenu(); echo $view->render(); }
public function generalSettings() { Piwik::checkUserHasSomeAdminAccess(); $view = Piwik_View::factory('generalSettings'); if (Piwik::isUserIsSuperUser()) { $enableBrowserTriggerArchiving = Piwik_ArchiveProcessing::isBrowserTriggerArchivingEnabled(); $todayArchiveTimeToLive = Piwik_ArchiveProcessing::getTodayArchiveTimeToLive(); $showWarningCron = false; if (!$enableBrowserTriggerArchiving && $todayArchiveTimeToLive < 3600) { $showWarningCron = true; } $view->showWarningCron = $showWarningCron; $view->todayArchiveTimeToLive = $todayArchiveTimeToLive; $view->enableBrowserTriggerArchiving = $enableBrowserTriggerArchiving; if (!Piwik_Config::getInstance()->isFileWritable()) { $view->configFileNotWritable = true; } $view->mail = Piwik_Config::getInstance()->mail; $view->branding = Piwik_Config::getInstance()->branding; $directoryWritable = is_writable(PIWIK_DOCUMENT_ROOT . '/themes/'); $logoFilesWriteable = is_writeable(PIWIK_DOCUMENT_ROOT . '/themes/logo.png') && is_writeable(PIWIK_DOCUMENT_ROOT . '/themes/logo-header.png'); $view->logosWriteable = ($logoFilesWriteable || $directoryWritable) && ini_get('file_uploads') == 1; } $view->language = Piwik_LanguagesManager::getLanguageCodeForCurrentUser(); $this->setBasicVariablesView($view); $view->topMenu = Piwik_GetTopMenu(); $view->menu = Piwik_GetAdminMenu(); echo $view->render(); }
/** * test of validity of an archive, for today's archive with toronto's timezone * @group Core * @group ArchiveProcessing */ public function testInitTodayToronto() { if (!Piwik::isTimezoneSupportEnabled()) { $this->markTestSkipped('timezones needs to be supported'); } $now = time(); $siteTimezone = 'America/Toronto'; $timestamp = Piwik_Date::factory('now', $siteTimezone)->getTimestamp(); $dateLabel = date('Y-m-d', $timestamp); Piwik_ArchiveProcessing::setBrowserTriggerArchiving(true); $archiveProcessing = $this->_createArchiveProcessing('day', $dateLabel, $siteTimezone); $archiveProcessing->time = $now; // we look at anything processed within the time to live range $dateMinArchived = $now - Piwik_ArchiveProcessing::getTodayArchiveTimeToLive(); $this->assertEquals($archiveProcessing->getMinTimeArchivedProcessed(), $dateMinArchived); $this->assertTrue($archiveProcessing->isArchiveTemporary()); // when browsers don't trigger archives, we force ArchiveProcessing // to fetch any of the most recent archive Piwik_ArchiveProcessing::setBrowserTriggerArchiving(false); // see isArchivingDisabled() // Running in CLI doesn't impact the time to live today's archive we are loading // From CLI, we will not return data that is 'stale' if (!Piwik_Common::isPhpCliMode()) { $dateMinArchived = 0; } $this->assertEquals($archiveProcessing->getMinTimeArchivedProcessed(), $dateMinArchived); // this test varies with DST $this->assertTrue($archiveProcessing->getStartDatetimeUTC() == date('Y-m-d', $timestamp) . ' 04:00:00' || $archiveProcessing->getStartDatetimeUTC() == date('Y-m-d', $timestamp) . ' 05:00:00'); $this->assertTrue($archiveProcessing->getEndDatetimeUTC() == date('Y-m-d', $timestamp + 86400) . ' 03:59:59' || $archiveProcessing->getEndDatetimeUTC() == date('Y-m-d', $timestamp + 86400) . ' 04:59:59'); $this->assertTrue($archiveProcessing->isArchiveTemporary()); }
protected function initStateFromParameters() { // Detect parameters $reset = $this->isParameterSet("force-all-periods", $valuePossible = true); $forceAll = $this->isParameterSet("force-all-websites"); $forceTimeoutPeriod = $this->isParameterSet("force-timeout-for-periods", $valuePossible = true); if (!empty($forceTimeoutPeriod) && $forceTimeoutPeriod !== true) { // Ensure the cache for periods is at least as high as cache for today $todayTTL = Piwik_ArchiveProcessing::getTodayArchiveTimeToLive(); if ($forceTimeoutPeriod < $todayTTL) { $this->log("WARNING: Automatically increasing --force-timeout-for-periods from {$forceTimeoutPeriod} to " . $todayTTL . " to match the cache timeout for Today's report specified in Piwik UI > Settings > General Settings"); $forceTimeoutPeriod = $todayTTL; } $this->processPeriodsMaximumEverySeconds = $forceTimeoutPeriod; } // Recommend to disable browser archiving when using this script if (Piwik_ArchiveProcessing::isBrowserTriggerArchivingEnabled()) { $this->log("NOTE: if you execute this script at least once per hour (or more often) in a crontab, you may disable 'Browser trigger archiving' in Piwik UI > Settings > General Settings. "); $this->log(" see doc at: http://piwik.org/docs/setup-auto-archiving/"); } if ($reset) { $this->log("--force-all-periods was detected: the script will run as if it was its first run, and will trigger archiving for all periods."); $this->shouldResetState = true; if (!$forceAll && is_numeric($reset) && $reset > 0) { $this->firstRunActiveWebsitesWithTraffic = (int) $reset; } } if ($forceAll) { $this->log("--force-all-websites was detected: the script will archive all websites and all periods sequentially"); $this->shouldArchiveAllWebsites = true; } $this->timeLastCompleted = Piwik_GetOption(self::OPTION_ARCHIVING_FINISHED_TS); if ($this->shouldResetState) { $this->timeLastCompleted = false; } }