示例#1
0
 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());
 }
示例#4
0
 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;
     }
 }