php Piwik-Option类(方法)实例源码

下面列出了php Piwik-Option 类(方法)源码代码实例,从而了解它的用法。

作者:Abin    项目:piwi   
public static function setUpBeforeClass()
 {
     $dbName = false;
     if (!empty($GLOBALS['PIWIK_BENCHMARK_DATABASE'])) {
         $dbName = $GLOBALS['PIWIK_BENCHMARK_DATABASE'];
     }
     // connect to database
     self::createTestConfig();
     self::connectWithoutDatabase();
     // create specified fixture (global var not set, use default no-data fixture (see end of this file))
     if (empty($GLOBALS['PIWIK_BENCHMARK_FIXTURE'])) {
         $fixtureName = 'Piwik_Test_Fixture_EmptyOneSite';
     } else {
         $fixtureName = 'Piwik_Test_Fixture_' . $GLOBALS['PIWIK_BENCHMARK_FIXTURE'];
     }
     self::$fixture = new $fixtureName();
     // figure out if the desired fixture has already been setup, and if not empty the database
     $installedFixture = false;
     try {
         if (isset(self::$fixture->tablesPrefix)) {
             Config::getInstance()->database['tables_prefix'] = self::$fixture->tablesPrefix;
         }
         Db::query("USE " . $dbName);
         $installedFixture = \Piwik\Option::get('benchmark_fixture_name');
     } catch (Exception $ex) {
         // ignore
     }
     $createEmptyDatabase = $fixtureName != $installedFixture;
     parent::_setUpBeforeClass($dbName, $createEmptyDatabase);
     // if we created an empty database, setup the fixture
     if ($createEmptyDatabase) {
         self::$fixture->setUp();
         \Piwik\Option::set('benchmark_fixture_name', $fixtureName);
     }
 }

作者:piwi    项目:piwi   
public function doUpdate(Updater $updater)
 {
     // delete schema version_
     Option::delete('version_Referers');
     $updater->executeMigrations(__FILE__, $this->getMigrations($updater));
     // old plugins deleted in 2.0-a17 update file
 }

作者:FluentDevelopmen    项目:piwi   
/**
  * @depends testMarkComponentSuccessfullyUpdated_ShouldCreateAnOptionEntry
  */
 public function testMarkComponentSuccessfullyUninstalled_ShouldCreateAnOptionEntry()
 {
     $updater = $this->createUpdater();
     $updater->markComponentSuccessfullyUninstalled('test_entry');
     $value = Option::get('version_test_entry');
     $this->assertFalse($value);
 }

作者:TensorWrenchOS    项目:piwi   
public function testWebArchiving()
 {
     if (self::isMysqli() && self::isTravisCI()) {
         $this->markTestSkipped('Skipping on Mysqli as it randomly fails.');
     }
     $host = Fixture::getRootUrl();
     $token = Fixture::getTokenAuth();
     $urlTmp = Option::get('piwikUrl');
     Option::set('piwikUrl', $host . 'tests/PHPUnit/proxy/index.php');
     $url = $host . 'tests/PHPUnit/proxy/archive.php?token_auth=' . $token;
     $output = Http::sendHttpRequest($url, 600);
     // ignore random build issues
     if (empty($output) || strpos($output, \Piwik\CronArchive::NO_ERROR) === false) {
         $message = "This test has failed. Because it sometimes randomly fails, we skip the test, and ignore this failure.\n";
         $message .= "If you see this message often, or in every build, please investigate as this should only be a random and rare occurence!\n";
         $message .= "\n\narchive web failed: " . $output . "\n\nurl used: {$url}";
         $this->markTestSkipped($message);
     }
     if (!empty($urlTmp)) {
         Option::set('piwikUrl', $urlTmp);
     } else {
         Option::delete('piwikUrl');
     }
     $this->assertContains('Starting Piwik reports archiving...', $output);
     $this->assertContains('Archived website id = 1', $output);
     $this->assertContains('Done archiving!', $output);
     $this->compareArchivePhpOutputAgainstExpected($output);
 }

作者:FluentDevelopmen    项目:piwi   
public function test_rememberToInvalidateArchivedReportsLater_shouldNotCreateEntryTwice()
 {
     $this->rememberReport(2, '2014-04-05');
     $this->rememberReport(2, '2014-04-05');
     $this->rememberReport(2, '2014-04-05');
     $this->assertCount(1, Option::getLike('report_to_invalidate%'));
 }

作者:cem    项目:piwi   
/**
  * Tracker requests will automatically trigger the Scheduled tasks.
  * This is useful for users who don't setup the cron,
  * but still want daily/weekly/monthly PDF reports emailed automatically.
  *
  * This is similar to calling the API CoreAdminHome.runScheduledTasks
  */
 public function runScheduledTasks()
 {
     $now = time();
     // Currently, there are no hourly tasks. When there are some,
     // this could be too aggressive minimum interval (some hours would be skipped in case of low traffic)
     $minimumInterval = TrackerConfig::getConfigValue('scheduled_tasks_min_interval');
     // If the user disabled browser archiving, he has already setup a cron
     // To avoid parallel requests triggering the Scheduled Tasks,
     // Get last time tasks started executing
     $cache = Cache::getCacheGeneral();
     if ($minimumInterval <= 0 || empty($cache['isBrowserTriggerEnabled'])) {
         Common::printDebug("-> Scheduled tasks not running in Tracker: Browser archiving is disabled.");
         return;
     }
     $nextRunTime = $cache['lastTrackerCronRun'] + $minimumInterval;
     if (defined('DEBUG_FORCE_SCHEDULED_TASKS') && DEBUG_FORCE_SCHEDULED_TASKS || $cache['lastTrackerCronRun'] === false || $nextRunTime < $now) {
         $cache['lastTrackerCronRun'] = $now;
         Cache::setCacheGeneral($cache);
         Option::set('lastTrackerCronRun', $cache['lastTrackerCronRun']);
         Common::printDebug('-> Scheduled Tasks: Starting...');
         $invokeScheduledTasksUrl = "?module=API&format=csv&convertToUnicode=0&method=CoreAdminHome.runScheduledTasks&trigger=archivephp";
         $cliMulti = new CliMulti();
         $cliMulti->runAsSuperUser();
         $responses = $cliMulti->request(array($invokeScheduledTasksUrl));
         $resultTasks = reset($responses);
         Common::printDebug($resultTasks);
         Common::printDebug('Finished Scheduled Tasks.');
     } else {
         Common::printDebug("-> Scheduled tasks not triggered.");
     }
     Common::printDebug("Next run will be from: " . date('Y-m-d H:i:s', $nextRunTime) . ' UTC');
 }

作者:diosmosi    项目:plugin-TasksTimetabl   
public function index()
 {
     Piwik::checkUserHasSuperUserAccess();
     $view = new View('@TasksTimetable/index.twig');
     $this->setGeneralVariablesView($view);
     $tasks = Option::get('TaskScheduler.timetable');
     if (!empty($tasks)) {
         $tasks = unserialize($tasks);
     }
     if (empty($tasks)) {
         $tasks = array();
     } else {
         asort($tasks);
     }
     $tsNow = Date::now()->getTimestamp();
     $dateFormat = Piwik::translate(Date::DATE_FORMAT_LONG) . ' h:mm:ss';
     $formatter = new Formatter();
     $tasksFormatted = array();
     foreach ($tasks as $name => $timestamp) {
         $tasksFormatted[] = array('name' => $name, 'executionDate' => Date::factory($timestamp)->getLocalized($dateFormat), 'ts_difference' => $formatter->getPrettyTimeFromSeconds($timestamp - $tsNow));
     }
     $view->currentTime = Date::now()->getLocalized($dateFormat);
     $view->tasks = $tasksFormatted;
     return $view->render();
 }

作者:KiwiJuice    项目:handball-dacha   
/**
  * Returns version number of a newer Piwik release.
  *
  * @return string|bool  false if current version is the latest available,
  *                       or the latest version number if a newest release is available
  */
 public static function isNewestVersionAvailable()
 {
     $latestVersion = Option::get(self::LATEST_VERSION);
     if (!empty($latestVersion) && version_compare(Version::VERSION, $latestVersion) == -1) {
         return $latestVersion;
     }
     return false;
 }

作者:TensorWrenchOS    项目:piwi   
public function setUp()
 {
     parent::setUp();
     $this->manager = new PrivacyManager();
     \Piwik\Option::set('delete_logs_enable', 1);
     \Piwik\Option::set('delete_logs_older_than', 270);
     \Piwik\Option::set('delete_reports_keep_week_reports', 1);
 }

作者:dorelljame    项目:piwi   
/**
  * Caches the intermediate DataTables used in the getIndividualReportsSummary and
  * getIndividualMetricsSummary reports in the option table.
  */
 public function cacheDataByArchiveNameReports()
 {
     $api = API::getInstance();
     $api->getIndividualReportsSummary(true);
     $api->getIndividualMetricsSummary(true);
     $now = Date::now()->getLocalized(Date::DATE_FORMAT_SHORT);
     Option::set(DBStats::TIME_OF_LAST_TASK_RUN_OPTION, $now);
 }

作者:heiglandrea    项目:plugin-LoginLda   
static function update()
 {
     // when updating from pre-3.0 versions, set use_ldap_for_authentication to 0 and make sure
     // a warning displays in the UI to not set it to 1
     \Piwik\Config::getInstance()->LoginLdap['use_ldap_for_authentication'] = 0;
     \Piwik\Config::getInstance()->forceSave();
     Option::set('LoginLdap_updatedFromPre3_0', 1);
 }

作者:diosmosi    项目:plugin-TasksTimetabl   
public function setUp()
 {
     parent::setUp();
     self::updateDatabase();
     self::createWebsite("2012-01-01 00:00:00");
     $fakeTasks = array('Piwik\\Plugins\\ExamplePlugin\\Tasks.myTask' => Date::factory("2012-01-02 02:33:45")->getTimestampUTC(), 'Piwik\\Plugins\\CoreUpdater\\Tasks.sendNotificationIfUpdateAvailable' => Date::factory("2012-03-04 13:45:56")->getTimestampUTC(), 'Piwik\\Plugins\\CorePluginsAdmin\\Tasks.sendNotificationIfUpdatesAvailable' => Date::factory("2012-02-12 15:12:10")->getTimestampUTC());
     Option::set('TaskScheduler.timetable', serialize($fakeTasks));
 }

作者:CaptainShar    项目:SSAD_Projec   
/**
  * Caches the intermediate DataTables used in the getIndividualReportsSummary and
  * getIndividualMetricsSummary reports in the option table.
  */
 public function cacheDataByArchiveNameReports()
 {
     $api = API::getInstance();
     $api->getIndividualReportsSummary(true);
     $api->getIndividualMetricsSummary(true);
     $now = Date::now()->getLocalized("%longYear%, %shortMonth% %day%");
     Option::set(DBStats::TIME_OF_LAST_TASK_RUN_OPTION, $now);
 }

作者:FluentDevelopmen    项目:piwi   
/**
  * @param  string $componentPrefix eg 'version_log_visit.'
  * @return array An array of column names that are marked as installed. eg array('idvist', 'server_time', ...)
  */
 private static function getMarkedAsInstalledColumns($componentPrefix)
 {
     $installedVisitColumns = Option::getLike($componentPrefix . '%');
     $installedVisitColumns = array_keys($installedVisitColumns);
     $installedVisitColumns = array_map(function ($entry) use($componentPrefix) {
         return str_replace($componentPrefix, '', $entry);
     }, $installedVisitColumns);
     return $installedVisitColumns;
 }

作者:FluentDevelopmen    项目:piwi   
public function test_UpdateCommand_DoesNotExecuteUpdate_IfPiwikUpToDate()
 {
     Option::set('version_core', Version::VERSION);
     $result = $this->applicationTester->run(array('command' => 'core:update', '--yes' => true));
     $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage());
     // check no update occurred
     $this->assertContains("Everything is already up to date.", $this->applicationTester->getDisplay());
     $this->assertEquals(Version::VERSION, Option::get('version_core'));
 }

作者:FluentDevelopmen    项目:piwi   
public function test_construct_CorrectlyConvertsOldListValues()
 {
     $oldItems = array('2015_01' => array(1, 2, 3), '2013_02' => array(3), 3 => '2015_03', '2014_01' => array(), 4 => '2015_06');
     Option::set(ArchivesToPurgeDistributedList::OPTION_INVALIDATED_DATES_SITES_TO_PURGE, serialize($oldItems));
     $list = new ArchivesToPurgeDistributedList();
     $items = $list->getAll();
     $expected = array('2015_03', '2015_06', '2015_01', '2013_02', '2014_01');
     $this->assertEquals($expected, array_values($items));
 }

作者:carriercom    项目:piwi   
public function getAllSiteIdsToArchive()
 {
     Option::clearCachedOption('SharedSiteIdsToArchive');
     $siteIdsToArchive = Option::get('SharedSiteIdsToArchive');
     if (empty($siteIdsToArchive)) {
         return array();
     }
     return explode(',', trim($siteIdsToArchive));
 }

作者:piwi    项目:piwi   
private function migratePluginEmailUpdateSetting()
 {
     $isEnabled = Option::get('enableUpdateCommunicationPlugins');
     Access::doAsSuperUser(function () use($isEnabled) {
         $settings = StaticContainer::get('Piwik\\Plugins\\CoreUpdater\\SystemSettings');
         $settings->sendPluginUpdateEmail->setValue(!empty($isEnabled));
         $settings->save();
     });
 }

作者:brienomatt    项目:elmsl   
private function set($name, $value, $config)
 {
     if ('boolean' == $config['type']) {
         $value = $value ? '1' : '0';
     } else {
         settype($value, $config['type']);
     }
     Option::set($this->prefix($name), $value);
     Cache::clearCacheGeneral();
 }

作者:dorelljame    项目:piwi   
/**
  * Update the social definitions
  *
  * @see https://github.com/piwik/searchengine-and-social-list
  */
 public function updateSocials()
 {
     $url = 'https://raw.githubusercontent.com/piwik/searchengine-and-social-list/master/Socials.yml';
     $list = Http::sendHttpRequest($url, 30);
     $socials = Social::getInstance()->loadYmlData($list);
     if (count($socials) < 50) {
         return;
     }
     Option::set(Social::OPTION_STORAGE_NAME, base64_encode(serialize($socials)));
 }


问题


面经


文章

微信
公众号

扫码关注公众号