* a foreign wiki's directory in order to render a page on given wiki. The extension
* would need a fully qualified backend that is defined on all wikis in the wiki farm.
*/
* a foreign wiki's directory in order to render a page on given wiki. The extension
* would need a fully qualified backend that is defined on all wikis in the wiki farm.
*/
* Additional parameters are specific to the lock manager class used.
* These settings should be global to all wikis.
*/
* Additional parameters are specific to the lock manager class used.
* These settings should be global to all wikis.
*/
* such as odt or doc, and untrusted users are allowed to upload files, then
* your wiki will be vulnerable to cross-site request forgery (CSRF).
*/
* such as odt or doc, and untrusted users are allowed to upload files, then
* your wiki will be vulnerable to cross-site request forgery (CSRF).
*/
-$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'webp' );
+$wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'webp' ];
/**
* 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.
*/
/**
* 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.
*/
# HTML may contain cookie-stealing JavaScript and web bugs
'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht',
# PHP scripts may execute arbitrary code on the server
# HTML may contain cookie-stealing JavaScript and web bugs
'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht',
# PHP scripts may execute arbitrary code on the server
# Other types that may be interpreted by some servers
'shtml', 'jhtml', 'pl', 'py', 'cgi',
# May contain harmful executables for Windows victims
# Other types that may be interpreted by some servers
'shtml', 'jhtml', 'pl', 'py', 'cgi',
# May contain harmful executables for Windows victims
- 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' );
+ 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' ];
# HTML may contain cookie-stealing JavaScript and web bugs
'text/html', 'text/javascript', 'text/x-javascript', 'application/x-shellscript',
# PHP scripts may execute arbitrary code on the server
# HTML may contain cookie-stealing JavaScript and web bugs
'text/html', 'text/javascript', 'text/x-javascript', 'application/x-shellscript',
# PHP scripts may execute arbitrary code on the server
'text/scriptlet', 'application/x-msdownload',
# Windows metafile, client-side vulnerability on some systems
'application/x-msmetafile',
'text/scriptlet', 'application/x-msdownload',
# Windows metafile, client-side vulnerability on some systems
'application/x-msmetafile',
* to use this for further restrictions, like disabling direct
* [[media:...]] links for non-trusted formats.
*/
* to use this for further restrictions, like disabling direct
* [[media:...]] links for non-trusted formats.
*/
MEDIATYPE_BITMAP, // all bitmap formats
MEDIATYPE_AUDIO, // all audio formats
MEDIATYPE_VIDEO, // all plain video formats
"image/svg+xml", // svg (only needed if inline rendering of svg is not supported)
"application/pdf", // PDF files
# "application/x-shockwave-flash", //flash/shockwave movie
MEDIATYPE_BITMAP, // all bitmap formats
MEDIATYPE_AUDIO, // all audio formats
MEDIATYPE_VIDEO, // all plain video formats
"image/svg+xml", // svg (only needed if inline rendering of svg is not supported)
"application/pdf", // PDF files
# "application/x-shockwave-flash", //flash/shockwave movie
'image/jpeg' => 'JpegHandler',
'image/png' => 'PNGHandler',
'image/gif' => 'GIFHandler',
'image/jpeg' => 'JpegHandler',
'image/png' => 'PNGHandler',
'image/gif' => 'GIFHandler',
'image/vnd.djvu' => 'DjVuHandler', // official
'image/x.djvu' => 'DjVuHandler', // compat
'image/x-djvu' => 'DjVuHandler', // compat
'image/vnd.djvu' => 'DjVuHandler', // official
'image/x.djvu' => 'DjVuHandler', // compat
'image/x-djvu' => 'DjVuHandler', // compat
// the usual case
CONTENT_MODEL_WIKITEXT => 'WikitextContentHandler',
// dumb version, no syntax highlighting
// the usual case
CONTENT_MODEL_WIKITEXT => 'WikitextContentHandler',
// dumb version, no syntax highlighting
CONTENT_MODEL_CSS => 'CssContentHandler',
// plain text, for use by extensions, etc.
CONTENT_MODEL_TEXT => 'TextContentHandler',
CONTENT_MODEL_CSS => 'CssContentHandler',
// plain text, for use by extensions, etc.
CONTENT_MODEL_TEXT => 'TextContentHandler',
* If set to an array, the first item is a PHP callable and any further items
* are passed as parameters after $srcPath, $dstPath, $width, $height
*/
* If set to an array, the first item is a PHP callable and any further items
* are passed as parameters after $srcPath, $dstPath, $width, $height
*/
'ImageMagick' =>
'$path/convert -background "#ffffff00" -thumbnail $widthx$height\! $input PNG:$output',
'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output',
'ImageMagick' =>
'$path/convert -background "#ffffff00" -thumbnail $widthx$height\! $input PNG:$output',
'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output',
. '$output $input',
'rsvg' => '$path/rsvg-convert -w $width -h $height -o $output $input',
'imgserv' => '$path/imgserv-wrapper -i svg -o png -w$width $input $output',
. '$output $input',
'rsvg' => '$path/rsvg-convert -w $width -h $height -o $output $input',
'imgserv' => '$path/imgserv-wrapper -i svg -o png -w$width $input $output',
* output. The relevant part should be matched as group one (\1).
* If not defined or the pattern does not match, the full message is shown to the user.
*/
* output. The relevant part should be matched as group one (\1).
* If not defined or the pattern does not match, the full message is shown to the user.
*/
"0" => AV_NO_VIRUS, # no virus
"1" => AV_VIRUS_FOUND, # virus found
"52" => AV_SCAN_ABORTED, # unsupported file format (probably immune)
"*" => AV_SCAN_FAILED, # else scan failed
"0" => AV_NO_VIRUS, # no virus
"1" => AV_VIRUS_FOUND, # virus found
"52" => AV_SCAN_ABORTED, # unsupported file format (probably immune)
"*" => AV_SCAN_FAILED, # else scan failed
* Additional XML types we can allow via MIME-detection.
* array = ( 'rootElement' => 'associatedMimeType' )
*/
* Additional XML types we can allow via MIME-detection.
* array = ( 'rootElement' => 'associatedMimeType' )
*/
'http://www.w3.org/2000/svg:svg' => 'image/svg+xml',
'svg' => 'image/svg+xml',
'http://www.lysator.liu.se/~alla/dia/:diagram' => 'application/x-dia-diagram',
'http://www.w3.org/1999/xhtml:html' => 'text/html', // application/xhtml+xml?
'html' => 'text/html', // application/xhtml+xml?
'http://www.w3.org/2000/svg:svg' => 'image/svg+xml',
'svg' => 'image/svg+xml',
'http://www.lysator.liu.se/~alla/dia/:diagram' => 'application/x-dia-diagram',
'http://www.w3.org/1999/xhtml:html' => 'text/html', // application/xhtml+xml?
'html' => 'text/html', // application/xhtml+xml?
* change it if you alter the array (see bug 8858).
* This is the list of settings the user can choose from:
*/
* change it if you alter the array (see bug 8858).
* This is the list of settings the user can choose from:
*/
/**
* Adjust thumbnails on image pages according to a user setting. In order to
* reduce disk usage, the values can only be selected from a list. This is the
* list of settings the user can choose from:
*/
/**
* Adjust thumbnails on image pages according to a user setting. In order to
* reduce disk usage, the values can only be selected from a list. This is the
* list of settings the user can choose from:
*/
'imagesPerRow' => 0, // Default number of images per-row in the gallery. 0 -> Adapt to screensize
'imageWidth' => 120, // Width of the cells containing images in galleries (in "px")
'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',
'imagesPerRow' => 0, // Default number of images per-row in the gallery. 0 -> Adapt to screensize
'imageWidth' => 120, // Width of the cells containing images in galleries (in "px")
'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',
*
* @deprecated since 1.23; use the system message 'emailsender' instead.
*/
$wgPasswordSenderName = 'MediaWiki Mail';
/**
*
* @deprecated since 1.23; use the system message 'emailsender' instead.
*/
$wgPasswordSenderName = 'MediaWiki Mail';
/**
- * Dummy address which should be accepted during mail send action.
- * It might be necessary to adapt the address or to set it equal
- * to the $wgEmergencyContact address.
+ * Reply-To address for e-mail notifications.
+ *
+ * Defaults to $wgPasswordSender.
* Set to true to put the sending user's email in a Reply-To header
* instead of From. ($wgEmergencyContact will be used as From.)
*
* Set to true to put the sending user's email in a Reply-To header
* instead of From. ($wgEmergencyContact will be used as From.)
*
* which can cause problems with SPF validation and leak recipient addresses
* when bounces are sent to the sender.
*/
* which can cause problems with SPF validation and leak recipient addresses
* when bounces are sent to the sender.
*/
* Array of usernames who will be sent a notification email for every change
* which occurs on a wiki. Users will not be notified of their own changes.
*/
* Array of usernames who will be sent a notification email for every change
* which occurs on a wiki. Users will not be notified of their own changes.
*/
* The LBFactoryMulti class is provided for this purpose, please see
* includes/db/LBFactoryMulti.php for configuration information.
*/
* The LBFactoryMulti class is provided for this purpose, please see
* includes/db/LBFactoryMulti.php for configuration information.
*/
* class name which will be used. Alternatively, a "factory" parameter may be
* given, giving a callable function which will generate a suitable cache object.
*/
* class name which will be used. Alternatively, a "factory" parameter may be
* given, giving a callable function which will generate a suitable cache object.
*/
-$wgObjectCaches = array(
- CACHE_NONE => array( 'class' => 'EmptyBagOStuff' ),
- CACHE_DB => array( 'class' => 'SqlBagOStuff', 'loggroup' => 'SQLBagOStuff' ),
+$wgObjectCaches = [
+ CACHE_NONE => [ 'class' => 'EmptyBagOStuff' ],
+ CACHE_DB => [ 'class' => 'SqlBagOStuff', 'loggroup' => 'SQLBagOStuff' ],
- CACHE_ANYTHING => array( 'factory' => 'ObjectCache::newAnything' ),
- CACHE_ACCEL => array( 'factory' => 'ObjectCache::getLocalServerInstance' ),
- CACHE_MEMCACHED => array( 'class' => 'MemcachedPhpBagOStuff', 'loggroup' => 'memcached' ),
+ CACHE_ANYTHING => [ 'factory' => 'ObjectCache::newAnything' ],
+ CACHE_ACCEL => [ 'factory' => 'ObjectCache::getLocalServerInstance' ],
+ CACHE_MEMCACHED => [ 'class' => 'MemcachedPhpBagOStuff', 'loggroup' => 'memcached' ],
- 'apc' => array( 'class' => 'APCBagOStuff' ),
- 'xcache' => array( 'class' => 'XCacheBagOStuff' ),
- 'wincache' => array( 'class' => 'WinCacheBagOStuff' ),
- 'memcached-php' => array( 'class' => 'MemcachedPhpBagOStuff', 'loggroup' => 'memcached' ),
- 'memcached-pecl' => array( 'class' => 'MemcachedPeclBagOStuff', 'loggroup' => 'memcached' ),
- 'hash' => array( 'class' => 'HashBagOStuff' ),
-);
+ 'apc' => [ 'class' => 'APCBagOStuff' ],
+ 'xcache' => [ 'class' => 'XCacheBagOStuff' ],
+ 'wincache' => [ 'class' => 'WinCacheBagOStuff' ],
+ 'memcached-php' => [ 'class' => 'MemcachedPhpBagOStuff', 'loggroup' => 'memcached' ],
+ 'memcached-pecl' => [ 'class' => 'MemcachedPeclBagOStuff', 'loggroup' => 'memcached' ],
+ 'hash' => [ 'class' => 'HashBagOStuff' ],
+];
'class' => 'WANObjectCache',
'cacheId' => CACHE_NONE,
'pool' => 'mediawiki-main-none',
'class' => 'WANObjectCache',
'cacheId' => CACHE_NONE,
'pool' => 'mediawiki-main-none',
/* Example of a simple single data-center cache:
'memcached-php' => array(
'class' => 'WANObjectCache',
/* Example of a simple single data-center cache:
'memcached-php' => array(
'class' => 'WANObjectCache',
+ *
+ * If the constant MW_NO_SESSION is defined, this is forced to 'disable'.
+ *
+ * If the constant MW_NO_SESSION_HANDLER is defined, this is ignored and PHP
+ * session handling will function independently of SessionHandler.
+ * SessionHandler and PHP's session handling may attempt to override each
+ * others' cookies.
+ *
* manualRecache: Set this to true to disable cache updates on web requests.
* Use maintenance/rebuildLocalisationCache.php instead.
*/
* manualRecache: Set this to true to disable cache updates on web requests.
* Use maintenance/rebuildLocalisationCache.php instead.
*/
'class' => 'LocalisationCache',
'store' => 'detect',
'storeClass' => false,
'storeDirectory' => false,
'manualRecache' => false,
'class' => 'LocalisationCache',
'store' => 'detect',
'storeClass' => false,
'storeDirectory' => false,
'manualRecache' => false,
* placed in the system message "interlanguage-link-sitename-xyz" where xyz is
* the prefix in this array.
*/
* placed in the system message "interlanguage-link-sitename-xyz" where xyz is
* the prefix in this array.
*/
* This array makes them not appear as a selectable language on the installer,
* and excludes them when running the transstat.php script.
*/
* This array makes them not appear as a selectable language on the installer,
* and excludes them when running the transstat.php script.
*/
* regexps : "/regexp/" matching problematic browsers. These browsers will
* be served encoded unicode in the edit box instead of real unicode.
*/
* regexps : "/regexp/" matching problematic browsers. These browsers will
* be served encoded unicode in the edit box instead of real unicode.
*/
* https://it.wikipedia.org/w/index.php?title=Luciano_Ligabue&diff=prev&oldid=8857361
*/
'/^Mozilla\/4\.0 \(compatible; MSIE 6.0; Windows NT 5.0; Google Wireless Transcoder;\)/'
* https://it.wikipedia.org/w/index.php?title=Luciano_Ligabue&diff=prev&oldid=8857361
*/
'/^Mozilla\/4\.0 \(compatible; MSIE 6.0; Windows NT 5.0; Google Wireless Transcoder;\)/'
* available skins in user preferences. If you want to remove a skin entirely,
* remove it from the skins/ directory and its entry from LocalSettings.php.
*/
* available skins in user preferences. If you want to remove a skin entirely,
* remove it from the skins/ directory and its entry from LocalSettings.php.
*/
// 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",
// 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",
'server' => 30 * 24 * 60 * 60, // 30 days
'client' => 30 * 24 * 60 * 60, // 30 days
'server' => 30 * 24 * 60 * 60, // 30 days
'client' => 30 * 24 * 60 * 60, // 30 days
'server' => 5 * 60, // 5 minutes
'client' => 5 * 60, // 5 minutes
'server' => 5 * 60, // 5 minutes
'client' => 5 * 60, // 5 minutes
/**
* Minimum available screen width at which a device can be considered a tablet/desktop
* The number is currently based on the device width of a Samsung Galaxy S5 mini and is low
/**
* Minimum available screen width at which a device can be considered a tablet/desktop
* The number is currently based on the device width of a Samsung Galaxy S5 mini and is low
* Note, recent changes feeds use only the first entry in this array (or
* $wgLocalInterwiki, if it is set). See $wgRCFeeds
*/
* Note, recent changes feeds use only the first entry in this array (or
* $wgLocalInterwiki, if it is set). See $wgRCFeeds
*/
* contain "content" which should be considered when generating a count of the
* number of articles in the wiki.
*/
* contain "content" which should be considered when generating a count of the
* number of articles in the wiki.
*/
* For example, "traditional" style wikis, where content and discussion are
* intermixed, could place NS_MAIN and NS_PROJECT namespaces in this array.
*/
* For example, "traditional" style wikis, where content and discussion are
* intermixed, could place NS_MAIN and NS_PROJECT namespaces in this array.
*/
* As of now, this only checks special pages. Redirects to pages in
* other namespaces cannot be invalidated by this variable.
*/
* 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', 'Redirect' );
+$wgInvalidRedirectTargets = [ 'Filepath', 'Mypage', 'Mytalk', 'Redirect' ];
* changed during LocalSettings.php, in particular, it can't be changed during
* an extension setup function.
*/
* changed during LocalSettings.php, in particular, it can't be changed during
* an extension setup function.
*/
'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'http://',
'https://', 'irc://', 'ircs://', 'magnet:', 'mailto:', 'mms://', 'news:',
'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:', 'ssh://',
'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:', '//'
'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'http://',
'https://', 'irc://', 'ircs://', 'magnet:', 'mailto:', 'mms://', 'news:',
'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:', 'ssh://',
'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:', '//'
-$wgCentralIdLookupProviders = array(
- 'local' => array( 'class' => 'LocalIdLookup' ),
-);
+$wgCentralIdLookupProviders = [
+ 'local' => [ 'class' => 'LocalIdLookup' ],
+];
'MinimalPasswordLength' => 8,
'MinimumPasswordLengthToLogin' => 1,
'PasswordCannotMatchUsername' => true,
'PasswordCannotBePopular' => 25,
'MinimalPasswordLength' => 8,
'MinimumPasswordLengthToLogin' => 1,
'PasswordCannotMatchUsername' => true,
'PasswordCannotBePopular' => 25,
'MinimalPasswordLength' => 8,
'MinimumPasswordLengthToLogin' => 1,
'PasswordCannotMatchUsername' => true,
'PasswordCannotBePopular' => 25,
'MinimalPasswordLength' => 8,
'MinimumPasswordLengthToLogin' => 1,
'PasswordCannotMatchUsername' => true,
'PasswordCannotBePopular' => 25,
'MinimalPasswordLength' => 8,
'MinimumPasswordLengthToLogin' => 1,
'PasswordCannotMatchUsername' => true,
'MinimalPasswordLength' => 8,
'MinimumPasswordLengthToLogin' => 1,
'PasswordCannotMatchUsername' => true,
'MinimalPasswordLength' => 1,
'PasswordCannotMatchUsername' => true,
'PasswordCannotMatchBlacklist' => true,
'MaximalPasswordLength' => 4096,
'MinimalPasswordLength' => 1,
'PasswordCannotMatchUsername' => true,
'PasswordCannotMatchBlacklist' => true,
'MaximalPasswordLength' => 4096,
'MinimalPasswordLength' => 'PasswordPolicyChecks::checkMinimalPasswordLength',
'MinimumPasswordLengthToLogin' => 'PasswordPolicyChecks::checkMinimumPasswordLengthToLogin',
'PasswordCannotMatchUsername' => 'PasswordPolicyChecks::checkPasswordCannotMatchUsername',
'PasswordCannotMatchBlacklist' => 'PasswordPolicyChecks::checkPasswordCannotMatchBlacklist',
'MaximalPasswordLength' => 'PasswordPolicyChecks::checkMaximalPasswordLength',
'PasswordCannotBePopular' => 'PasswordPolicyChecks::checkPopularPasswordBlacklist'
'MinimalPasswordLength' => 'PasswordPolicyChecks::checkMinimalPasswordLength',
'MinimumPasswordLengthToLogin' => 'PasswordPolicyChecks::checkMinimumPasswordLengthToLogin',
'PasswordCannotMatchUsername' => 'PasswordPolicyChecks::checkPasswordCannotMatchUsername',
'PasswordCannotMatchBlacklist' => 'PasswordPolicyChecks::checkPasswordCannotMatchBlacklist',
'MaximalPasswordLength' => 'PasswordPolicyChecks::checkMaximalPasswordLength',
'PasswordCannotBePopular' => 'PasswordPolicyChecks::checkPopularPasswordBlacklist'
* various bits of data. Setting all of these to false (or the whole variable to false)
* has the effect of disabling password resets entirely
*/
* various bits of data. Setting all of these to false (or the whole variable to false)
* has the effect of disabling password resets entirely
*/
* Array of usernames which may not be registered or logged in from
* Maintenance scripts can still use these
*/
* Array of usernames which may not be registered or logged in from
* Maintenance scripts can still use these
*/
'MediaWiki default', // Default 'Main Page' and MediaWiki: message pages
'Conversion script', // Used for the old Wikipedia software upgrade
'Maintenance script', // Maintenance scripts which perform editing, image import script
'MediaWiki default', // Default 'Main Page' and MediaWiki: message pages
'Conversion script', // Used for the old Wikipedia software upgrade
'Maintenance script', // Maintenance scripts which perform editing, image import script
'msg:proxyblocker', // For $wgProxyList and Special:Blockme (removed in 1.22)
'msg:spambot_username', // Used by cleanupSpam.php
'msg:autochange-username', // Used by anon category RC entries (parser functions, Lua & purges)
'msg:proxyblocker', // For $wgProxyList and Special:Blockme (removed in 1.22)
'msg:spambot_username', // Used by cleanupSpam.php
'msg:autochange-username', // Used by anon category RC entries (parser functions, Lua & purges)
* For instance, to disable editing on double clicks:
* $wgDefaultUserOptions ['editondblclick'] = 0;
*/
* For instance, to disable editing on double clicks:
* $wgDefaultUserOptions ['editondblclick'] = 0;
*/
* allocated a /19 if a generous HD-Ratio of 0.8 is used, so we will use that
* as our limit. As of 2012, blocking the whole world would require a /4 range.
*/
* allocated a /19 if a generous HD-Ratio of 0.8 is used, so we will use that
* as our limit. As of 2012, blocking the whole world would require a /4 range.
*/
$wgGroupPermissions['sysop']['editinterface'] = true;
$wgGroupPermissions['sysop']['editusercss'] = true;
$wgGroupPermissions['sysop']['edituserjs'] = true;
$wgGroupPermissions['sysop']['editinterface'] = true;
$wgGroupPermissions['sysop']['editusercss'] = true;
$wgGroupPermissions['sysop']['edituserjs'] = true;
$wgGroupPermissions['sysop']['import'] = true;
$wgGroupPermissions['sysop']['importupload'] = true;
$wgGroupPermissions['sysop']['move'] = true;
$wgGroupPermissions['sysop']['import'] = true;
$wgGroupPermissions['sysop']['importupload'] = true;
$wgGroupPermissions['sysop']['move'] = true;
* Improperly setting this could mean that your users will be unable to perform
* certain essential tasks, so use at your own risk!
*/
* Improperly setting this could mean that your users will be unable to perform
* certain essential tasks, so use at your own risk!
*/
* This allows users in the '*' group (i.e. any user) to remove themselves from
* any group that they happen to be in.
*/
* This allows users in the '*' group (i.e. any user) to remove themselves from
* any group that they happen to be in.
*/
* Title::getRestrictionTypes() will remove restrictions that are not
* applicable to a specific title (create and upload)
*/
* Title::getRestrictionTypes() will remove restrictions that are not
* applicable to a specific title (create and upload)
*/
-$wgRestrictionTypes = array( 'create', 'edit', 'move', 'upload' );
+$wgRestrictionTypes = [ 'create', 'edit', 'move', 'upload' ];
* - 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility
* - 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility
*/
* - 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility
* - 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility
*/
* 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.
* 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility.
*/
* 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.
* 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility.
*/
* 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.
* 'sysop' is not changed, since it really shouldn't be here.
*/
* 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.
* 'sysop' is not changed, since it really shouldn't be here.
*/
* Among other things, this may be useful to enforce read-restrictions
* which may otherwise be bypassed by using the template mechanism.
*/
* Among other things, this may be useful to enforce read-restrictions
* which may otherwise be bypassed by using the template mechanism.
*/
* If $wgEmailAuthentication is off, APCOND_EMAILCONFIRMED will be true for any
* user who has provided an e-mail address.
*/
* If $wgEmailAuthentication is off, APCOND_EMAILCONFIRMED will be true for any
* user who has provided an e-mail address.
*/
-$wgAutopromote = array(
- 'autoconfirmed' => array( '&',
- array( APCOND_EDITCOUNT, &$wgAutoConfirmCount ),
- array( APCOND_AGE, &$wgAutoConfirmAge ),
- ),
-);
+$wgAutopromote = [
+ 'autoconfirmed' => [ '&',
+ [ APCOND_EDITCOUNT, &$wgAutoConfirmCount ],
+ [ APCOND_AGE, &$wgAutoConfirmAge ],
+ ],
+];
/**
* Proxy whitelist, list of addresses that are assumed to be non-proxy despite
* what the other methods might say.
*/
/**
* Proxy whitelist, list of addresses that are assumed to be non-proxy despite
* what the other methods might say.
*/
- 'move' => array(
- 'newbie' => array( 2, 120 ),
- 'user' => array( 8, 60 ),
- ),
+ 'move' => [
+ 'newbie' => [ 2, 120 ],
+ 'user' => [ 8, 60 ],
+ ],
- 'emailuser' => array(
- 'ip' => array( 5, 86400 ),
- 'newbie' => array( 5, 86400 ),
- 'user' => array( 20, 86400 ),
- ),
+ 'emailuser' => [
+ 'ip' => [ 5, 86400 ],
+ 'newbie' => [ 5, 86400 ],
+ 'user' => [ 20, 86400 ],
+ ],
- 'renderfile-nonstandard' => array(
- 'ip' => array( 70, 30 ),
- 'user' => array( 70, 30 ),
- ),
+ 'renderfile-nonstandard' => [
+ 'ip' => [ 70, 30 ],
+ 'user' => [ 70, 30 ],
+ ],
- 'stashedit' => array(
- 'ip' => array( 30, 60 ),
- 'newbie' => array( 30, 60 ),
- ),
+ 'stashedit' => [
+ 'ip' => [ 30, 60 ],
+ 'newbie' => [ 30, 60 ],
+ ],
/**
* Array of IPs which should be excluded from rate limits.
* This may be useful for whitelisting NAT gateways for conferences, etc.
*/
/**
* Array of IPs which should be excluded from rate limits.
* This may be useful for whitelisting NAT gateways for conferences, etc.
*/
- * @warning Requires memcached.
+ * Value is an array of arrays. Each sub-array must have a key for count
+ * (ie count of how many attempts before throttle) and a key for seconds.
+ * If the key 'allIPs' (case sensitive) is present, then the limit is
+ * just per account instead of per IP per account.
+ *
+ * @since 1.27 allIps support and multiple limits added in 1.27. Prior
+ * to 1.27 this only supported having a single throttle.
+ * @warning Requires $wgMainCacheType to be enabled
-$wgPasswordAttemptThrottle = array( 'count' => 5, 'seconds' => 300 );
+$wgPasswordAttemptThrottle = [
+ // Short term limit
+ [ 'count' => 5, 'seconds' => 300 ],
+ // Long term limit. We need to balance the risk
+ // of somebody using this as a DoS attack to lock someone
+ // out of their account, and someone doing a brute force attack.
+ [ 'count' => 150, 'seconds' => 60*60*48 ],
+];
'createaccount' => 'administration',
'highvolume' => 'high-volume',
'createaccount' => 'administration',
'highvolume' => 'high-volume',
* - A string, in that case this is the path to a file
* containing the list of IP addresses, one per line
*/
* - A string, in that case this is the path to a file
* containing the list of IP addresses, one per line
*/
"$IP/tests/parser/parserTests.txt",
"$IP/tests/parser/extraParserTests.txt"
"$IP/tests/parser/parserTests.txt",
"$IP/tests/parser/extraParserTests.txt"
'application/x-suggestions+json' => false,
'application/x-suggestions+xml' => false,
'application/x-suggestions+json' => false,
'application/x-suggestions+xml' => false,
* Internally only Category: pages apply, but using this extensions (e.g. Semantic MediaWiki)
* can specify namespaces of pages they have special treatment for
*/
* Internally only Category: pages apply, but using this extensions (e.g. Semantic MediaWiki)
* can specify namespaces of pages they have special treatment for
*/
'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
'https://git.wikimedia.org/tree/%r/%H',
'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
'https://git.wikimedia.org/tree/%r/%H',
'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
'https://git.wikimedia.org/tree/%r/%H',
'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
'https://git.wikimedia.org/tree/%r/%H',
* List of Limits options to list in the Special:Recentchanges and
* Special:Recentchangeslinked pages.
*/
* List of Limits options to list in the Special:Recentchanges and
* Special:Recentchangeslinked pages.
*/
-$wgRCLinkLimits = array( 50, 100, 250, 500 );
+$wgRCLinkLimits = [ 50, 100, 250, 500 ];
-$wgRCLinkDays = array( 1, 3, 7, 14, 30 );
+$wgRCLinkDays = [ 1, 3, 7, 14, 30 ];
/**
* 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.
*/
/**
* 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.
*/
'redis' => 'RedisPubSubFeedEngine',
'udp' => 'UDPRCFeedEngine',
'redis' => 'RedisPubSubFeedEngine',
'udp' => 'UDPRCFeedEngine',
/**
* Available feeds objects.
* Should probably only be defined when a page is syndicated ie when
* $wgOut->isSyndicated() is true.
*/
/**
* Available feeds objects.
* Should probably only be defined when a page is syndicated ie when
* $wgOut->isSyndicated() is true.
*/
/**
* Which feed types should we provide by default? This can include 'rss',
* 'atom', neither, or both.
*/
/**
* Which feed types should we provide by default? This can include 'rss',
* 'atom', neither, or both.
*/
'letter' => 'newpageletter',
'title' => 'recentchanges-label-newpage',
'legend' => 'recentchanges-legend-newpage',
'letter' => 'newpageletter',
'title' => 'recentchanges-label-newpage',
'legend' => 'recentchanges-legend-newpage',
'letter' => 'minoreditletter',
'title' => 'recentchanges-label-minor',
'legend' => 'recentchanges-legend-minor',
'class' => 'minoredit',
'letter' => 'minoreditletter',
'title' => 'recentchanges-label-minor',
'legend' => 'recentchanges-legend-minor',
'class' => 'minoredit',
'letter' => 'boteditletter',
'title' => 'recentchanges-label-bot',
'legend' => 'recentchanges-legend-bot',
'class' => 'botedit',
'letter' => 'boteditletter',
'title' => 'recentchanges-label-bot',
'legend' => 'recentchanges-legend-bot',
'class' => 'botedit',
'letter' => 'unpatrolledletter',
'title' => 'recentchanges-label-unpatrolled',
'legend' => 'recentchanges-legend-unpatrolled',
'letter' => 'unpatrolledletter',
'title' => 'recentchanges-label-unpatrolled',
'legend' => 'recentchanges-legend-unpatrolled',
* If a user has the 'import' permission but not the 'importupload' permission,
* they will only be able to run imports through this transwiki interface.
*/
* If a user has the 'import' permission but not the 'importupload' permission,
* they will only be able to run imports through this transwiki interface.
*/
/**
* Array of files with list(s) of extension entry points to be used in
* maintenance/mergeMessageFileList.php
* @since 1.22
*/
/**
* Array of files with list(s) of extension entry points to be used in
* maintenance/mergeMessageFileList.php
* @since 1.22
*/
* the class name of the skin to load. Use Skin::getSkinNames() as an accessor
* if you wish to have access to the full list.
*/
* the class name of the skin to load. Use Skin::getSkinNames() as an accessor
* if you wish to have access to the full list.
*/
* - 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).
*/
* - 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).
*/
* @warning Hook handlers should be registered at file scope. Registering
* handlers after file scope can lead to unexpected results due to caching.
*/
* @warning Hook handlers should be registered at file scope. Registering
* handlers after file scope can lead to unexpected results due to caching.
*/
'refreshLinks' => 'RefreshLinksJob',
'deleteLinks' => 'DeleteLinksJob',
'htmlCacheUpdate' => 'HTMLCacheUpdateJob',
'refreshLinks' => 'RefreshLinksJob',
'deleteLinks' => 'DeleteLinksJob',
'htmlCacheUpdate' => 'HTMLCacheUpdateJob',
'cdnPurge' => 'CdnPurgeJob',
'enqueue' => 'EnqueueJob', // local queue for multi-DC setups
'null' => 'NullJob'
'cdnPurge' => 'CdnPurgeJob',
'enqueue' => 'EnqueueJob', // local queue for multi-DC setups
'null' => 'NullJob'
* machine on your cluster has 'outside' web access you could restrict uploadFromUrl )
* These settings should be global to all wikis.
*/
* machine on your cluster has 'outside' web access you could restrict uploadFromUrl )
* These settings should be global to all wikis.
*/
* Job types that do not have explicit configuration will use the 'default' config.
* These settings should be global to all wikis.
*/
* Job types that do not have explicit configuration will use the 'default' config.
* These settings should be global to all wikis.
*/
-$wgJobTypeConf = array(
- 'default' => array( 'class' => 'JobQueueDB', 'order' => 'random', 'claimTTL' => 3600 ),
-);
+$wgJobTypeConf = [
+ 'default' => [ 'class' => 'JobQueueDB', 'order' => 'random', 'claimTTL' => 3600 ],
+];
/**
* Which aggregator to use for tracking which queues have jobs.
* These settings should be global to all wikis.
*/
/**
* Which aggregator to use for tracking which queues have jobs.
* These settings should be global to all wikis.
*/
/**
* Additional functions to be performed with updateSpecialPages.
* Expensive Querypages are already updated.
*/
/**
* Additional functions to be performed with updateSpecialPages.
* Expensive Querypages are already updated.
*/
-$wgSpecialPageCacheUpdates = array(
- 'Statistics' => array( 'SiteStatsUpdate', 'cacheUpdate' )
-);
+$wgSpecialPageCacheUpdates = [
+ 'Statistics' => [ 'SiteStatsUpdate', 'cacheUpdate' ]
+];
* $wgExceptionHooks[] = array( $class, $funcname )
* Hooks should return strings or false
*/
* $wgExceptionHooks[] = array( $class, $funcname )
* Hooks should return strings or false
*/
* have been added, so the categorylinks table needs to be rebuilt).
* This array can be added to by extensions.
*/
* have been added, so the categorylinks table needs to be rebuilt).
* This array can be added to by extensions.
*/
* @since 1.19, if you follow the naming convention log-name-TYPE,
* where TYPE is your log type, yoy don't need to use this array.
*/
* @since 1.19, if you follow the naming convention log-name-TYPE,
* where TYPE is your log type, yoy don't need to use this array.
*/
'' => 'all-logs-page',
'block' => 'blocklogpage',
'protect' => 'protectlogpage',
'' => 'all-logs-page',
'block' => 'blocklogpage',
'protect' => 'protectlogpage',
'patrol' => 'patrol-log-page',
'merge' => 'mergelog',
'suppress' => 'suppressionlog',
'patrol' => 'patrol-log-page',
'merge' => 'mergelog',
'suppress' => 'suppressionlog',
* @since 1.19, if you follow the naming convention log-description-TYPE,
* where TYPE is your log type, yoy don't need to use this array.
*/
* @since 1.19, if you follow the naming convention log-description-TYPE,
* where TYPE is your log type, yoy don't need to use this array.
*/
'' => 'alllogstext',
'block' => 'blocklogtext',
'delete' => 'dellogpagetext',
'' => 'alllogstext',
'block' => 'blocklogtext',
'delete' => 'dellogpagetext',
'rights' => 'rightslogtext',
'suppress' => 'suppressionlogtext',
'upload' => 'uploadlogpagetext',
'rights' => 'rightslogtext',
'suppress' => 'suppressionlogtext',
'upload' => 'uploadlogpagetext',
'block/block' => 'BlockLogFormatter',
'block/reblock' => 'BlockLogFormatter',
'block/unblock' => 'BlockLogFormatter',
'block/block' => 'BlockLogFormatter',
'block/reblock' => 'BlockLogFormatter',
'block/unblock' => 'BlockLogFormatter',
'upload/overwrite' => 'UploadLogFormatter',
'upload/revert' => 'UploadLogFormatter',
'upload/upload' => 'UploadLogFormatter',
'upload/overwrite' => 'UploadLogFormatter',
'upload/revert' => 'UploadLogFormatter',
'upload/upload' => 'UploadLogFormatter',
* 'foo' => false The action is disabled; show an error message
* Unsetting core actions will probably cause things to complain loudly.
*/
* 'foo' => false The action is disabled; show an error message
* Unsetting core actions will probably cause things to complain loudly.
*/
* Extension modules may override the core modules.
* See ApiMain::$Modules for a list of the core modules.
*/
* Extension modules may override the core modules.
* See ApiMain::$Modules for a list of the core modules.
*/
'MIMEsearch', // aiprop=mime
'LinkSearch', // list=exturlusage
'FileDuplicateSearch', // prop=duplicatefiles
'MIMEsearch', // aiprop=mime
'LinkSearch', // list=exturlusage
'FileDuplicateSearch', // prop=duplicatefiles
* Extensions acting as Ajax callbacks must register here
* @deprecated (officially) since 1.27; use the API instead
*/
* Extensions acting as Ajax callbacks must register here
* @deprecated (officially) since 1.27; use the API instead
*/
/**
* Domains that should not be allowed to make AJAX requests,
* even if they match one of the domains allowed by $wgCrossSiteAJAXdomains
* Uses the same syntax as $wgCrossSiteAJAXdomains
*/
/**
* Domains that should not be allowed to make AJAX requests,
* even if they match one of the domains allowed by $wgCrossSiteAJAXdomains
* Uses the same syntax as $wgCrossSiteAJAXdomains
*/
CONTENT_MODEL_WIKITEXT, // Just for completeness, wikitext will always be parsed.
CONTENT_MODEL_JAVASCRIPT, // Make categories etc work, people put them into comments.
CONTENT_MODEL_CSS, // Make categories etc work, people put them into comments.
CONTENT_MODEL_WIKITEXT, // Just for completeness, wikitext will always be parsed.
CONTENT_MODEL_JAVASCRIPT, // Make categories etc work, people put them into comments.
CONTENT_MODEL_CSS, // Make categories etc work, people put them into comments.
# Timeout in seconds
'timeout' => 360,
# 'domain' is set to $wgCanonicalServer in Setup.php
'forwardCookies' => false,
'HTTPProxy' => null
# Timeout in seconds
'timeout' => 360,
# 'domain' is set to $wgCanonicalServer in Setup.php
'forwardCookies' => false,
'HTTPProxy' => null