diff options
Diffstat (limited to 'includes/DefaultSettings.php')
-rw-r--r-- | includes/DefaultSettings.php | 502 |
1 files changed, 328 insertions, 174 deletions
diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index aad42aac..010c471c 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -52,6 +52,8 @@ if ( !defined( 'MEDIAWIKI' ) ) { die( 1 ); } +/** @endcond */ + /** * wgConf hold the site configuration. * Not used for much in a default install. @@ -71,11 +73,9 @@ $wgConfigRegistry = array( /** * MediaWiki version number - * Note that MediaWikiVersionFetcher::fetchVersion() uses a regex to check this. - * Using single quotes is, therefore, important here. * @since 1.2 */ -$wgVersion = '1.24.2'; +$wgVersion = '1.25.1'; /** * Name of the site. It must be changed in LocalSettings.php @@ -154,12 +154,15 @@ $wgUsePathInfo = ( strpos( PHP_SAPI, 'cgi' ) === false ) && ( strpos( PHP_SAPI, 'isapi' ) === false ); /** - * The extension to append to script names by default. This can either be .php - * or .php5. + * The extension to append to script names by default. + * + * Some hosting providers used PHP 4 for *.php files, and PHP 5 for *.php5. + * This variable was provided to support those providers. * - * Some hosting providers use PHP 4 for *.php files, and PHP 5 for *.php5. This - * variable is provided to support those providers. * @since 1.11 + * @deprecated since 1.25; support for '.php5' is being phased out of MediaWiki + * proper. Backward-compatibility can be maintained by configuring your web + * server to rewrite URLs. See RELEASE-NOTES for details. */ $wgScriptExtension = '.php'; @@ -221,11 +224,18 @@ $wgLocalStylePath = false; $wgExtensionAssetsPath = false; /** + * Filesystem extensions directory. + * Defaults to "{$IP}/extensions". + * @since 1.25 + */ +$wgExtensionDirectory = "{$IP}/extensions"; + +/** * Filesystem stylesheets directory. * Defaults to "{$IP}/skins". * @since 1.3 */ -$wgStyleDirectory = false; +$wgStyleDirectory = "{$IP}/skins"; /** * The URL path for primary article page views. This path should contain $1, @@ -260,6 +270,23 @@ $wgFileCacheDirectory = false; $wgLogo = false; /** + * Array with URL paths to HD versions of the wiki logo. The scaled logo size + * should be under 135x155 pixels. + * Only 1.5x and 2x versions are supported. + * + * @par Example: + * @code + * $wgLogoHD = array( + * "1.5x" => "path/to/1.5x_version.png", + * "2x" => "path/to/2x_version.png" + * ); + * @endcode + * + * @since 1.25 + */ +$wgLogoHD = false; + +/** * The URL path of the shortcut icon. * @since 1.6 */ @@ -273,6 +300,16 @@ $wgFavicon = '/favicon.ico'; $wgAppleTouchIcon = false; /** + * Value for the referrer policy meta tag. + * One of 'never', 'default', 'origin', 'always'. Setting it to false just + * prevents the meta tag from being output. + * See http://www.w3.org/TR/referrer-policy/ for details. + * + * @since 1.25 + */ +$wgReferrerPolicy = false; + +/** * The local filesystem path to a temporary directory. This is not required to * be web accessible. * @@ -943,12 +980,13 @@ $wgExiv2Command = '/usr/bin/exiv2'; * are passed as parameters after $srcPath, $dstPath, $width, $height */ $wgSVGConverters = array( - 'ImageMagick' => '$path/convert -background white -thumbnail $widthx$height\! $input PNG:$output', + 'ImageMagick' => + '$path/convert -background "#ffffff00" -thumbnail $widthx$height\! $input PNG:$output', 'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output', 'inkscape' => '$path/inkscape -z -w $width -f $input -e $output', 'batik' => 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d ' . '$output $input', - 'rsvg' => '$path/rsvg -w $width -h $height $input $output', + 'rsvg' => '$path/rsvg-convert -w $width -h $height -o $output $input', 'imgserv' => '$path/imgserv-wrapper -i svg -o png -w$width $input $output', 'ImagickExt' => array( 'SvgHandler::rasterizeImagickExt' ), ); @@ -1245,6 +1283,46 @@ $wgThumbnailBuckets = null; $wgThumbnailMinimumBucketDistance = 50; /** + * When defined, is an array of thumbnail widths to be rendered at upload time. The idea is to + * prerender common thumbnail sizes, in order to avoid the necessity to render them on demand, which + * has a performance impact for the first client to view a certain size. + * + * This obviously means that more disk space is needed per upload upfront. + * + * @since 1.25 + */ + +$wgUploadThumbnailRenderMap = array(); + +/** + * The method through which the thumbnails will be prerendered for the entries in + * $wgUploadThumbnailRenderMap + * + * The method can be either "http" or "jobqueue". The former uses an http request to hit the + * thumbnail's URL. + * This method only works if thumbnails are configured to be rendered by a 404 handler. The latter + * option uses the job queue to render the thumbnail. + * + * @since 1.25 + */ +$wgUploadThumbnailRenderMethod = 'jobqueue'; + +/** + * When using the "http" wgUploadThumbnailRenderMethod, lets one specify a custom Host HTTP header. + * + * @since 1.25 + */ +$wgUploadThumbnailRenderHttpCustomHost = false; + +/** + * When using the "http" wgUploadThumbnailRenderMethod, lets one specify a custom domain to send the + * HTTP request to. + * + * @since 1.25 + */ +$wgUploadThumbnailRenderHttpCustomDomain = false; + +/** * Default parameters for the "<gallery>" tag */ $wgGalleryOptions = array( @@ -1272,9 +1350,11 @@ $wgDirectoryMode = 0777; * Generate and use thumbnails suitable for screens with 1.5 and 2.0 pixel densities. * * This means a 320x240 use of an image on the wiki will also generate 480x360 and 640x480 - * thumbnails, output via data-src-1-5 and data-src-2-0. Runtime JavaScript switches the - * images in after loading the original low-resolution versions depending on the reported - * window.devicePixelRatio. + * thumbnails, output via the srcset attribute. + * + * On older browsers, a JavaScript polyfill switches the appropriate images in after loading + * the original low-resolution versions depending on the reported window.devicePixelRatio. + * The polyfill can be found in the jquery.hidpi module. */ $wgResponsiveImages = true; @@ -1345,7 +1425,7 @@ $wgDjvuOutputExtension = 'jpg'; /** * Site admin email address. * - * Defaults to "wikiadmin@{$wgServerName}". + * Defaults to "wikiadmin@$wgServerName". */ $wgEmergencyContact = false; @@ -1354,7 +1434,7 @@ $wgEmergencyContact = false; * * The address we should use as sender when a user is requesting his password. * - * Defaults to "apache@{$wgServerName}". + * Defaults to "apache@$wgServerName". */ $wgPasswordSender = false; @@ -1664,6 +1744,9 @@ $wgAllDBsAreLocalhost = false; * $wgSharedPrefix is the table prefix for the shared database. It defaults to * $wgDBprefix. * + * $wgSharedSchema is the table schema for the shared database. It defaults to + * $wgDBmwschema. + * * @deprecated since 1.21 In new code, use the $wiki parameter to wfGetLB() to * access remote databases. Using wfGetLB() allows the shared database to * reside on separate servers to the wiki's own database, with suitable @@ -1682,6 +1765,12 @@ $wgSharedPrefix = false; $wgSharedTables = array( 'user', 'user_properties' ); /** + * @see $wgSharedDB + * @since 1.23 + */ +$wgSharedSchema = false; + +/** * Database load balancer * This is a two-dimensional array, an array of server info structures * Fields are: @@ -1960,15 +2049,6 @@ $wgAllowSlowParserFunctions = false; $wgAllowSchemaUpdates = true; /** - * Anti-lock flags - bitfield - * - ALF_NO_LINK_LOCK: - * Don't use locking reads when updating the link table. This is - * necessary for wikis with a high edit rate for performance - * reasons, but may cause link table inconsistency - */ -$wgAntiLockFlags = 0; - -/** * Maximum article size in kilobytes */ $wgMaxArticleSize = 2048; @@ -2063,43 +2143,21 @@ $wgLanguageConverterCacheType = CACHE_ANYTHING; */ $wgObjectCaches = array( CACHE_NONE => array( 'class' => 'EmptyBagOStuff' ), - CACHE_DB => array( 'class' => 'SqlBagOStuff', 'table' => 'objectcache' ), + CACHE_DB => array( 'class' => 'SqlBagOStuff', 'loggroup' => 'SQLBagOStuff' ), CACHE_ANYTHING => array( 'factory' => 'ObjectCache::newAnything' ), CACHE_ACCEL => array( 'factory' => 'ObjectCache::newAccelerator' ), - CACHE_MEMCACHED => array( 'factory' => 'ObjectCache::newMemcached' ), + CACHE_MEMCACHED => array( 'factory' => 'ObjectCache::newMemcached', 'loggroup' => 'memcached' ), 'apc' => array( 'class' => 'APCBagOStuff' ), 'xcache' => array( 'class' => 'XCacheBagOStuff' ), 'wincache' => array( 'class' => 'WinCacheBagOStuff' ), - 'memcached-php' => array( 'class' => 'MemcachedPhpBagOStuff' ), - 'memcached-pecl' => array( 'class' => 'MemcachedPeclBagOStuff' ), + 'memcached-php' => array( 'class' => 'MemcachedPhpBagOStuff', 'loggroup' => 'memcached' ), + 'memcached-pecl' => array( 'class' => 'MemcachedPeclBagOStuff', 'loggroup' => 'memcached' ), 'hash' => array( 'class' => 'HashBagOStuff' ), ); /** - * Map of bloom filter store names to configuration arrays. - * - * Example: - * $wgBloomFilterStores['main'] = array( - * 'cacheId' => 'main-v1', - * 'class' => 'BloomCacheRedis', - * 'redisServers' => array( '127.0.0.1:6379' ), - * 'redisConfig' => array( 'connectTimeout' => 2 ) - * ); - * - * A primary bloom filter must be created manually. - * Example in eval.php: - * <code> - * BloomCache::get( 'main' )->init( 'shared', 1000000000, .001 ); - * </code> - * The size should be as large as practical given wiki size and resources. - * - * @since 1.24 - */ -$wgBloomFilterStores = array(); - -/** * The expiry time for the parser cache, in seconds. * The default is 86400 (one day). */ @@ -2310,6 +2368,23 @@ $wgClockSkewFudge = 5; */ $wgInvalidateCacheOnLocalSettingsChange = true; +/** + * When loading extensions through the extension registration system, this + * can be used to invalidate the cache. A good idea would be to set this to + * one file, you can just `touch` that one to invalidate the cache + * + * @par Example: + * @code + * $wgExtensionInfoMtime = filemtime( "$IP/LocalSettings.php" ); + * @endcode + * + * If set to false, the mtime for each individual JSON file will be checked, + * which can be slow if a large number of extensions are being loaded. + * + * @var int|bool + */ +$wgExtensionInfoMTime = false; + /** @} */ # end of cache settings /************************************************************************//** @@ -2686,8 +2761,8 @@ $wgBrowserBlackList = array( $wgLegacySchemaConversion = false; /** - * Enable dates like 'May 12' instead of '12 May', this only takes effect if - * the interface is set to English. + * Enable dates like 'May 12' instead of '12 May', if the default date format + * is 'dmy or mdy'. */ $wgAmericanDates = false; @@ -3050,6 +3125,7 @@ $wgEditPageFrameOptions = 'DENY'; * - 'DENY': Do not allow framing. This is recommended for most wikis. * - 'SAMEORIGIN': Allow framing by pages on the same domain. * - false: Allow all framing. + * Note: $wgBreakFrames will override this for human formatted API output. */ $wgApiFrameOptions = 'DENY'; @@ -3088,6 +3164,7 @@ $wgExperimentalHtmlIds = false; * for the icon, the following keys are used: * - src: An absolute url to the image to use for the icon, this is recommended * but not required, however some skins will ignore icons without an image + * - srcset: optional additional-resolution images; see HTML5 specs * - url: The url to use in the a element around the text or icon, if not set an a element will * not be outputted * - alt: This is the text form of the icon, it will be displayed without an image in @@ -3104,7 +3181,9 @@ $wgFooterIcons = array( ), "poweredby" => array( "mediawiki" => array( - // src defaults to "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png" + // Defaults to point at + // "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png" + // plus srcset for 1.5x, 2x resolution variants. "src" => null, "url" => "//www.mediawiki.org/", "alt" => "Powered by MediaWiki", @@ -3161,6 +3240,8 @@ $wgEnableCanonicalServerLink = false; * <cross-domain-policy>. Without this, an attacker can send their own * cross-domain policy unless it is prevented by the crossdomain.xml file at * the domain root. + * + * @since 1.25 */ $wgMangleFlashPolicy = true; @@ -3239,8 +3320,8 @@ $wgResourceModules = array(); * ), * ); * // Note the '+' character: - * $wgResourceModuleSkinStyles['+foo'] = array( - * 'bar' => 'skins/Foo/bar.css', + * $wgResourceModuleSkinStyles['foo'] = array( + * '+bar' => 'skins/Foo/bar.css', * ); * @endcode * @@ -3267,8 +3348,6 @@ $wgResourceModules = array(); * * As with $wgResourceModules, paths default to being relative to the MediaWiki root. * You should always provide a localBasePath and remoteBasePath (or remoteExtPath/remoteSkinPath). - * Either for all skin styles at once (first example below) or for each module separately (second - * example). * * @par Example: * @code @@ -3278,19 +3357,6 @@ $wgResourceModules = array(); * 'remoteSkinPath' => 'Foo', * 'localBasePath' => __DIR__, * ); - * - * $wgResourceModuleSkinStyles['foo'] = array( - * 'bar' => array( - * 'bar.css', - * 'remoteSkinPath' => 'Foo', - * 'localBasePath' => __DIR__, - * ), - * 'quux' => array( - * 'quux.css', - * 'remoteSkinPath' => 'Foo', - * 'localBasePath' => __DIR__, - * ), - * ); * @endcode */ $wgResourceModuleSkinStyles = array(); @@ -3374,15 +3440,6 @@ $wgResourceLoaderMinifierMaxLineLength = 1000; $wgIncludeLegacyJavaScript = true; /** - * Whether to include the jQuery Migrate library, which lets legacy JS that - * requires jQuery 1.8.x to work and breaks with 1.9.x+. - * - * @since 1.24 - * @deprecated since 1.24, to be removed in 1.25 - */ -$wgIncludejQueryMigrate = false; - -/** * Whether to preload the mediawiki.util module as blocking module in the top * queue. * @@ -3480,6 +3537,9 @@ $wgResourceLoaderExperimentalAsyncLoading = false; * * Changes to LESS variables do not trigger cache invalidation. * + * If the LESS variables need to be dynamic, you can use the + * ResourceLoaderGetLessVars hook (since 1.25). + * * @par Example: * @code * $wgResourceLoaderLESSVars = array( @@ -3715,6 +3775,18 @@ $wgInterwikiFallbackSite = 'wiki'; /** @} */ # end of Interwiki caching settings. /** + * @name SiteStore caching settings. + * @{ + */ + +/** + * Specify the file location for the Sites json cache file. + */ +$wgSitesCacheFile = false; + +/** @} */ # end of SiteStore caching settings. + +/** * If local interwikis are set up which allow redirects, * set this regexp to restrict URLs which will be displayed * as 'redirected from' links. @@ -3785,19 +3857,12 @@ $wgNamespacesWithSubpages = array( * A message with the suffix '-desc' should be added as a description message * to have extra information on Special:TrackingCategories. * + * @deprecated since 1.25 Extensions should now register tracking categories using + * the new extension registration system. + * * @since 1.23 */ -$wgTrackingCategories = array( - 'index-category', - 'noindex-category', - 'expensive-parserfunction-category', - 'post-expand-template-argument-category', - 'post-expand-template-inclusion-category', - 'hidden-category-category', - 'broken-file-category', - 'node-count-exceeded-category', - 'expansion-depth-exceeded-category', -); +$wgTrackingCategories = array(); /** * Array of namespaces which can be deemed to contain valid "content", as far @@ -3913,7 +3978,7 @@ $wgUrlProtocols = array( ); /** - * If true, removes (substitutes) templates in "~~~~" signatures. + * If true, removes (by substituting) templates in signatures. */ $wgCleanSignatures = true; @@ -4109,15 +4174,6 @@ $wgTranscludeCacheExpiry = 3600; $wgArticleCountMethod = 'link'; /** - * wgHitcounterUpdateFreq sets how often page counters should be updated, higher - * values are easier on the database. A value of 1 causes the counters to be - * updated on every hit, any higher value n cause them to update *on average* - * every n hits. Should be set to either 1 or something largish, eg 1000, for - * maximum efficiency. - */ -$wgHitcounterUpdateFreq = 1; - -/** * How many days user must be idle before he is considered inactive. Will affect * the number shown on Special:Statistics, Special:ActiveUsers, and the * {{NUMBEROFACTIVEUSERS}} magic word in wikitext. @@ -4279,7 +4335,7 @@ $wgDefaultUserOptions = array( 'enotifrevealaddr' => 0, 'enotifusertalkpages' => 1, 'enotifwatchlistpages' => 1, - 'extendwatchlist' => 0, + 'extendwatchlist' => 1, 'fancysig' => 0, 'forceeditsummary' => 0, 'gender' => 'unknown', @@ -4305,7 +4361,7 @@ $wgDefaultUserOptions = array( 'thumbsize' => 5, 'underline' => 2, 'uselivepreview' => 0, - 'usenewrc' => 0, + 'usenewrc' => 1, 'watchcreations' => 1, 'watchdefault' => 1, 'watchdeletion' => 0, @@ -4517,6 +4573,8 @@ $wgGroupPermissions['user']['reupload-shared'] = true; $wgGroupPermissions['user']['minoredit'] = true; $wgGroupPermissions['user']['purge'] = true; // can use ?action=purge without clicking "ok" $wgGroupPermissions['user']['sendemail'] = true; +$wgGroupPermissions['user']['applychangetags'] = true; +$wgGroupPermissions['user']['changetags'] = true; // Implicit group for accounts that pass $wgAutoConfirmAge $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true; @@ -4577,6 +4635,7 @@ $wgGroupPermissions['sysop']['suppressredirect'] = true; #$wgGroupPermissions['sysop']['pagelang'] = true; #$wgGroupPermissions['sysop']['upload_by_url'] = true; $wgGroupPermissions['sysop']['mergehistory'] = true; +$wgGroupPermissions['sysop']['managechangetags'] = true; // Permission to change users' group assignments $wgGroupPermissions['bureaucrat']['userrights'] = true; @@ -4793,7 +4852,6 @@ $wgAutopromote = array( * @endcode * Where event is either: * - 'onEdit' (when user edits) - * - 'onView' (when user views the wiki) * * Criteria has the same format as $wgAutopromote * @@ -4802,7 +4860,6 @@ $wgAutopromote = array( */ $wgAutopromoteOnce = array( 'onEdit' => array(), - 'onView' => array() ); /** @@ -4992,6 +5049,17 @@ $wgRateLimits = array( 'ip' => null, 'subnet' => null, ), + 'stashedit' => array( // stashing edits into cache before save + 'anon' => null, + 'user' => null, + 'newbie' => null, + 'ip' => null, + 'subnet' => null, + ), + 'changetag' => array( // adding or removing change tags + 'user' => null, + 'newbie' => null, + ), ); /** @@ -5209,9 +5277,11 @@ $wgDebugDumpSqlLength = 500; * Log destinations may be one of the following: * - false to completely remove from the output, including from $wgDebugLogFile. * - string values specifying a filename or URI. - * - associative array mapping 'destination' key to the desired filename or URI. - * The associative array may also contain a 'sample' key with an integer value, - * specifying a sampling factor. + * - associative array with keys: + * - 'destination' desired filename or URI. + * - 'sample' an integer value, specifying a sampling factor (optional) + * - 'level' A \Psr\Log\LogLevel constant, indicating the minimum level + * to log (optional, since 1.25) * * @par Example: * @code @@ -5220,15 +5290,41 @@ $wgDebugDumpSqlLength = 500; * * @par Advanced example: * @code - * $wgDebugLogGroups['memcached'] = ( + * $wgDebugLogGroups['memcached'] = array( * 'destination' => '/var/log/mediawiki/memcached.log', * 'sample' => 1000, // log 1 message out of every 1,000. + * 'level' => \Psr\Log\LogLevel::WARNING * ); * @endcode */ $wgDebugLogGroups = array(); /** + * Default service provider for creating Psr\Log\LoggerInterface instances. + * + * The value should be an array suitable for use with + * ObjectFactory::getObjectFromSpec(). The created object is expected to + * implement the MediaWiki\Logger\Spi interface. See ObjectFactory for additional + * details. + * + * Alternately the MediaWiki\Logger\LoggerFactory::registerProvider method can + * be called to inject an MediaWiki\Logger\Spi instance into the LoggerFactory + * and bypass the use of this configuration variable entirely. + * + * @par To completely disable logging: + * @code + * $wgMWLoggerDefaultSpi = array( 'class' => '\\MediaWiki\\Logger\\NullSpi' ); + * @endcode + * + * @since 1.25 + * @var array $wgMWLoggerDefaultSpi + * @see MwLogger + */ +$wgMWLoggerDefaultSpi = array( + 'class' => '\\MediaWiki\\Logger\\LegacySpi', +); + +/** * Display debug data at the bottom of the main content area. * * Useful for developers and technical users trying to working on a closed wiki. @@ -5308,6 +5404,7 @@ $wgDeprecationReleaseLimit = false; /** * Only record profiling info for pages that took longer than this + * @deprecated since 1.25: set $wgProfiler['threshold'] instead. */ $wgProfileLimit = 0.0; @@ -5326,8 +5423,10 @@ $wgProfileCallTree = false; /** * Should application server host be put into profiling table + * + * @deprecated set $wgProfiler['perhost'] = true instead */ -$wgProfilePerHost = false; +$wgProfilePerHost = null; /** * Host for UDP profiler. @@ -5335,14 +5434,18 @@ $wgProfilePerHost = false; * The host should be running a daemon which can be obtained from MediaWiki * Git at: * http://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile + * + * @deprecated set $wgProfiler['udphost'] instead */ -$wgUDPProfilerHost = '127.0.0.1'; +$wgUDPProfilerHost = null; /** * Port for UDP profiler. * @see $wgUDPProfilerHost + * + * @deprecated set $wgProfiler['udpport'] instead */ -$wgUDPProfilerPort = '3811'; +$wgUDPProfilerPort = null; /** * Format string for the UDP profiler. The UDP profiler invokes sprintf() with @@ -5352,13 +5455,10 @@ $wgUDPProfilerPort = '3811'; * * @see $wgStatsFormatString * @since 1.22 + * + * @deprecated set $wgProfiler['udpformat'] instead */ -$wgUDPProfilerFormatString = "%s - %d %f %f %f %f %s\n"; - -/** - * Output debug message on every wfProfileIn/wfProfileOut - */ -$wgDebugFunctionEntry = false; +$wgUDPProfilerFormatString = null; /** * Destination for wfIncrStats() data... @@ -5390,12 +5490,6 @@ $wgAggregateStatsID = false; $wgStatsFormatString = "stats/%s - %s 1 1 1 1 %s\n"; /** - * Whereas to count the number of time an article is viewed. - * Does not work if pages are cached (for example with squid). - */ -$wgDisableCounters = false; - -/** * InfoAction retrieves a list of transclusion links (both to and from). * This number puts a limit on that query in the case of highly transcluded * templates. @@ -5430,25 +5524,6 @@ $wgParserTestFiles = array( $wgEnableJavaScriptTest = false; /** - * Configuration for javascript testing. - */ -$wgJavaScriptTestConfig = array( - 'qunit' => array( - // Page where documentation can be found relevant to the QUnit test suite being ran. - // Used in the intro paragraph on [[Special:JavaScriptTest/qunit]] for the - // documentation link in the "javascripttest-qunit-intro" message. - 'documentation' => '//www.mediawiki.org/wiki/Manual:JavaScript_unit_testing', - // If you are submitting the QUnit test suite to a TestSwarm instance, - // point this to the "inject.js" script of that instance. This is was registers - // the QUnit hooks to extract the test results and push them back up into the - // TestSwarm database. - // @example 'http://localhost/testswarm/js/inject.js' - // @example '//integration.mediawiki.org/testswarm/js/inject.js' - 'testswarm-injectjs' => false, - ), -); - -/** * Overwrite the caching key prefix with custom value. * @since 1.19 */ @@ -5494,10 +5569,25 @@ $wgSearchHighlightBoundaries = '[\p{Z}\p{P}\p{C}]'; * PHP wrapper to avoid firing up mediawiki for every keystroke * * Placeholders: {searchTerms} + * + * @deprecated since 1.25 Use $wgOpenSearchTemplates['application/x-suggestions+json'] instead */ $wgOpenSearchTemplate = false; /** + * Templates for OpenSearch suggestions, defaults to API action=opensearch + * + * Sites with heavy load would typically have these point to a custom + * PHP wrapper to avoid firing up mediawiki for every keystroke + * + * Placeholders: {searchTerms} + */ +$wgOpenSearchTemplates = array( + 'application/x-suggestions+json' => false, + 'application/x-suggestions+xml' => false, +); + +/** * Enable OpenSearch suggestions requested by MediaWiki. Set this to * false if you've disabled scripts that use api?action=opensearch and * want reduce load caused by cached scripts still pulling suggestions. @@ -5512,6 +5602,11 @@ $wgEnableOpenSearchSuggest = true; $wgOpenSearchDefaultLimit = 10; /** + * Minimum length of extract in <Description>. Actual extracts will last until the end of sentence. + */ +$wgOpenSearchDescriptionLength = 100; + +/** * Expiry time for search suggestion responses */ $wgSearchSuggestCacheExpiry = 1200; @@ -5722,9 +5817,9 @@ $wgGitRepositoryViewers = array( /** * Recentchanges items are periodically purged; entries older than this many * seconds will go. - * Default: 13 weeks = about three months + * Default: 90 days = about three months */ -$wgRCMaxAge = 13 * 7 * 24 * 3600; +$wgRCMaxAge = 90 * 24 * 3600; /** * Filter $wgRCLinkDays by $wgRCMaxAge to avoid showing links for numbers @@ -5877,11 +5972,6 @@ $wgAdvertisedFeedTypes = array( 'atom' ); $wgRCShowWatchingUsers = false; # UPO /** - * Show watching users in Page views - */ -$wgPageShowWatchingUsers = false; - -/** * Show the amount of changed characters in recent changes */ $wgRCShowChangedSize = true; @@ -6160,6 +6250,8 @@ $wgExtensionMessagesFiles = array(); * en.json, de.json, etc. Extensions with messages in multiple places may specify an array of * message directories. * + * Message directories in core should be added to LocalisationCache::getMessagesDirs() + * * @par Simple example: * @code * $wgMessagesDirs['Example'] = __DIR__ . '/i18n'; @@ -6175,10 +6267,7 @@ $wgExtensionMessagesFiles = array(); * @endcode * @since 1.23 */ -$wgMessagesDirs = array( - 'core' => "$IP/languages/i18n", - 'oojs-ui' => "$IP/resources/lib/oojs-ui/i18n", -); +$wgMessagesDirs = array(); /** * Array of files with list(s) of extension entry points to be used in @@ -6254,7 +6343,7 @@ $wgAutoloadAttemptLowercase = true; * 'version' => '1.9.0', * 'url' => 'http://example.org/example-extension/', * 'descriptionmsg' => 'exampleextension-desc', - * 'license-name' => 'GPL-2.0', + * 'license-name' => 'GPL-2.0+', * ); * @endcode * @@ -6288,7 +6377,7 @@ $wgAutoloadAttemptLowercase = true; * localizable message (omit in favour of 'descriptionmsg'). * * - license-name: Short name of the license (used as label for the link), such - * as "GPL-2.0" or "MIT" (https://spdx.org/licenses/ for a list of identifiers). + * as "GPL-2.0+" or "MIT" (https://spdx.org/licenses/ for a list of identifiers). */ $wgExtensionCredits = array(); @@ -6340,7 +6429,6 @@ $wgHooks = array(); */ $wgJobClasses = array( 'refreshLinks' => 'RefreshLinksJob', - 'refreshLinks2' => 'RefreshLinksJob2', // b/c 'htmlCacheUpdate' => 'HTMLCacheUpdateJob', 'sendMail' => 'EmaillingJob', 'enotifNotify' => 'EnotifNotifyJob', @@ -6348,6 +6436,10 @@ $wgJobClasses = array( 'uploadFromUrl' => 'UploadFromUrlJob', 'AssembleUploadChunks' => 'AssembleUploadChunksJob', 'PublishStashedFile' => 'PublishStashedFileJob', + 'ThumbnailRender' => 'ThumbnailRenderJob', + 'recentChangesUpdate' => 'RecentChangesUpdateJob', + 'refreshLinksPrioritized' => 'RefreshLinksJob', // for cascading protection + 'enqueue' => 'EnqueueJob', // local queue for multi-DC setups 'null' => 'NullJob' ); @@ -6390,7 +6482,7 @@ $wgJobTypeConf = array( * These settings should be global to all wikis. */ $wgJobQueueAggregator = array( - 'class' => 'JobQueueAggregatorMemc' + 'class' => 'JobQueueAggregatorNull' ); /** @@ -6398,8 +6490,7 @@ $wgJobQueueAggregator = array( * Expensive Querypages are already updated. */ $wgSpecialPageCacheUpdates = array( - 'Statistics' => array( 'SiteStatsUpdate', 'cacheUpdate' ), - 'Activeusers' => array( 'SpecialActiveUsers', 'cacheUpdate' ), + 'Statistics' => array( 'SiteStatsUpdate', 'cacheUpdate' ) ); /** @@ -6497,6 +6588,8 @@ $wgLogTypes = array( 'patrol', 'merge', 'suppress', + 'tag', + 'managetags', ); /** @@ -6533,7 +6626,8 @@ $wgLogRestrictions = array( * for the link text. */ $wgFilterLogTypes = array( - 'patrol' => true + 'patrol' => true, + 'tag' => true, ); /** @@ -6589,22 +6683,14 @@ $wgLogHeaders = array( * Extensions with custom log types may add to this array. */ $wgLogActions = array( - 'block/block' => 'blocklogentry', - 'block/unblock' => 'unblocklogentry', - 'block/reblock' => 'reblock-logentry', 'protect/protect' => 'protectedarticle', 'protect/modify' => 'modifiedarticleprotection', 'protect/unprotect' => 'unprotectedarticle', 'protect/move_prot' => 'movedarticleprotection', - 'import/upload' => 'import-logentry-upload', - 'import/interwiki' => 'import-logentry-interwiki', - 'merge/merge' => 'pagemerge-logentry', - 'suppress/block' => 'blocklogentry', - 'suppress/reblock' => 'reblock-logentry', ); /** - * The same as above, but here values are names of functions, + * The same as above, but here values are names of classes, * not messages. * @see LogPage::actionText * @see LogFormatter @@ -6622,9 +6708,22 @@ $wgLogActionsHandlers = array( 'patrol/patrol' => 'PatrolLogFormatter', 'rights/rights' => 'RightsLogFormatter', 'rights/autopromote' => 'RightsLogFormatter', - 'upload/upload' => 'LogFormatter', - 'upload/overwrite' => 'LogFormatter', - 'upload/revert' => 'LogFormatter', + 'upload/upload' => 'UploadLogFormatter', + 'upload/overwrite' => 'UploadLogFormatter', + 'upload/revert' => 'UploadLogFormatter', + 'merge/merge' => 'MergeLogFormatter', + 'tag/update' => 'TagLogFormatter', + 'managetags/create' => 'LogFormatter', + 'managetags/delete' => 'LogFormatter', + 'managetags/activate' => 'LogFormatter', + 'managetags/deactivate' => 'LogFormatter', + 'block/block' => 'BlockLogFormatter', + 'block/unblock' => 'BlockLogFormatter', + 'block/reblock' => 'BlockLogFormatter', + 'suppress/block' => 'BlockLogFormatter', + 'suppress/reblock' => 'BlockLogFormatter', + 'import/upload' => 'LogFormatter', + 'import/interwiki' => 'LogFormatter', ); /** @@ -6691,6 +6790,7 @@ $wgActions = array( 'credits' => true, 'delete' => true, 'edit' => true, + 'editchangetags' => 'SpecialPageAction', 'history' => true, 'info' => true, 'markpatrolled' => true, @@ -6699,7 +6799,7 @@ $wgActions = array( 'raw' => true, 'render' => true, 'revert' => true, - 'revisiondelete' => true, + 'revisiondelete' => 'SpecialPageAction', 'rollback' => true, 'submit' => true, 'unprotect' => true, @@ -6967,6 +7067,12 @@ $wgAjaxUploadDestCheck = true; $wgAjaxLicensePreview = true; /** + * Have clients send edits to be prepared when filling in edit summaries. + * This gives the server a head start on the expensive parsing operation. + */ +$wgAjaxEditStash = true; + +/** * Settings for incoming cross-site AJAX requests: * Newer browsers support cross-site AJAX when the target resource allows requests * from the origin domain by the Access-Control-Allow-Origin header. @@ -7084,6 +7190,18 @@ $wgAsyncHTTPTimeout = 25; $wgHTTPProxy = false; /** + * Local virtual hosts. + * + * This lists domains that are configured as virtual hosts on the same machine. + * If a request is to be made to a domain listed here, or any subdomain thereof, + * then no proxy will be used. + * Command-line scripts are not affected by this setting and will always use + * proxy if it is configured. + * @since 1.25 + */ +$wgLocalVirtualHosts = array(); + +/** * Timeout for connections done internally (in seconds) * Only works for curl */ @@ -7286,13 +7404,21 @@ $wgPagePropsHaveSortkey = true; $wgHttpsPort = 443; /** - * Secret and algorithm for hmac-based key derivation function (fast, + * Secret for hmac-based key derivation function (fast, * cryptographically secure random numbers). * This should be set in LocalSettings.php, otherwise wgSecretKey will * be used. + * See also: $wgHKDFAlgorithm * @since 1.24 */ $wgHKDFSecret = false; + +/** + * Algorithm for hmac-based key derivation function (fast, + * cryptographically secure random numbers). + * See also: $wgHKDFSecret + * @since 1.24 + */ $wgHKDFAlgorithm = 'sha256'; /** @@ -7312,6 +7438,34 @@ $wgPageLanguageUseDB = false; $wgUseLinkNamespaceDBFields = true; /** + * Global configuration variable for Virtual REST Services. + * Parameters for different services are to be declared inside + * $wgVirtualRestConfig['modules'], which is to be treated as an associative + * array. Global parameters will be merged with service-specific ones. The + * result will then be passed to VirtualRESTService::__construct() in the + * module. + * + * Example config for Parsoid: + * + * $wgVirtualRestConfig['modules']['parsoid'] = array( + * 'url' => 'http://localhost:8000', + * 'prefix' => 'enwiki', + * ); + * + * @var array + * @since 1.25 + */ +$wgVirtualRestConfig = array( + 'modules' => array(), + 'global' => array( + # Timeout in seconds + 'timeout' => 360, + 'forwardCookies' => false, + 'HTTPProxy' => null + ) +); + +/** * For really cool vim folding this needs to be at the end: * vim: foldmarker=@{,@} foldmethod=marker * @} |