From 4ac9fa081a7c045f6a9f1cfc529d82423f485b2e Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 8 Dec 2013 09:55:49 +0100 Subject: Update to MediaWiki 1.22.0 --- includes/DefaultSettings.php | 1309 ++++++++++++++++++++++++++++-------------- 1 file changed, 866 insertions(+), 443 deletions(-) (limited to 'includes/DefaultSettings.php') diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index a56ef849..0fc59fb2 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -63,7 +63,7 @@ $wgConf = new SiteConfiguration; * MediaWiki version number * @since 1.2 */ -$wgVersion = '1.21.3'; +$wgVersion = '1.22.0'; /** * Name of the site. It must be changed in LocalSettings.php @@ -171,14 +171,6 @@ $wgScriptExtension = '.php'; */ $wgScript = false; -/** - * The URL path to redirect.php. This is a script that is used by the Nostalgia - * skin. - * - * Defaults to "{$wgScriptPath}/redirect{$wgScriptExtension}". - */ -$wgRedirectScript = false; - /** * The URL path to load.php. * @@ -274,7 +266,6 @@ $wgAppleTouchIcon = false; * * @see wfTempDir() * @note Default changed to false in MediaWiki 1.20. - * */ $wgTmpDirectory = false; @@ -317,7 +308,9 @@ $wgActionPaths = array(); * @{ */ -/** Uploads have to be specially set up to be secure */ +/** + * Uploads have to be specially set up to be secure + */ $wgEnableUploads = false; /** @@ -325,23 +318,21 @@ $wgEnableUploads = false; */ $wgUploadStashMaxAge = 6 * 3600; // 6 hours -/** Allows to move images and other media files */ +/** + * Allows to move images and other media files + */ $wgAllowImageMoving = true; /** * Enable deferred upload tasks that use the job queue. * Only enable this if job runners are set up for both the * 'AssembleUploadChunks' and 'PublishStashedFile' job types. + * + * @note If you use suhosin, this setting is incompatible with + * suhosin.session.encrypt. */ $wgEnableAsyncUploads = false; -/** - * Allow chunked uploads. This should only really be needed if you - * use the UploadWizard extension or allow huge file uploads. - * https://www.mediawiki.org/wiki/API:Upload#Chunked_uploading - */ -$wgAllowChunkedUploads = false; - /** * These are additional characters that should be replaced with '-' in filenames */ @@ -456,7 +447,9 @@ $wgImgAuthPublicTest = true; */ $wgLocalFileRepo = false; -/** @see $wgLocalFileRepo */ +/** + * @see $wgLocalFileRepo + */ $wgForeignFileRepos = array(); /** @@ -512,11 +505,11 @@ $wgFileBackends = array(); $wgLockManagers = array(); /** - * Show EXIF data, on by default if available. - * Requires PHP's EXIF extension: http://www.php.net/manual/en/ref.exif.php + * Show Exif data, on by default if available. + * Requires PHP's Exif extension: http://www.php.net/manual/en/ref.exif.php * * @note FOR WINDOWS USERS: - * To enable EXIF functions, add the following lines to the "Windows + * To enable Exif functions, add the following lines to the "Windows * extensions" section of php.ini: * @code{.ini} * extension=extensions/php_mbstring.dll @@ -547,22 +540,36 @@ $wgUpdateCompatibleMetadata = false; */ $wgUseSharedUploads = false; -/** Full path on the web server where shared uploads can be found */ +/** + * Full path on the web server where shared uploads can be found + */ $wgSharedUploadPath = "http://commons.wikimedia.org/shared/images"; -/** Fetch commons image description pages and display them on the local wiki? */ +/** + * Fetch commons image description pages and display them on the local wiki? + */ $wgFetchCommonsDescriptions = false; -/** Path on the file system where shared uploads can be found. */ +/** + * Path on the file system where shared uploads can be found. + */ $wgSharedUploadDirectory = "/var/www/wiki3/images"; -/** DB name with metadata about shared directory. Set this to false if the uploads do not come from a wiki. */ +/** + * DB name with metadata about shared directory. + * Set this to false if the uploads do not come from a wiki. + */ $wgSharedUploadDBname = false; -/** Optional table prefix used in database. */ +/** + * Optional table prefix used in database. + */ $wgSharedUploadDBprefix = ''; -/** Cache shared metadata in memcached. Don't do this if the commons wiki is in a different memcached domain */ +/** + * Cache shared metadata in memcached. + * Don't do this if the commons wiki is in a different memcached domain + */ $wgCacheSharedUploads = true; /** @@ -598,6 +605,27 @@ $wgCopyUploadsFromSpecialUpload = false; */ $wgCopyUploadProxy = false; +/** + * Different timeout for upload by url + * This could be useful since when fetching large files, you may want a + * timeout longer than the default $wgHTTPTimeout. False means fallback + * to default. + * + * @since 1.22 + */ +$wgCopyUploadTimeout = false; + +/** + * Different timeout for upload by url when run as a background job + * This could be useful since when fetching large files via job queue, + * you may want a different timeout, especially because there is no + * http request being kept alive. + * + * false means fallback to $wgCopyUploadTimeout. + * @since 1.22 + */ +$wgCopyUploadAsyncTimeout = false; + /** * Max size for uploads, in bytes. If not set to an array, applies to all * uploads. If set to an array, per upload type maximums can be set, using the @@ -613,7 +641,6 @@ $wgCopyUploadProxy = false; * @endcode * Sets the maximum for all uploads to 250 kB except for upload-by-url, which * will have a maximum of 500 kB. - * */ $wgMaxUploadSize = 1024 * 1024 * 100; # 100MB @@ -648,6 +675,7 @@ $wgUploadMissingFileUrl = false; * @endcode */ $wgThumbnailScriptPath = false; + /** * @see $wgThumbnailScriptPath */ @@ -699,7 +727,7 @@ $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' ); * Files with these extensions will never be allowed as uploads. * An array of file extensions to blacklist. You should append to this array * if you want to blacklist additional files. - * */ + */ $wgFileBlacklist = array( # HTML may contain cookie-stealing JavaScript and web bugs 'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht', @@ -826,15 +854,25 @@ $wgContentHandlers = array( * Use Image Magick instead of PHP builtin functions. */ $wgUseImageMagick = false; -/** The convert command shipped with ImageMagick */ + +/** + * The convert command shipped with ImageMagick + */ $wgImageMagickConvertCommand = '/usr/bin/convert'; -/** The identify command shipped with ImageMagick */ + +/** + * The identify command shipped with ImageMagick + */ $wgImageMagickIdentifyCommand = '/usr/bin/identify'; -/** Sharpening parameter to ImageMagick */ +/** + * Sharpening parameter to ImageMagick + */ $wgSharpenParameter = '0x0.4'; -/** Reduction in linear dimensions below which sharpening will be enabled */ +/** + * Reduction in linear dimensions below which sharpening will be enabled + */ $wgSharpenReductionThreshold = 0.85; /** @@ -857,15 +895,15 @@ $wgImageMagickTempDir = false; */ $wgCustomConvertCommand = false; -/** used for lossless jpeg rotation +/** + * used for lossless jpeg rotation * * @since 1.21 - * **/ + */ $wgJpegTran = '/usr/bin/jpegtran'; - /** - * Some tests and extensions use exiv2 to manipulate the EXIF metadata in some + * Some tests and extensions use exiv2 to manipulate the Exif metadata in some * image formats. */ $wgExiv2Command = '/usr/bin/exiv2'; @@ -889,16 +927,23 @@ $wgSVGConverters = array( 'ImagickExt' => array( 'SvgHandler::rasterizeImagickExt' ), ); -/** Pick a converter defined in $wgSVGConverters */ +/** + * Pick a converter defined in $wgSVGConverters + */ $wgSVGConverter = 'ImageMagick'; -/** If not in the executable PATH, specify the SVG converter path. */ +/** + * If not in the executable PATH, specify the SVG converter path. + */ $wgSVGConverterPath = ''; -/** Don't scale a SVG larger than this */ +/** + * Don't scale a SVG larger than this + */ $wgSVGMaxSize = 2048; -/** Don't read SVG metadata beyond this point. +/** + * Don't read SVG metadata beyond this point. * Default is 1024*256 bytes */ $wgSVGMetadataCutoff = 262144; @@ -930,6 +975,7 @@ $wgAllowTitlesInSVG = false; * 12.5 million pixels or 3500x3500. */ $wgMaxImageArea = 1.25e7; + /** * Force thumbnailing of animated GIFs above this size to a single * frame instead of an animated thumbnail. As of MW 1.17 this limit @@ -937,6 +983,7 @@ $wgMaxImageArea = 1.25e7; * It probably makes sense to keep this equal to $wgMaxImageArea. */ $wgMaxAnimatedGifArea = 1.25e7; + /** * Browsers don't support TIFF inline generally... * For inline display, we need to convert to PNG or JPEG. @@ -987,7 +1034,9 @@ $wgGenerateThumbnailOnParse = true; */ $wgShowArchiveThumbnails = true; -/** Obsolete, always true, kept for compatibility with extensions */ +/** + * Obsolete, always true, kept for compatibility with extensions + */ $wgUseImageResize = true; /** @@ -1053,29 +1102,31 @@ $wgAntivirusSetup = array( ), ); -/** Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected. */ +/** + * Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected. + */ $wgAntivirusRequired = true; -/** Determines if the mime type of uploaded files should be checked */ +/** + * Determines if the mime type of uploaded files should be checked + */ $wgVerifyMimeType = true; -/** Sets the mime type definition file to use by MimeMagic.php. */ +/** + * Sets the mime type definition file to use by MimeMagic.php. + * Set to null, to use built-in defaults only. + * example: $wgMimeTypeFile = '/etc/mime.types'; + */ $wgMimeTypeFile = 'includes/mime.types'; -#$wgMimeTypeFile = '/etc/mime.types'; -#$wgMimeTypeFile = null; #use built-in defaults only. - -/** Sets the mime type info file to use by MimeMagic.php. */ -$wgMimeInfoFile = 'includes/mime.info'; -#$wgMimeInfoFile = null; #use built-in defaults only. /** - * Switch for loading the FileInfo extension by PECL at runtime. - * This should be used only if fileinfo is installed as a shared object - * or a dynamic library. + * Sets the mime type info file to use by MimeMagic.php. + * Set to null, to use built-in defaults only. */ -$wgLoadFileinfoExtension = false; +$wgMimeInfoFile = 'includes/mime.info'; -/** Sets an external mime detector program. The command must print only +/** + * Sets an external mime detector program. The command must print only * the mime type to standard output. * The name of the file to process will be appended to the command given here. * If not set or NULL, mime_content_type will be used if available. @@ -1145,6 +1196,7 @@ $wgGalleryOptions = array( 'imageHeight' => 120, // Height of the cells containing images in galleries (in "px") 'captionLength' => 25, // Length of caption to truncate (in characters) 'showBytes' => true, // Show the filesize in bytes in categories + 'mode' => 'traditional', ); /** @@ -1173,25 +1225,26 @@ $wgResponsiveImages = true; * @name DJVU settings * @{ */ + /** * Path of the djvudump executable * Enable this and $wgDjvuRenderer to enable djvu rendering + * example: $wgDjvuDump = 'djvudump'; */ -# $wgDjvuDump = 'djvudump'; $wgDjvuDump = null; /** * Path of the ddjvu DJVU renderer * Enable this and $wgDjvuDump to enable djvu rendering + * example: $wgDjvuRenderer = 'ddjvu'; */ -# $wgDjvuRenderer = 'ddjvu'; $wgDjvuRenderer = null; /** * Path of the djvutxt DJVU text extraction utility * Enable this and $wgDjvuDump to enable text layer extraction from djvu files + * example: $wgDjvuTxt = 'djvutxt'; */ -# $wgDjvuTxt = 'djvutxt'; $wgDjvuTxt = null; /** @@ -1216,10 +1269,12 @@ $wgDjvuToXML = null; * Set this to false to output the ppm file directly. */ $wgDjvuPostProcessor = 'pnmtojpeg'; + /** * File extension for the DJVU post processor output */ $wgDjvuOutputExtension = 'jpg'; + /** @} */ # end of DJvu } /** @} */ # end of file uploads } @@ -1334,7 +1389,8 @@ $wgAllowHTMLEmail = false; $wgEnotifFromEditor = false; // TODO move UPO to preferences probably ? -# If set to true, users get a corresponding option in their preferences and can choose to enable or disable at their discretion +# If set to true, users get a corresponding option in their preferences and can choose to +# enable or disable at their discretion # If set to false, the corresponding input form on the user preference page is suppressed # It call this to be a "user-preferences-option (UPO)" @@ -1400,33 +1456,61 @@ $wgEnotifUseRealName = false; */ $wgUsersNotifiedOnAllChanges = array(); - /** @} */ # end of email settings /************************************************************************//** * @name Database settings * @{ */ -/** Database host name or IP address */ + +/** + * Database host name or IP address + */ $wgDBserver = 'localhost'; -/** Database port number (for PostgreSQL) */ + +/** + * Database port number (for PostgreSQL) + */ $wgDBport = 5432; -/** Name of the database */ + +/** + * Name of the database + */ $wgDBname = 'my_wiki'; -/** Database username */ + +/** + * Database username + */ $wgDBuser = 'wikiuser'; -/** Database user's password */ + +/** + * Database user's password + */ $wgDBpassword = ''; -/** Database type */ + +/** + * Database type + */ $wgDBtype = 'mysql'; -/** Whether to use SSL in DB connection. */ + +/** + * Whether to use SSL in DB connection. + */ $wgDBssl = false; -/** Whether to use compression in DB connection. */ + +/** + * Whether to use compression in DB connection. + */ $wgDBcompress = false; -/** Separate username for maintenance tasks. Leave as null to use the default. */ +/** + * Separate username for maintenance tasks. Leave as null to use the default. + */ $wgDBadminuser = null; -/** Separate password for maintenance tasks. Leave as null to use the default. */ + +/** + * Separate password for maintenance tasks. Leave as null to use the default. + */ $wgDBadminpassword = null; /** @@ -1437,9 +1521,23 @@ $wgDBadminpassword = null; */ $wgSearchType = null; -/** Table name prefix */ +/** + * Alternative search types + * Sometimes you want to support multiple search engines for testing. This + * allows users to select their search engine of choice via url parameters + * to Special:Search and the action=search API. If using this, there's no + * need to add $wgSearchType to it, that is handled automatically. + */ +$wgSearchTypeAlternatives = null; + +/** + * Table name prefix + */ $wgDBprefix = ''; -/** MySQL table options to use during installation or update */ + +/** + * MySQL table options to use during installation or update + */ $wgDBTableOptions = 'ENGINE=InnoDB'; /** @@ -1450,10 +1548,14 @@ $wgDBTableOptions = 'ENGINE=InnoDB'; */ $wgSQLMode = ''; -/** Mediawiki schema */ +/** + * Mediawiki schema + */ $wgDBmwschema = 'mediawiki'; -/** To override default SQLite data directory ($docroot/../data) */ +/** + * To override default SQLite data directory ($docroot/../data) + */ $wgSQLiteDataDir = ''; /** @@ -1487,9 +1589,14 @@ $wgAllDBsAreLocalhost = false; */ $wgSharedDB = null; -/** @see $wgSharedDB */ +/** + * @see $wgSharedDB + */ $wgSharedPrefix = false; -/** @see $wgSharedDB */ + +/** + * @see $wgSharedDB + */ $wgSharedTables = array( 'user', 'user_properties' ); /** @@ -1509,11 +1616,11 @@ $wgSharedTables = array( 'user', 'user_properties' ); * - DBO_DEFAULT -- turns on DBO_TRX only if !$wgCommandLineMode (recommended) * - DBO_DEBUG -- equivalent of $wgDebugDumpSql * - DBO_TRX -- wrap entire request in a transaction - * - DBO_IGNORE -- ignore errors (not useful in LocalSettings.php) * - DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php) * - DBO_PERSISTENT -- enables persistent database connections * - DBO_SSL -- uses SSL/TLS encryption in database connections, if available - * - DBO_COMPRESS -- uses internal compression in database connections, if available + * - DBO_COMPRESS -- uses internal compression in database connections, + * if available * * - max lag: (optional) Maximum replication lag before a slave will taken out of rotation * - max threads: (optional) Maximum number of running threads @@ -1552,10 +1659,14 @@ $wgDBservers = false; */ $wgLBFactoryConf = array( 'class' => 'LBFactory_Simple' ); -/** How long to wait for a slave to catch up to the master */ +/** + * How long to wait for a slave to catch up to the master + */ $wgMasterWaitTimeout = 10; -/** File to log database errors to */ +/** + * File to log database errors to + */ $wgDBerrorLog = false; /** @@ -1578,7 +1689,9 @@ $wgDBerrorLog = false; */ $wgDBerrorLogTZ = false; -/** When to give an error message */ +/** + * When to give an error message + */ $wgDBClusterTimeout = 10; /** @@ -1606,6 +1719,35 @@ $wgDBAvgStatusPoll = 2000; */ $wgDBmysql5 = false; +/** + * Set true to enable Oracle DCRP (supported from 11gR1 onward) + * + * To use this feature set to true and use a datasource defined as + * POOLED (i.e. in tnsnames definition set server=pooled in connect_data + * block). + * + * Starting from 11gR1 you can use DCRP (Database Resident Connection + * Pool) that maintains established sessions and reuses them on new + * connections. + * + * Not completely tested, but it should fall back on normal connection + * in case the pool is full or the datasource is not configured as + * pooled. + * And the other way around; using oci_pconnect on a non pooled + * datasource should produce a normal connection. + * + * When it comes to frequent shortlived DB connections like with MW + * Oracle tends to s***. The problem is the driver connects to the + * database reasonably fast, but establishing a session takes time and + * resources. MW does not rely on session state (as it does not use + * features such as package variables) so establishing a valid session + * is in this case an unwanted overhead that just slows things down. + * + * @warning EXPERIMENTAL! + * + */ +$wgDBOracleDRCP = false; + /** * Other wikis on this site, can be administered from a single developer * account. @@ -1619,13 +1761,11 @@ $wgLocalDatabases = array(); * show a more obvious warning. */ $wgSlaveLagWarning = 10; -/** @see $wgSlaveLagWarning */ -$wgSlaveLagCritical = 30; /** - * Use old names for change_tags indices. + * @see $wgSlaveLagWarning */ -$wgOldChangeTagsIndex = false; +$wgSlaveLagCritical = 30; /**@}*/ # End of DB settings } @@ -1637,8 +1777,8 @@ $wgOldChangeTagsIndex = false; /** * We can also compress text stored in the 'text' table. If this is set on, new * revisions will be compressed on page save if zlib support is available. Any - * compressed revisions will be decompressed on load regardless of this setting - * *but will not be readable at all* if zlib support is not available. + * compressed revisions will be decompressed on load regardless of this setting, + * but will not be readable at all* if zlib support is not available. */ $wgCompressRevisions = false; @@ -1701,23 +1841,36 @@ $wgRevisionCacheExpiry = 0; * @name Performance hacks and limits * @{ */ -/** Disable database-intensive features */ + +/** + * Disable database-intensive features + */ $wgMiserMode = false; -/** Disable all query pages if miser mode is on, not just some */ + +/** + * Disable all query pages if miser mode is on, not just some + */ $wgDisableQueryPages = false; -/** Number of rows to cache in 'querycache' table when miser mode is on */ + +/** + * Number of rows to cache in 'querycache' table when miser mode is on + */ $wgQueryCacheLimit = 1000; -/** Number of links to a page required before it is deemed "wanted" */ + +/** + * Number of links to a page required before it is deemed "wanted" + */ $wgWantedPagesThreshold = 1; -/** Enable slow parser functions */ + +/** + * Enable slow parser functions + */ $wgAllowSlowParserFunctions = false; -/** Allow schema updates */ -$wgAllowSchemaUpdates = true; /** - * Do DELETE/INSERT for link updates instead of incremental + * Allow schema updates */ -$wgUseDumbLinkUpdate = false; +$wgAllowSchemaUpdates = true; /** * Anti-lock flags - bitfield @@ -1886,11 +2039,15 @@ $wgObjectCacheSessionExpiry = 3600; */ $wgSessionHandler = null; -/** If enabled, will send MemCached debugging information to $wgDebugLogFile */ +/** + * If enabled, will send MemCached debugging information to $wgDebugLogFile + */ $wgMemCachedDebug = false; -/** The list of MemCached servers and port numbers */ -$wgMemCachedServers = array( '127.0.0.1:11000' ); +/** + * The list of MemCached servers and port numbers + */ +$wgMemCachedServers = array( '127.0.0.1:11211' ); /** * Use persistent connections to MemCached, which are shared across multiple @@ -1909,13 +2066,6 @@ $wgMemCachedTimeout = 500000; */ $wgUseLocalMessageCache = false; -/** - * Defines format of local cache. - * - true: Serialized object - * - false: PHP source file (Warning - security risk) - */ -$wgLocalMessageCacheSerialized = true; - /** * Instead of caching everything, only cache those messages which have * been customised in the site content language. This means that @@ -1952,7 +2102,9 @@ $wgLocalisationCacheConf = array( 'manualRecache' => false, ); -/** Allow client-side caching of pages */ +/** + * Allow client-side caching of pages + */ $wgCachePages = true; /** @@ -2038,7 +2190,8 @@ $wgUseGzip = false; */ $wgUseETag = false; -/** Clock skew or the one-second resolution of time() can occasionally cause cache +/** + * Clock skew or the one-second resolution of time() can occasionally cause cache * problems when the user requests two pages within a short period of time. This * variable adds a given number of seconds to vulnerable timestamps, thereby giving * a grace period. @@ -2077,13 +2230,18 @@ $wgInvalidateCacheOnLocalSettingsChange = true; */ $wgUseSquid = false; -/** If you run Squid3 with ESI support, enable this (default:false): */ +/** + * If you run Squid3 with ESI support, enable this (default:false): + */ $wgUseESI = false; -/** Send X-Vary-Options header for better caching (requires patched Squid) */ +/** + * Send X-Vary-Options header for better caching (requires patched Squid) + */ $wgUseXVO = false; -/** Add X-Forwarded-Proto to the Vary and X-Vary-Options headers for API +/** + * Add X-Forwarded-Proto to the Vary and X-Vary-Options headers for API * requests and RSS/Atom feeds. Use this if you have an SSL termination setup * and need to split the cache between HTTP and HTTPS for API requests, * feed requests and HTTP redirect responses in order to prevent cache @@ -2131,7 +2289,9 @@ $wgSquidServers = array(); */ $wgSquidServersNoPurge = array(); -/** Maximum number of titles to purge in any one client operation */ +/** + * Maximum number of titles to purge in any one client operation + */ $wgMaxSquidPurgeTitles = 400; /** @@ -2163,12 +2323,12 @@ $wgSquidPurgeUseHostHeader = true; * Each key in this array is a regular expression to match against the purged * URL, or an empty string to match all URLs. The purged URL is matched against * the regexes in the order specified, and the first rule whose regex matches - * is used. + * is used, all remaining rules will thus be ignored. * - * Example configuration to send purges for upload.wikimedia.org to one + * @par Example configuration to send purges for upload.wikimedia.org to one * multicast group and all other purges to another: * @code - * $wgHTCPMulticastRouting = array( + * $wgHTCPRouting = array( * '|^https?://upload\.wikimedia\.org|' => array( * 'host' => '239.128.0.113', * 'port' => 4827, @@ -2180,11 +2340,44 @@ $wgSquidPurgeUseHostHeader = true; * ); * @endcode * - * @since 1.20 + * You can also pass an array of hosts to send purges too. This is useful when + * you have several multicast groups or unicast address that should receive a + * given purge. Multiple hosts support was introduced in MediaWiki 1.22. + * + * @par Example of sending purges to multiple hosts: + * @code + * $wgHTCPRouting = array( + * '' => array( + * // Purges to text caches using multicast + * array( 'host' => '239.128.0.114', 'port' => '4827' ), + * // Purges to a hardcoded list of caches + * array( 'host' => '10.88.66.1', 'port' => '4827' ), + * array( 'host' => '10.88.66.2', 'port' => '4827' ), + * array( 'host' => '10.88.66.3', 'port' => '4827' ), + * ), + * ); + * @endcode + * + * @since 1.22 + * + * $wgHTCPRouting replaces $wgHTCPMulticastRouting that was introduced in 1.20. + * For back compatibility purposes, whenever its array is empty + * $wgHTCPMutlicastRouting will be used as a fallback if it not null. * * @see $wgHTCPMulticastTTL */ -$wgHTCPMulticastRouting = array(); +$wgHTCPRouting = array(); + +/** + * @deprecated since 1.22, please use $wgHTCPRouting instead. + * + * Whenever this is set and $wgHTCPRouting evaluates to false, $wgHTCPRouting + * will be set to this value. + * This is merely for back compatibility. + * + * @since 1.20 + */ +$wgHTCPMulticastRouting = null; /** * HTCP multicast address. Set this to a multicast IP address to enable HTCP. @@ -2192,29 +2385,34 @@ $wgHTCPMulticastRouting = array(); * Note that MediaWiki uses the old non-RFC compliant HTCP format, which was * present in the earliest Squid implementations of the protocol. * - * This setting is DEPRECATED in favor of $wgHTCPMulticastRouting , and kept - * for backwards compatibility only. If $wgHTCPMulticastRouting is set, this - * setting is ignored. If $wgHTCPMulticastRouting is not set and this setting - * is, it is used to populate $wgHTCPMulticastRouting. + * This setting is DEPRECATED in favor of $wgHTCPRouting , and kept for + * backwards compatibility only. If $wgHTCPRouting is set, this setting is + * ignored. If $wgHTCPRouting is not set and this setting is, it is used to + * populate $wgHTCPRouting. * - * @deprecated since 1.20 in favor of $wgHTCPMulticastRouting + * @deprecated since 1.20 in favor of $wgHTCPMulticastRouting and since 1.22 in + * favor of $wgHTCPRouting. */ $wgHTCPMulticastAddress = false; /** * HTCP multicast port. - * @deprecated since 1.20 in favor of $wgHTCPMulticastRouting + * @deprecated since 1.20 in favor of $wgHTCPMulticastRouting and since 1.22 in + * favor of $wgHTCPRouting. + * * @see $wgHTCPMulticastAddress */ $wgHTCPPort = 4827; /** * HTCP multicast TTL. - * @see $wgHTCPMulticastRouting + * @see $wgHTCPRouting */ $wgHTCPMulticastTTL = 1; -/** Should forwarded Private IPs be accepted? */ +/** + * Should forwarded Private IPs be accepted? + */ $wgUsePrivateIPs = false; /** @} */ # end of HTTP proxy settings @@ -2258,13 +2456,19 @@ $wgLangObjCacheSize = 10; */ $wgGrammarForms = array(); -/** Treat language links as magic connectors, not inline links */ +/** + * Treat language links as magic connectors, not inline links + */ $wgInterwikiMagic = true; -/** Hide interlanguage links from the sidebar */ +/** + * Hide interlanguage links from the sidebar + */ $wgHideInterlanguageLinks = false; -/** List of language names or overrides for default names in Names.php */ +/** + * List of language names or overrides for default names in Names.php + */ $wgExtraLanguageNames = array(); /** @@ -2364,7 +2568,8 @@ $wgBrowserBlackList = array( '/^Mozilla\/4\.[^ ]+ [^(]*?\((?!compatible).*; [UIN]/', /** - * MSIE on Mac OS 9 is teh sux0r, converts þ to , ð to , Þ to and Ð to + * MSIE on Mac OS 9 is teh sux0r, converts þ to , ð to , + * Þ to and Ð to * * Known useragents: * - Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC) @@ -2372,7 +2577,7 @@ $wgBrowserBlackList = array( * - Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC) * - [...] * - * @link http://en.wikipedia.org/w/index.php?title=User%3A%C6var_Arnfj%F6r%F0_Bjarmason%2Ftestme&diff=12356041&oldid=12355864 + * @link http://en.wikipedia.org/w/index.php?diff=12356041&oldid=12355864 * @link http://en.wikipedia.org/wiki/Template%3AOS9 */ '/^Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/', @@ -2403,6 +2608,7 @@ $wgLegacySchemaConversion = false; * the interface is set to English. */ $wgAmericanDates = false; + /** * For Hindi and Arabic use local numerals instead of Western style (0-9) * numerals in interface. @@ -2425,16 +2631,24 @@ $wgMsgCacheExpiry = 86400; */ $wgMaxMsgCacheEntrySize = 10000; -/** Whether to enable language variant conversion. */ +/** + * Whether to enable language variant conversion. + */ $wgDisableLangConversion = false; -/** Whether to enable language variant conversion for links. */ +/** + * Whether to enable language variant conversion for links. + */ $wgDisableTitleConversion = false; -/** Whether to enable canonical language links in meta data. */ +/** + * Whether to enable canonical language links in meta data. + */ $wgCanonicalLanguageLinks = true; -/** Default variant code, if false, the default will be the language code */ +/** + * Default variant code, if false, the default will be the language code + */ $wgDefaultLanguageVariant = false; /** @@ -2538,52 +2752,44 @@ $wgLocalTZoffset = null; * @{ */ -/** The default Content-Type header. */ -$wgMimeType = 'text/html'; - -/** - * The content type used in script tags. This is mostly going to be ignored if - * $wgHtml5 is true, at least for actual HTML output, since HTML5 doesn't - * require a MIME type for JavaScript or CSS (those are the default script and - * style languages). - */ -$wgJsMimeType = 'text/javascript'; - /** - * The HTML document type. Ignored if $wgHtml5 is true, since - * doesn't actually have a doctype part to put this variable's contents in. + * The default Content-Type header. */ -$wgDocType = '-//W3C//DTD XHTML 1.0 Transitional//EN'; +$wgMimeType = 'text/html'; /** - * The URL of the document type declaration. Ignored if $wgHtml5 is true, - * since HTML5 has no DTD, and doesn't actually have a DTD part - * to put this variable's contents in. + * Previously used as content type in HTML script tags. This is now ignored since + * HTML5 doesn't require a MIME type for script tags (javascript is the default). + * It was also previously used by RawAction to determine the ctype query parameter + * value that will result in a javascript response. + * @deprecated since 1.22 */ -$wgDTD = 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'; +$wgJsMimeType = null; /** - * The default xmlns attribute. Ignored if $wgHtml5 is true (or it's supposed - * to be), since we don't currently support XHTML5, and in HTML5 (i.e., served - * as text/html) the attribute has no effect, so why bother? + * The default xmlns attribute. The option to define this has been removed. + * The value of this variable is no longer used by core and is set to a fixed + * value in Setup.php for compatibility with extensions that depend on the value + * of this variable being set. Such a dependency however is deprecated. + * @deprecated since 1.22 */ -$wgXhtmlDefaultNamespace = 'http://www.w3.org/1999/xhtml'; +$wgXhtmlDefaultNamespace = null; /** - * Should we output an HTML5 doctype? If false, use XHTML 1.0 Transitional - * instead, and disable HTML5 features. This may eventually be removed and set - * to always true. If it's true, a number of other settings will be irrelevant - * and have no effect. + * Previously used to determine if we should output an HTML5 doctype. + * This is no longer used as we always output HTML5 now. For compatibility with + * extensions that still check the value of this config it's value is now forced + * to true by Setup.php. + * @deprecated since 1.22 */ $wgHtml5 = true; /** * Defines the value of the version attribute in the <html> tag, if any. - * This is ignored if $wgHtml5 is false. If $wgAllowRdfaAttributes and - * $wgHtml5 are both true, and this evaluates to boolean false (like if it's - * left at the default null value), it will be auto-initialized to the correct - * value for RDFa+HTML5. As such, you should have no reason to ever actually - * set this to anything. + * If $wgAllowRdfaAttributes is true, and this evaluates to boolean false + * (like if it's left at the default null value), it will be auto-initialized + * to the correct value for RDFa+HTML5. As such, you should have no reason to + * ever actually set this to anything. */ $wgHtml5Version = null; @@ -2594,7 +2800,7 @@ $wgHtml5Version = null; $wgAllowRdfaAttributes = false; /** - * Enabled HTML5 microdata attributes for use in wikitext, if $wgHtml5 is also true. + * Enabled HTML5 microdata attributes for use in wikitext. */ $wgAllowMicrodataAttributes = false; @@ -2628,8 +2834,7 @@ $wgWellFormedXml = true; * Normally we wouldn't have to define this in the root "" * element, but IE needs it there in some circumstances. * - * This is ignored if $wgHtml5 is true, for the same reason as - * $wgXhtmlDefaultNamespace. + * This is ignored if $wgMimeType is set to a non-XML mimetype. */ $wgXhtmlNamespaces = array(); @@ -2679,34 +2884,11 @@ $wgDefaultSkin = 'vector'; * remove from the .../skins/ directory */ $wgSkipSkin = ''; -/** Array for more like $wgSkipSkin. */ -$wgSkipSkins = array(); /** - * Optionally, we can specify a stylesheet to use for media="handheld". - * This is recognized by some, but not all, handheld/mobile/PDA browsers. - * If left empty, compliant handheld browsers won't pick up the skin - * stylesheet, which is specified for 'screen' media. - * - * Can be a complete URL, base-relative path, or $wgStylePath-relative path. - * Try 'chick/main.css' to apply the Chick styles to the MonoBook HTML. - * - * Will also be switched in when 'handheld=yes' is added to the URL, like - * the 'printable=yes' mode for print media. + * Array for more like $wgSkipSkin. */ -$wgHandheldStyle = false; - -/** - * If set, 'screen' and 'handheld' media specifiers for stylesheets are - * transformed such that they apply to the iPhone/iPod Touch Mobile Safari, - * which doesn't recognize 'handheld' but does support media queries on its - * screen size. - * - * Consider only using this if you have a *really good* handheld stylesheet, - * as iPhone users won't have any way to disable it and use the "grown-up" - * styles instead. - */ -$wgHandheldForIPhone = false; +$wgSkipSkins = array(); /** * Allow user Javascript page? @@ -2729,10 +2911,14 @@ $wgAllowUserCss = false; */ $wgAllowUserCssPrefs = true; -/** Use the site's Javascript page? */ +/** + * Use the site's Javascript page? + */ $wgUseSiteJs = true; -/** Use the site's Cascading Style Sheets (CSS)? */ +/** + * Use the site's Cascading Style Sheets (CSS)? + */ $wgUseSiteCss = true; /** @@ -2771,7 +2957,6 @@ $wgEditPageFrameOptions = 'DENY'; * - 'SAMEORIGIN': Allow framing by pages on the same domain. * - false: Allow all framing. */ - $wgApiFrameOptions = 'DENY'; /** @@ -2807,9 +2992,10 @@ $wgExperimentalHtmlIds = false; * The value should be either a string or an array. If it is a string it will be output * directly as html, however some skins may choose to ignore it. An array is the preferred format * for the icon, the following keys are used: - * - src: An absolute url to the image to use for the icon, this is recommended + * - 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 - * - url: The url to use in the a element around the text or icon, if not set an a element will not be outputted + * - 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 * skins like Modern or if src is not set, and will otherwise be used as * the alt="" for the image. This key is required. @@ -2851,7 +3037,7 @@ $wgVectorUseSimpleSearch = true; * - true = use an icon watch/unwatch button * - false = use watch/unwatch text link */ -$wgVectorUseIconWatch = false; +$wgVectorUseIconWatch = true; /** * Display user edit counts in various prominent places. @@ -3052,8 +3238,10 @@ $wgLegacyJavaScriptGlobals = true; * * If set to a negative number, ResourceLoader will assume there is no query * string length limit. + * + * Defaults to a value based on php configuration. */ -$wgResourceLoaderMaxQueryLength = -1; +$wgResourceLoaderMaxQueryLength = false; /** * If set to true, JavaScript modules loaded from wiki pages will be parsed @@ -3081,6 +3269,59 @@ $wgResourceLoaderValidateStaticJS = false; */ $wgResourceLoaderExperimentalAsyncLoading = false; +/** + * Global LESS variables. An associative array binding variable names to CSS + * string values. + * + * Because the hashed contents of this array are used to construct the cache key + * that ResourceLoader uses to look up LESS compilation results, updating this + * array can be used to deliberately invalidate the set of cached results. + * + * @par Example: + * @code + * $wgResourceLoaderLESSVars = array( + * 'baseFontSize' => '1em', + * 'smallFontSize' => '0.75em', + * 'WikimediaBlue' => '#006699', + * ); + * @endcode + * @since 1.22 + */ +$wgResourceLoaderLESSVars = array(); + +/** + * Custom LESS functions. An associative array mapping function name to PHP + * callable. + * + * Changes to LESS functions do not trigger cache invalidation. If you update + * the behavior of a LESS function and need to invalidate stale compilation + * results, you can touch one of values in $wgResourceLoaderLESSVars, as + * documented above. + * + * @since 1.22 + */ +$wgResourceLoaderLESSFunctions = array( + 'embeddable' => 'ResourceLoaderLESSFunctions::embeddable', + 'embed' => 'ResourceLoaderLESSFunctions::embed', +); + +/** + * Default import paths for LESS modules. LESS files referenced in @import + * statements will be looked up here first, and relative to the importing file + * second. To avoid collisions, it's important for the LESS files in these + * directories to have a common, predictable file name prefix. + * + * Extensions need not (and should not) register paths in + * $wgResourceLoaderLESSImportPaths. The import path includes the path of the + * currently compiling LESS file, which allows each extension to freely import + * files from its own tree. + * + * @since 1.22 + */ +$wgResourceLoaderLESSImportPaths = array( + "$IP/resources/mediawiki.less/", +); + /** @} */ # End of resource loader settings } /*************************************************************************//** @@ -3167,7 +3408,8 @@ $wgNamespaceAliases = array(); * - []{}|# Are needed for link syntax, never enable these * - <> Causes problems with HTML escaping, don't use * - % Enabled by default, minor problems with path to query rewrite rules, see below - * - + Enabled by default, but doesn't work with path to query rewrite rules, corrupted by apache + * - + Enabled by default, but doesn't work with path to query rewrite rules, + * corrupted by apache * - ? Enabled by default, but doesn't work with path to PATH_INFO rewrites * * All three of these punctuation problems can be avoided by using an alias, @@ -3201,6 +3443,7 @@ $wgInterwikiExpiry = 10800; * @name Interwiki caching settings. * @{ */ + /** *$wgInterwikiCache specifies path to constant database file. * @@ -3215,6 +3458,7 @@ $wgInterwikiExpiry = 10800; * data layout. */ $wgInterwikiCache = false; + /** * Specify number of domains to check for messages. * - 1: Just wiki(db)-level @@ -3222,10 +3466,12 @@ $wgInterwikiCache = false; * - 3: site levels */ $wgInterwikiScopes = 3; + /** - * $wgInterwikiFallbackSite - if unable to resolve from cache + * Fallback site, if unable to resolve from cache */ $wgInterwikiFallbackSite = 'wiki'; + /** @} */ # end of Interwiki caching settings. /** @@ -3270,7 +3516,8 @@ $wgCapitalLinks = true; */ $wgCapitalLinkOverrides = array(); -/** Which namespaces should support subpages? +/** + * Which namespaces should support subpages? * See Language.php for a list of namespaces. */ $wgNamespacesWithSubpages = array( @@ -3313,7 +3560,7 @@ $wgMaxRedirects = 1; * As of now, this only checks special pages. Redirects to pages in * other namespaces cannot be invalidated by this variable. */ -$wgInvalidRedirectTargets = array( 'Filepath', 'Mypage', 'Mytalk' ); +$wgInvalidRedirectTargets = array( 'Filepath', 'Mypage', 'Mytalk', 'Redirect' ); /** @} */ # End of title and interwiki settings } @@ -3349,7 +3596,9 @@ $wgParserConf = array( #'preprocessorClass' => 'Preprocessor_Hash', ); -/** Maximum indent level of toc. */ +/** + * Maximum indent level of toc. + */ $wgMaxTocLevel = 999; /** @@ -3377,25 +3626,41 @@ $wgMaxGeneratedPPNodeCount = 1000000; */ $wgMaxTemplateDepth = 40; -/** @see $wgMaxTemplateDepth */ +/** + * @see $wgMaxTemplateDepth + */ $wgMaxPPExpandDepth = 40; -/** The external URL protocols */ +/** + * The external URL protocols + */ $wgUrlProtocols = array( 'http://', 'https://', 'ftp://', + 'ftps://', // If we allow ftp:// we should allow the secure version. + 'ssh://', + 'sftp://', // SFTP > FTP 'irc://', 'ircs://', // @bug 28503 + 'xmpp:', // Another open communication protocol + 'sip:', + 'sips:', 'gopher://', 'telnet://', // Well if we're going to support the above.. -ævar 'nntp://', // @bug 3808 RFC 1738 'worldwind://', 'mailto:', + 'tel:', // If we can make emails linkable, why not phone numbers? + 'sms:', // Likewise this is standardized too 'news:', 'svn://', 'git://', 'mms://', + 'bitcoin:', // Even registerProtocolHandler whitelists this along with mailto: + 'magnet:', // No reason to reject torrents over magnet: when they're allowed over http:// + 'urn:', // Allow URNs to be used in Microdata/RDFa s + 'geo:', // urls define geo locations, they're useful in Microdata/RDFa and for coordinates '//', // for protocol-relative URLs ); @@ -3404,7 +3669,9 @@ $wgUrlProtocols = array( */ $wgCleanSignatures = true; -/** Whether to allow inline image pointing to other websites */ +/** + * Whether to allow inline image pointing to other websites + */ $wgAllowExternalImages = false; /** @@ -3421,7 +3688,8 @@ $wgAllowExternalImages = false; */ $wgAllowExternalImagesFrom = ''; -/** If $wgAllowExternalImages is false, you can allow an on-wiki +/** + * If $wgAllowExternalImages is false, you can allow an on-wiki * whitelist of regular expression fragments to match the image URL * against. If the image matches one of the regular expression fragments, * The image will be displayed. @@ -3457,15 +3725,30 @@ $wgAllowImageTag = false; * 'extension=tidy.so' to php.ini. */ $wgUseTidy = false; -/** @see $wgUseTidy */ + +/** + * @see $wgUseTidy + */ $wgAlwaysUseTidy = false; -/** @see $wgUseTidy */ + +/** + * @see $wgUseTidy + */ $wgTidyBin = 'tidy'; -/** @see $wgUseTidy */ + +/** + * @see $wgUseTidy + */ $wgTidyConf = $IP . '/includes/tidy.conf'; -/** @see $wgUseTidy */ + +/** + * @see $wgUseTidy + */ $wgTidyOpts = ''; -/** @see $wgUseTidy */ + +/** + * @see $wgUseTidy + */ $wgTidyInternal = extension_loaded( 'tidy' ); /** @@ -3474,7 +3757,8 @@ $wgTidyInternal = extension_loaded( 'tidy' ); */ $wgDebugTidy = false; -/** Allow raw, unchecked HTML in "..." sections. +/** + * Allow raw, unchecked HTML in "..." sections. * THIS IS VERY DANGEROUS on a publicly editable site, so USE wgGroupPermissions * TO RESTRICT EDITING to only those that you trust */ @@ -3518,8 +3802,9 @@ $wgNoFollowDomainExceptions = array(); $wgAllowDisplayTitle = true; /** - * For consistency, restrict DISPLAYTITLE to titles that normalize to the same - * canonical DB key. + * For consistency, restrict DISPLAYTITLE to text that normalizes to the same + * canonical DB key. Also disallow some inline CSS rules like display: none; + * which can cause the text to be hidden or unselectable. */ $wgRestrictDisplayTitle = true; @@ -3536,12 +3821,13 @@ $wgExpensiveParserFunctionLimit = 100; $wgPreprocessorCacheThreshold = 1000; /** - * Enable interwiki transcluding. Only when iw_trans=1. + * Enable interwiki transcluding. Only when iw_trans=1 in the interwiki table. */ $wgEnableScaryTranscluding = false; /** - * (see next option $wgGlobalDatabase). + * Expiry time for transcluded templates cached in transcache database table. + * Only used $wgEnableInterwikiTranscluding is set to true. */ $wgTranscludeCacheExpiry = 3600; @@ -3591,7 +3877,8 @@ $wgHitcounterUpdateFreq = 1; /** * How many days user must be idle before he is considered inactive. Will affect - * the number shown on Special:Statistics and Special:ActiveUsers special page. + * the number shown on Special:Statistics, Special:ActiveUsers, and the + * {{NUMBEROFACTIVEUSERS}} magic word in wikitext. * You might want to leave this as the default value, to provide comparable * numbers between different wikis. */ @@ -3604,7 +3891,9 @@ $wgActiveUserDays = 30; * @{ */ -/** For compatibility with old installations set to false */ +/** + * For compatibility with old installations set to false + */ $wgPasswordSalt = true; /** @@ -3647,7 +3936,7 @@ $wgReservedUsernames = array( 'ScriptImporter', // Default user name used by maintenance/importSiteScripts.php 'msg:double-redirect-fixer', // Automatic double redirect fix 'msg:usermessage-editor', // Default user for leaving user messages - 'msg:proxyblocker', // For Special:Blockme + 'msg:proxyblocker', // For $wgProxyList and Special:Blockme (removed in 1.22) ); /** @@ -3655,7 +3944,6 @@ $wgReservedUsernames = array( * preferences used by anonymous visitors and newly created accounts. * For instance, to disable section editing links: * $wgDefaultUserOptions ['editsection'] = 0; - * */ $wgDefaultUserOptions = array( 'ccmeonemails' => 0, @@ -3673,8 +3961,6 @@ $wgDefaultUserOptions = array( 'enotifusertalkpages' => 1, 'enotifwatchlistpages' => 0, 'extendwatchlist' => 0, - 'externaldiff' => 0, - 'externaleditor' => 0, 'fancysig' => 0, 'forceeditsummary' => 0, 'gender' => 'unknown', @@ -3691,14 +3977,12 @@ $wgDefaultUserOptions = array( 'numberheadings' => 0, 'previewonfirst' => 0, 'previewontop' => 1, - 'quickbar' => 5, 'rcdays' => 7, 'rclimit' => 50, 'rememberpassword' => 0, 'rows' => 25, 'searchlimit' => 20, 'showhiddencats' => 0, - 'showjumplinks' => 1, 'shownumberswatching' => 1, 'showtoc' => 1, 'showtoolbar' => 1, @@ -3708,6 +3992,7 @@ $wgDefaultUserOptions = array( 'underline' => 2, 'uselivepreview' => 0, 'usenewrc' => 0, + 'vector-simplesearch' => 1, 'watchcreations' => 0, 'watchdefault' => 0, 'watchdeletion' => 0, @@ -3720,9 +4005,13 @@ $wgDefaultUserOptions = array( 'watchlisthidepatrolled' => 0, 'watchmoves' => 0, 'wllimit' => 250, + 'useeditwarning' => 1, + 'prefershttps' => 1, ); -/** An array of preferences to not show for the user */ +/** + * An array of preferences to not show for the user + */ $wgHiddenPrefs = array(); /** @@ -3743,63 +4032,6 @@ $wgInvalidUsernameCharacters = '@'; */ $wgUserrightsInterwikiDelimiter = '@'; -/** - * Use some particular type of external authentication. The specific - * authentication module you use will normally require some extra settings to - * be specified. - * - * null indicates no external authentication is to be used. Otherwise, - * $wgExternalAuthType must be the name of a non-abstract class that extends - * ExternalUser. - * - * Core authentication modules can be found in includes/extauth/. - */ -$wgExternalAuthType = null; - -/** - * Configuration for the external authentication. This may include arbitrary - * keys that depend on the authentication mechanism. For instance, - * authentication against another web app might require that the database login - * info be provided. Check the file where your auth mechanism is defined for - * info on what to put here. - */ -$wgExternalAuthConf = array(); - -/** - * When should we automatically create local accounts when external accounts - * already exist, if using ExternalAuth? Can have three values: 'never', - * 'login', 'view'. 'view' requires the external database to support cookies, - * and implies 'login'. - * - * TODO: Implement 'view' (currently behaves like 'login'). - */ -$wgAutocreatePolicy = 'login'; - -/** - * Policies for how each preference is allowed to be changed, in the presence - * of external authentication. The keys are preference keys, e.g., 'password' - * or 'emailaddress' (see Preferences.php et al.). The value can be one of the - * following: - * - * - local: Allow changes to this pref through the wiki interface but only - * apply them locally (default). - * - semiglobal: Allow changes through the wiki interface and try to apply them - * to the foreign database, but continue on anyway if that fails. - * - global: Allow changes through the wiki interface, but only let them go - * through if they successfully update the foreign database. - * - message: Allow no local changes for linked accounts; replace the change - * form with a message provided by the auth plugin, telling the user how to - * change the setting externally (maybe providing a link, etc.). If the auth - * plugin provides no message for this preference, hide it entirely. - * - * Accounts that are not linked to an external account are never affected by - * this setting. You may want to look at $wgHiddenPrefs instead. - * $wgHiddenPrefs supersedes this option. - * - * TODO: Implement message, global. - */ -$wgAllowPrefChange = array(); - /** * This is to let user authenticate using https when they come from http. * Based on an idea by George Herbert on wikitech-l: @@ -3808,13 +4040,6 @@ $wgAllowPrefChange = array(); */ $wgSecureLogin = false; -/** - * By default, keep users logged in via HTTPS when $wgSecureLogin is also - * true. Users opt-out of HTTPS when they login by de-selecting the checkbox. - * @since 1.21 - */ -$wgSecureLoginDefaultHTTPS = true; - /** @} */ # end user accounts } /************************************************************************//** @@ -3832,7 +4057,9 @@ $wgAutoblockExpiry = 86400; */ $wgBlockAllowsUTEdit = false; -/** Allow sysops to ban users from accessing Emailuser */ +/** + * Allow sysops to ban users from accessing Emailuser + */ $wgSysopEmailBans = true; /** @@ -3950,6 +4177,13 @@ $wgGroupPermissions['*']['edit'] = true; $wgGroupPermissions['*']['createpage'] = true; $wgGroupPermissions['*']['createtalk'] = true; $wgGroupPermissions['*']['writeapi'] = true; +$wgGroupPermissions['*']['editmyusercss'] = true; +$wgGroupPermissions['*']['editmyuserjs'] = true; +$wgGroupPermissions['*']['viewmywatchlist'] = true; +$wgGroupPermissions['*']['editmywatchlist'] = true; +$wgGroupPermissions['*']['viewmyprivateinfo'] = true; +$wgGroupPermissions['*']['editmyprivateinfo'] = true; +$wgGroupPermissions['*']['editmyoptions'] = true; #$wgGroupPermissions['*']['patrolmarks'] = false; // let anons see what was patrolled // Implicit group for all logged-in accounts @@ -3971,25 +4205,29 @@ $wgGroupPermissions['user']['sendemail'] = true; // Implicit group for accounts that pass $wgAutoConfirmAge $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true; +$wgGroupPermissions['autoconfirmed']['editsemiprotected'] = true; // Users with bot privilege can have their edits hidden // from various log pages by default $wgGroupPermissions['bot']['bot'] = true; $wgGroupPermissions['bot']['autoconfirmed'] = true; +$wgGroupPermissions['bot']['editsemiprotected'] = true; $wgGroupPermissions['bot']['nominornewtalk'] = true; $wgGroupPermissions['bot']['autopatrol'] = true; $wgGroupPermissions['bot']['suppressredirect'] = true; $wgGroupPermissions['bot']['apihighlimits'] = true; $wgGroupPermissions['bot']['writeapi'] = true; -#$wgGroupPermissions['bot']['editprotected'] = true; // can edit all protected pages without cascade protection enabled // Most extra permission abilities go to this group $wgGroupPermissions['sysop']['block'] = true; $wgGroupPermissions['sysop']['createaccount'] = true; $wgGroupPermissions['sysop']['delete'] = true; -$wgGroupPermissions['sysop']['bigdelete'] = true; // can be separately configured for pages with > $wgDeleteRevisionsLimit revs -$wgGroupPermissions['sysop']['deletedhistory'] = true; // can view deleted history entries, but not see or restore the text -$wgGroupPermissions['sysop']['deletedtext'] = true; // can view deleted revision text +// can be separately configured for pages with > $wgDeleteRevisionsLimit revs +$wgGroupPermissions['sysop']['bigdelete'] = true; +// can view deleted history entries, but not see or restore the text +$wgGroupPermissions['sysop']['deletedhistory'] = true; +// can view deleted revision text +$wgGroupPermissions['sysop']['deletedtext'] = true; $wgGroupPermissions['sysop']['undelete'] = true; $wgGroupPermissions['sysop']['editinterface'] = true; $wgGroupPermissions['sysop']['editusercss'] = true; @@ -4002,6 +4240,7 @@ $wgGroupPermissions['sysop']['move-rootuserpages'] = true; $wgGroupPermissions['sysop']['patrol'] = true; $wgGroupPermissions['sysop']['autopatrol'] = true; $wgGroupPermissions['sysop']['protect'] = true; +$wgGroupPermissions['sysop']['editprotected'] = true; $wgGroupPermissions['sysop']['proxyunbannable'] = true; $wgGroupPermissions['sysop']['rollback'] = true; $wgGroupPermissions['sysop']['upload'] = true; @@ -4009,6 +4248,7 @@ $wgGroupPermissions['sysop']['reupload'] = true; $wgGroupPermissions['sysop']['reupload-shared'] = true; $wgGroupPermissions['sysop']['unwatchedpages'] = true; $wgGroupPermissions['sysop']['autoconfirmed'] = true; +$wgGroupPermissions['sysop']['editsemiprotected'] = true; $wgGroupPermissions['sysop']['ipblock-exempt'] = true; $wgGroupPermissions['sysop']['blockemail'] = true; $wgGroupPermissions['sysop']['markbotedits'] = true; @@ -4084,11 +4324,12 @@ $wgImplicitGroups = array( '*', 'user', 'autoconfirmed' ); * @endcode * This allows users in the '*' group (i.e. any user) to remove themselves from * any group that they happen to be in. - * */ $wgGroupsAddToSelf = array(); -/** @see $wgGroupsAddToSelf */ +/** + * @see $wgGroupsAddToSelf + */ $wgGroupsRemoveFromSelf = array(); /** @@ -4108,10 +4349,36 @@ $wgRestrictionTypes = array( 'create', 'edit', 'move', 'upload' ); * dictates the order on the protection form's lists. * * - '' will be ignored (i.e. unprotected) - * - 'sysop' is quietly rewritten to 'protect' for backwards compatibility + * - 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility + * - 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility */ $wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop' ); +/** + * Restriction levels that can be used with cascading protection + * + * A page can only be protected with cascading protection if the + * requested restriction level is included in this array. + * + * 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility. + * 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility. + */ +$wgCascadingRestrictionLevels = array( 'sysop' ); + +/** + * Restriction levels that should be considered "semiprotected" + * + * Certain places in the interface recognize a dichotomy between "protected" + * and "semiprotected", without further distinguishing the specific levels. In + * general, if anyone can be eligible to edit a protection level merely by + * reaching some condition in $wgAutopromote, it should probably be considered + * "semiprotected". + * + * 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility. + * 'sysop' is not changed, since it really shouldn't be here. + */ +$wgSemiprotectedRestrictionLevels = array( 'autoconfirmed' ); + /** * Set the minimum permissions required to edit pages in each * namespace. If you list more than one permission, a user must @@ -4248,7 +4515,10 @@ $wgAutopromoteOnceLogInRC = true; * @endcode */ $wgAddGroups = array(); -/** @see $wgAddGroups */ + +/** + * @see $wgAddGroups + */ $wgRemoveGroups = array(); /** @@ -4283,7 +4553,9 @@ $wgAccountCreationThrottle = 0; */ $wgSpamRegex = array(); -/** Same as the above except for edit summaries */ +/** + * Same as the above except for edit summaries + */ $wgSummarySpamRegex = array(); /** @@ -4336,6 +4608,13 @@ $wgSorbsUrl = array(); */ $wgProxyWhitelist = array(); +/** + * Whether to look at the X-Forwarded-For header's list of (potentially spoofed) + * IPs and apply IP blocks to them. This allows for IP blocks to work with correctly-configured + * (transparent) proxies without needing to block the proxies themselves. + */ +$wgApplyIpBlocksToXff = false; + /** * Simple rate limiter options to brake edit floods. * @@ -4362,7 +4641,7 @@ $wgRateLimits = array( 'user' => null, // for each logged-in user 'newbie' => null, // for each recent (autoconfirmed) account; overrides 'user' 'ip' => null, // for each anon and recent account - 'subnet' => null, // ... with final octet removed + 'subnet' => null, // ... within a /24 subnet in IPv4 or /64 in IPv6 ), 'move' => array( 'user' => null, @@ -4370,11 +4649,25 @@ $wgRateLimits = array( 'ip' => null, 'subnet' => null, ), - 'mailpassword' => array( + 'mailpassword' => array( // triggering password resets emails 'anon' => null, ), - 'emailuser' => array( + 'emailuser' => array( // emailing other users using MediaWiki + 'user' => null, + ), + 'linkpurge' => array( // purges of link tables + 'anon' => null, 'user' => null, + 'newbie' => null, + 'ip' => null, + 'subnet' => null, + ), + 'renderfile' => array( // files rendered via thumb.php or thumb_handler.php + 'anon' => null, + 'user' => null, + 'newbie' => null, + 'ip' => null, + 'subnet' => null, ), ); @@ -4417,22 +4710,8 @@ $wgPasswordAttemptThrottle = array( 'count' => 5, 'seconds' => 300 ); */ /** - * If you enable this, every editor's IP address will be scanned for open HTTP - * proxies. - * - * @warning Don't enable this. Many sysops will report "hostile TCP port scans" - * to your ISP and ask for your server to be shut down. - * You have been warned. - * + * This should always be customised in LocalSettings.php */ -$wgBlockOpenProxies = false; -/** Port we want to scan for a proxy */ -$wgProxyPorts = array( 80, 81, 1080, 3128, 6588, 8000, 8080, 8888, 65506 ); -/** Script used to scan */ -$wgProxyScriptPath = "$IP/maintenance/proxyCheck.php"; -/** */ -$wgProxyMemcExpiry = 86400; -/** This should always be customised in LocalSettings.php */ $wgSecretKey = false; /** @@ -4516,10 +4795,14 @@ $wgHttpOnlyBlacklist = array( '/^Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/', ); -/** A list of cookies that vary the cache (for use by extensions) */ +/** + * A list of cookies that vary the cache (for use by extensions) + */ $wgCacheVaryCookies = array(); -/** Override to customise the session name */ +/** + * Override to customise the session name + */ $wgSessionName = false; /** @} */ # end of cookie settings } @@ -4537,7 +4820,7 @@ $wgSessionName = false; */ $wgUseTeX = false; -/* @} */ # end LaTeX } +/** @} */ # end LaTeX } /************************************************************************//** * @name Profiling, testing and debugging @@ -4676,10 +4959,14 @@ $wgDevelopmentWarnings = false; */ $wgDeprecationReleaseLimit = false; -/** Only record profiling info for pages that took longer than this */ +/** + * Only record profiling info for pages that took longer than this + */ $wgProfileLimit = 0.0; -/** Don't put non-profiling info into log file */ +/** + * Don't put non-profiling info into log file + */ $wgProfileOnly = false; /** @@ -4694,10 +4981,14 @@ $wgProfileOnly = false; */ $wgProfileToDatabase = false; -/** If true, print a raw call tree instead of per-function report */ +/** + * If true, print a raw call tree instead of per-function report + */ $wgProfileCallTree = false; -/** Should application server host be put into profiling table */ +/** + * Should application server host be put into profiling table + */ $wgProfilePerHost = false; /** @@ -4714,10 +5005,25 @@ $wgUDPProfilerHost = '127.0.0.1'; */ $wgUDPProfilerPort = '3811'; -/** Detects non-matching wfProfileIn/wfProfileOut calls */ +/** + * Format string for the UDP profiler. The UDP profiler invokes sprintf() with + * (profile id, count, cpu, cpu_sq, real, real_sq, entry name) as arguments. + * You can use sprintf's argument numbering/swapping capability to repeat, + * re-order or omit fields. + * + * @see $wgStatsFormatString + * @since 1.22 + */ +$wgUDPProfilerFormatString = "%s - %d %f %f %f %f %s\n"; + +/** + * Detects non-matching wfProfileIn/wfProfileOut calls + */ $wgDebugProfiling = false; -/** Output debug message on every wfProfileIn/wfProfileOut */ +/** + * Output debug message on every wfProfileIn/wfProfileOut + */ $wgDebugFunctionEntry = false; /** @@ -4736,7 +5042,21 @@ $wgStatsMethod = 'cache'; */ $wgAggregateStatsID = false; -/** Whereas to count the number of time an article is viewed. +/** + * When $wgStatsMethod is 'udp', this variable specifies how stats should be + * formatted. Its value should be a format string suitable for a sprintf() + * invocation with (id, count, key) arguments, where 'id' is either + * $wgAggregateStatsID or the DB name, 'count' is the value by which the metric + * is being incremented, and 'key' is the metric name. + * + * @see $wgUDPProfilerFormatString + * @see $wgAggregateStatsID + * @since 1.22 + */ +$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; @@ -4867,7 +5187,6 @@ $wgCountTotalSearchHits = false; * PHP wrapper to avoid firing up mediawiki for every keystroke * * Placeholders: {searchTerms} - * */ $wgOpenSearchTemplate = false; @@ -4919,7 +5238,6 @@ $wgNamespacesToBeSearchedHelp = array( * logged-in users. * Useful for big wikis to maintain different search profiles for anonymous and * logged-in users. - * */ $wgSearchEverythingOnlyLoggedIn = false; @@ -5011,12 +5329,8 @@ $wgPreviewOnOpenNamespaces = array( ); /** - * Activate external editor interface for files and pages - * See http://www.mediawiki.org/wiki/Manual:External_editors + * Go button goes straight to the edit screen if the article doesn't exist. */ -$wgUseExternalEditor = true; - -/** Go button goes straight to the edit screen if the article doesn't exist. */ $wgGoToEdit = false; /** @@ -5050,7 +5364,9 @@ if ( !isset( $wgCommandLineMode ) ) { } /** @endcond */ -/** For colorized maintenance script output, is your terminal background dark ? */ +/** + * For colorized maintenance script output, is your terminal background dark ? + */ $wgCommandLineDarkBg = false; /** @@ -5090,6 +5406,11 @@ $wgReadOnlyFile = false; */ $wgUpgradeKey = false; +/** + * Fully specified path to git binary + */ +$wgGitBin = '/usr/bin/git'; + /** * Map GIT repository URLs to viewer URLs to provide links in Special:Version * @@ -5098,12 +5419,14 @@ $wgUpgradeKey = false; * The value is the replacement for the key (it can contain $1, etc.) * %h will be replaced by the short SHA-1 (7 first chars) and %H by the * full SHA-1 of the HEAD revision. + * %r will be replaced with a URL-encoded version of $1. * * @since 1.20 */ $wgGitRepositoryViewers = array( - 'https://gerrit.wikimedia.org/r/p/(.*)' => 'https://gerrit.wikimedia.org/r/gitweb?p=$1;h=%H', - 'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' => 'https://gerrit.wikimedia.org/r/gitweb?p=$1;h=%H', + 'https://gerrit.wikimedia.org/r/p/(.*)' => 'https://git.wikimedia.org/commit/%r/%H', + 'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' + => 'https://git.wikimedia.org/commit/%r/%H', ); /** @} */ # End of maintenance } @@ -5139,11 +5462,15 @@ $wgRCLinkDays = array( 1, 3, 7, 14, 30 ); /** * Send recent changes updates via UDP. The updates will be formatted for IRC. * Set this to the IP address of the receiver. + * + * @deprecated since 1.22, use $wgRCFeeds */ $wgRC2UDPAddress = false; /** * Port number for RC updates + * + * @deprecated since 1.22, use $wgRCFeeds */ $wgRC2UDPPort = false; @@ -5152,21 +5479,73 @@ $wgRC2UDPPort = false; * This can be used to identify the wiki. A script is available called * mxircecho.py which listens on a UDP port, and uses a prefix ending in a * tab to identify the IRC channel to send the log line to. + * + * @deprecated since 1.22, use $wgRCFeeds */ $wgRC2UDPPrefix = ''; /** * If this is set to true, $wgLocalInterwiki will be prepended to links in the * IRC feed. If this is set to a string, that string will be used as the prefix. + * + * @deprecated since 1.22, use $wgRCFeeds */ $wgRC2UDPInterwikiPrefix = false; /** * Set to true to omit "bot" edits (by users with the bot permission) from the * UDP feed. + * + * @deprecated since 1.22, use $wgRCFeeds */ $wgRC2UDPOmitBots = false; +/** + * Destinations to which notifications about recent changes + * should be sent. + * + * As of MediaWiki 1.22, the only supported 'engine' parameter option in core + * is 'UDPRCFeedEngine', which is used to send recent changes over UDP to the + * specified server. + * The common options are: + * * 'uri' -- the address to which the notices are to be sent. + * * 'formatter' -- the class name (implementing RCFeedFormatter) which will + * produce the text to send. + * * 'omit_bots' -- whether the bot edits should be in the feed + * The IRC-specific options are: + * * 'add_interwiki_prefix' -- whether the titles should be prefixed with + * $wgLocalInterwiki. + * The JSON-specific options are: + * * 'channel' -- if set, the 'channel' parameter is also set in JSON values. + * + * To ensure backwards-compatability, whenever $wgRC2UDPAddress is set, a + * 'default' feed will be created reusing the deprecated $wgRC2UDP* variables. + * + * @example $wgRCFeeds['example'] = array( + * 'formatter' => 'JSONRCFeedFormatter', + * 'uri' => "udp://localhost:1336", + * 'add_interwiki_prefix' => false, + * 'omit_bots' => true, + * ); + * @example $wgRCFeeds['exampleirc'] = array( + * 'formatter' => 'IRCColourfulRCFeedFormatter', + * 'uri' => "udp://localhost:1338", + * 'add_interwiki_prefix' => false, + * 'omit_bots' => true, + * ); + * @since 1.22 + */ +$wgRCFeeds = array(); + +/** + * Used by RecentChange::getEngine to find the correct engine to use for a given URI scheme. + * Keys are scheme names, values are names of engine classes. + */ +$wgRCEngines = array( + 'redis' => 'RedisPubSubFeedEngine', + 'udp' => 'UDPRCFeedEngine', +); + /** * Enable user search in Special:Newpages * This is really a temporary hack around an index install bug on some Wikipedias. @@ -5174,20 +5553,34 @@ $wgRC2UDPOmitBots = false; */ $wgEnableNewpagesUserFilter = true; -/** Use RC Patrolling to check for vandalism */ +/** + * Use RC Patrolling to check for vandalism + */ $wgUseRCPatrol = true; -/** Use new page patrolling to check new pages on Special:Newpages */ +/** + * Use new page patrolling to check new pages on Special:Newpages + */ $wgUseNPPatrol = true; -/** Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages */ +/** + * Log autopatrol actions to the log table + */ +$wgLogAutopatrol = true; + +/** + * Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages + */ $wgFeed = true; -/** Set maximum number of results to return in syndication feeds (RSS, Atom) for - * eg Recentchanges, Newpages. */ +/** + * Set maximum number of results to return in syndication feeds (RSS, Atom) for + * eg Recentchanges, Newpages. + */ $wgFeedLimit = 50; -/** _Minimum_ timeout for cached Recentchanges feed, in seconds. +/** + * _Minimum_ timeout for cached Recentchanges feed, in seconds. * A cached version will continue to be served out even if changes * are made, until this many seconds runs out since the last render. * @@ -5196,11 +5589,14 @@ $wgFeedLimit = 50; */ $wgFeedCacheTimeout = 60; -/** When generating Recentchanges RSS/Atom feed, diffs will not be generated for - * pages larger than this size. */ +/** + * When generating Recentchanges RSS/Atom feed, diffs will not be generated for + * pages larger than this size. + */ $wgFeedDiffCutoff = 32768; -/** Override the site's default RSS/ATOM feed for recentchanges that appears on +/** + * Override the site's default RSS/ATOM feed for recentchanges that appears on * every page. Some sites might have a different feed they'd like to promote * instead of the RC feed (maybe like a "Recent New Articles" or "Breaking news" one). * Should be a format as key (either 'rss' or 'atom') and an URL to the feed @@ -5229,11 +5625,19 @@ $wgFeedClasses = array( */ $wgAdvertisedFeedTypes = array( 'atom' ); -/** Show watching users in recent changes, watchlist and page history views */ +/** + * Show watching users in recent changes, watchlist and page history views + */ $wgRCShowWatchingUsers = false; # UPO -/** Show watching users in Page views */ + +/** + * Show watching users in Page views + */ $wgPageShowWatchingUsers = false; -/** Show the amount of changed characters in recent changes */ + +/** + * Show the amount of changed characters in recent changes + */ $wgRCShowChangedSize = true; /** @@ -5245,7 +5649,8 @@ $wgRCChangedSizeThreshold = 500; /** * Show "Updated (since my last visit)" marker in RC view, watchlist and history - * view for watched pages with new changes */ + * view for watched pages with new changes + */ $wgShowUpdatedMarker = true; /** @@ -5274,6 +5679,33 @@ $wgUseTagFilter = true; */ $wgUnwatchedPageThreshold = false; +/** + * Flags (letter symbols) shown in recent changes and watchlist to indicate + * certain types of edits. + * + * To register a new one: + * @code + * $wgRecentChangesFlags['flag'] => array( + * 'letter' => 'letter-msg', + * 'title' => 'tooltip-msg' + * ); + * @endcode + * + * Optional 'class' allows to set a css class different than the flag name. + * + * @since 1.22 + */ +$wgRecentChangesFlags = array( + 'newpage' => array( 'letter' => 'newpageletter', + 'title' => 'recentchanges-label-newpage' ), + 'minor' => array( 'letter' => 'minoreditletter', + 'title' => 'recentchanges-label-minor', 'class' => 'minoredit' ), + 'bot' => array( 'letter' => 'boteditletter', + 'title' => 'recentchanges-label-bot', 'class' => 'botedit' ), + 'unpatrolled' => array( 'letter' => 'unpatrolledletter', + 'title' => 'recentchanges-label-unpatrolled' ), +); + /** @} */ # end RC/watchlist } /************************************************************************//** @@ -5291,15 +5723,17 @@ $wgUnwatchedPageThreshold = false; $wgRightsPage = null; /** - * Set this to specify an external URL containing details about the content license used on your wiki. + * Set this to specify an external URL containing details about the content license used on your + * wiki. * If $wgRightsPage is set then this setting is ignored. */ $wgRightsUrl = null; /** - * If either $wgRightsUrl or $wgRightsPage is specified then this variable gives the text for the link. - * If using $wgRightsUrl then this value must be specified. If using $wgRightsPage then the name of the - * page will also be used as the link if this variable is not set. + * If either $wgRightsUrl or $wgRightsPage is specified then this variable gives the text for the + * link. + * If using $wgRightsUrl then this value must be specified. If using $wgRightsPage then the name + * of the page will also be used as the link if this variable is not set. */ $wgRightsText = null; @@ -5319,7 +5753,9 @@ $wgLicenseTerms = false; */ $wgCopyrightIcon = null; -/** Set this to true if you want detailed copyright information forms on Upload. */ +/** + * Set this to true if you want detailed copyright information forms on Upload. + */ $wgUseCopyrightUpload = false; /** @@ -5331,8 +5767,10 @@ $wgUseCopyrightUpload = false; */ $wgMaxCredits = 0; -/** If there are more than $wgMaxCredits authors, show $wgMaxCredits of them. - * Otherwise, link to a separate credits page. */ +/** + * If there are more than $wgMaxCredits authors, show $wgMaxCredits of them. + * Otherwise, link to a separate credits page. + */ $wgShowCreditsIfMax = true; /** @} */ # end of copyright and credits settings } @@ -5434,6 +5872,13 @@ $wgExtensionFunctions = array(); */ $wgExtensionMessagesFiles = array(); +/** + * Array of files with list(s) of extension entry points to be used in + * maintenance/mergeMessageFileList.php + * @since 1.22 + */ +$wgExtensionEntryPointListFiles = array(); + /** * Parser output hooks. * This is an associative array where the key is an extension-defined tag @@ -5450,6 +5895,11 @@ $wgExtensionMessagesFiles = array(); */ $wgParserOutputHooks = array(); +/** + * Whether to include the NewPP limit report as a HTML comment + */ +$wgEnableParserLimitReporting = true; + /** * List of valid skin names. * The key should be the name in all lower case, the value should be a properly @@ -5521,17 +5971,24 @@ $wgAuth = null; * @endcode * - A function with some data: * @code - * $wgHooks['event_name'][] = array($function, $data); + * $wgHooks['event_name'][] = array( $function, $data ); * @endcode * - A an object method: * @code - * $wgHooks['event_name'][] = array($object, 'method'); + * $wgHooks['event_name'][] = array( $object, 'method' ); + * @endcode + * - A closure: + * @code + * $wgHooks['event_name'][] = function ( $hookParam ) { + * // Handler code goes here. + * }; * @endcode * * @warning You should always append to an event array or you will end up * deleting a previous registered hook. * - * @todo Does it support PHP closures? + * @warning Hook handlers should be registered at file scope. Registering + * handlers after file scope can lead to unexpected results due to caching. */ $wgHooks = array(); @@ -5543,7 +6000,6 @@ $wgJobClasses = array( 'refreshLinks' => 'RefreshLinksJob', 'refreshLinks2' => 'RefreshLinksJob2', 'htmlCacheUpdate' => 'HTMLCacheUpdateJob', - 'html_cache_update' => 'HTMLCacheUpdateJob', // backwards-compatible 'sendMail' => 'EmaillingJob', 'enotifNotify' => 'EnotifNotifyJob', 'fixDoubleRedirect' => 'DoubleRedirectJob', @@ -5843,12 +6299,13 @@ $wgDisableQueryPageUpdate = false; * List of special pages, followed by what subtitle they should go under * at Special:SpecialPages * - * @deprecated 1.21 Override SpecialPage::getGroupName instead + * @deprecated since 1.21 Override SpecialPage::getGroupName instead */ $wgSpecialPageGroups = array(); -/** Whether or not to sort special pages in Special:Specialpages */ - +/** + * Whether or not to sort special pages in Special:Specialpages + */ $wgSortSpecialPages = true; /** @@ -6065,6 +6522,16 @@ $wgAPIRequestLog = false; */ $wgAPICacheHelpTimeout = 60 * 60; +/** + * The ApiQueryQueryPages module should skip pages that are redundant to true + * API queries. + */ +$wgAPIUselessQueryPages = array( + 'MIMEsearch', // aiprop=mime + 'LinkSearch', // list=exturlusage + 'FileDuplicateSearch', // prop=duplicatefiles +); + /** * Enable AJAX framework */ @@ -6119,7 +6586,6 @@ $wgCrossSiteAJAXdomains = array(); * even if they match one of the domains allowed by $wgCrossSiteAJAXdomains * Uses the same syntax as $wgCrossSiteAJAXdomains */ - $wgCrossSiteAJAXdomainExceptions = array(); /** @} */ # End AJAX and API } @@ -6132,7 +6598,7 @@ $wgCrossSiteAJAXdomainExceptions = array(); /** * Maximum amount of virtual memory available to shell processes under linux, in KB. */ -$wgMaxShellMemory = 102400; +$wgMaxShellMemory = 307200; /** * Maximum file size created by shell processes under linux, in KB @@ -6210,6 +6676,12 @@ $wgAsyncHTTPTimeout = 25; */ $wgHTTPProxy = false; +/** + * Timeout for connections done internally (in seconds) + * Only works for curl + */ +$wgHTTPConnectTimeout = 5e0; + /** @} */ # End HTTP client } /************************************************************************//** @@ -6248,61 +6720,13 @@ $wgMaxBacklinksInvalidate = false; /** @} */ # End job queue } /************************************************************************//** - * @name HipHop compilation + * @name Miscellaneous * @{ */ /** - * The build directory for HipHop compilation. - * Defaults to '$IP/maintenance/hiphop/build'. - */ -$wgHipHopBuildDirectory = false; - -/** - * The HipHop build type. Can be either "Debug" or "Release". + * Name of the external diff engine to use */ -$wgHipHopBuildType = 'Debug'; - -/** - * Number of parallel processes to use during HipHop compilation, or "detect" - * to guess from system properties. - */ -$wgHipHopCompilerProcs = 'detect'; - -/** - * Filesystem extensions directory. Defaults to $IP/../extensions. - * - * To compile extensions with HipHop, set $wgExtensionsDirectory correctly, - * and use code like: - * @code - * require( MWInit::extensionSetupPath( 'Extension/Extension.php' ) ); - * @endcode - * - * to include the extension setup file from LocalSettings.php. It is not - * necessary to set this variable unless you use MWInit::extensionSetupPath(). - */ -$wgExtensionsDirectory = false; - -/** - * A list of files that should be compiled into a HipHop build, in addition to - * those listed in $wgAutoloadClasses. Add to this array in an extension setup - * file in order to add files to the build. - * - * The files listed here must either be either absolute paths under $IP or - * under $wgExtensionsDirectory, or paths relative to the virtual source root - * "$IP/..", i.e. starting with "phase3" for core files, and "extensions" for - * extension files. - */ -$wgCompiledFiles = array(); - -/** @} */ # End of HipHop compilation } - -/************************************************************************//** - * @name Miscellaneous - * @{ - */ - -/** Name of the external diff engine to use */ $wgExternalDiffEngine = false; /** @@ -6372,25 +6796,18 @@ $wgPoolCounterConf = null; $wgUploadMaintenance = false; /** - * Allows running of selenium tests via maintenance/tests/RunSeleniumTests.php - */ -$wgEnableSelenium = false; -$wgSeleniumTestConfigs = array(); -$wgSeleniumConfigFile = null; -$wgDBtestuser = ''; //db user that has permission to create and drop the test databases only -$wgDBtestpassword = ''; - -/** - * Associative array mapping namespace IDs to the name of the content model pages in that namespace should have by - * default (use the CONTENT_MODEL_XXX constants). If no special content type is defined for a given namespace, - * pages in that namespace will use the CONTENT_MODEL_WIKITEXT (except for the special case of JS and CS pages). + * Associative array mapping namespace IDs to the name of the content model pages in that namespace + * should have by default (use the CONTENT_MODEL_XXX constants). If no special content type is + * defined for a given namespace, pages in that namespace will use the CONTENT_MODEL_WIKITEXT + * (except for the special case of JS and CS pages). * * @since 1.21 */ $wgNamespaceContentModels = array(); /** - * How to react if a plain text version of a non-text Content object is requested using ContentHandler::getContentText(): + * How to react if a plain text version of a non-text Content object is requested using + * ContentHandler::getContentText(): * * * 'ignore': return null * * 'fail': throw an MWException @@ -6402,14 +6819,14 @@ $wgContentHandlerTextFallback = 'ignore'; /** * Set to false to disable use of the database fields introduced by the ContentHandler facility. - * This way, the ContentHandler facility can be used without any additional information in the database. - * A page's content model is then derived solely from the page's title. This however means that changing - * a page's default model (e.g. using $wgNamespaceContentModels) will break the page and/or make the content - * inaccessible. This also means that pages can not be moved to a title that would default to a different - * content model. + * This way, the ContentHandler facility can be used without any additional information in the + * database. A page's content model is then derived solely from the page's title. This however + * means that changing a page's default model (e.g. using $wgNamespaceContentModels) will break + * the page and/or make the content inaccessible. This also means that pages can not be moved to + * a title that would default to a different content model. * - * Overall, with $wgContentHandlerUseDB = false, no database updates are needed, but content handling - * is less robust and less flexible. + * Overall, with $wgContentHandlerUseDB = false, no database updates are needed, but content + * handling is less robust and less flexible. * * @since 1.21 */ @@ -6420,7 +6837,7 @@ $wgContentHandlerUseDB = true; * of texts are also rendered as wikitext, it only means that links, magic words, etc will have * the effect on the database they would have on a wikitext page. * - * @todo: On the long run, it would be nice to put categories etc into a separate structure, + * @todo On the long run, it would be nice to put categories etc into a separate structure, * or at least parse only the contents of comments in the scripts. * * @since 1.21 @@ -6447,6 +6864,12 @@ $wgSiteTypes = array( 'mediawiki' => 'MediaWikiSite', ); +/** + * Formerly a list of files for HipHop compilation + * @deprecated since 1.22 + */ +$wgCompiledFiles = array(); + /** * For really cool vim folding this needs to be at the end: * vim: foldmarker=@{,@} foldmethod=marker -- cgit v1.2.2