Go to the documentation of this file.
50 if ( !defined(
'MEDIAWIKI' ) ) {
51 echo
"This file is part of MediaWiki and is not a valid entry point\n";
68 $wgConfigRegistry =
array(
69 'main' =>
'GlobalVarConfig::newInstance'
76 $wgVersion =
'1.23.5';
81 $wgSitename =
'MediaWiki';
108 $wgCanonicalServer =
false;
124 $wgScriptPath =
'/wiki';
143 $wgUsePathInfo = ( strpos( PHP_SAPI,
'cgi' ) ===
false ) &&
144 ( strpos( PHP_SAPI,
'apache2filter' ) ===
false ) &&
145 ( strpos( PHP_SAPI,
'isapi' ) ===
false );
155 $wgScriptExtension =
'.php';
190 $wgLoadScript =
false;
197 $wgStylePath =
false;
198 $wgStyleSheetPath = &$wgStylePath;
205 $wgLocalStylePath =
false;
212 $wgExtensionAssetsPath =
false;
219 $wgStyleDirectory =
false;
234 $wgUploadPath =
false;
239 $wgUploadDirectory =
false;
245 $wgFileCacheDirectory =
false;
257 $wgFavicon =
'/favicon.ico';
264 $wgAppleTouchIcon =
false;
280 $wgTmpDirectory =
false;
287 $wgUploadBaseUrl =
'';
296 $wgUploadStashScalerBaseUrl =
false;
324 $wgEnableUploads =
false;
329 $wgUploadStashMaxAge = 6 * 3600;
334 $wgAllowImageMoving =
true;
344 $wgEnableAsyncUploads =
false;
349 $wgIllegalFileChars =
":";
354 $wgFileStore =
array();
360 $wgDeletedDirectory =
false;
365 $wgImgAuthDetails =
false;
372 $wgImgAuthPublicTest =
true;
388 $wgImgAuthUrlPathMap =
array();
474 $wgLocalFileRepo =
false;
479 $wgForeignFileRepos =
array();
486 $wgUseInstantCommons =
false;
519 $wgFileBackends =
array();
545 $wgShowEXIF = function_exists(
'exif_read_data' );
552 $wgUpdateCompatibleMetadata =
false;
567 $wgUseSharedUploads =
false;
572 $wgSharedUploadPath =
"http://commons.wikimedia.org/shared/images";
577 $wgFetchCommonsDescriptions =
false;
582 $wgSharedUploadDirectory =
"/var/www/wiki3/images";
588 $wgSharedUploadDBname =
false;
593 $wgSharedUploadDBprefix =
'';
599 $wgCacheSharedUploads =
true;
606 $wgAllowCopyUploads =
false;
612 $wgAllowAsyncCopyUploads =
false;
619 $wgCopyUploadsDomains =
array();
626 $wgCopyUploadsFromSpecialUpload =
false;
632 $wgCopyUploadProxy =
false;
642 $wgCopyUploadTimeout =
false;
653 $wgCopyUploadAsyncTimeout =
false;
671 $wgMaxUploadSize = 1024 * 1024 * 100; # 100MB
683 $wgUploadNavigationUrl =
false;
690 $wgUploadMissingFileUrl =
false;
703 $wgThumbnailScriptPath =
false;
708 $wgSharedThumbnailScriptPath =
false;
723 $wgHashedUploadDirectory =
true;
730 $wgHashedSharedUploadDirectory =
true;
740 $wgRepositoryBaseUrl =
"http://commons.wikimedia.org/wiki/File:";
757 $wgFileBlacklist =
array(
758 # HTML may contain cookie-stealing JavaScript and web bugs
759 'html',
'htm',
'js',
'jsb',
'mhtml',
'mht',
'xhtml',
'xht',
761 'php',
'phtml',
'php3',
'php4',
'php5',
'phps',
763 'shtml',
'jhtml',
'pl',
'py',
'cgi',
764 # May contain harmful executables
for Windows victims
765 'exe',
'scr',
'dll',
'msi',
'vbs',
'bat',
'com',
'pif',
'cmd',
'vxd',
'cpl' );
771 $wgMimeTypeBlacklist =
array(
772 # HTML may contain cookie-stealing JavaScript and web bugs
773 'text/html',
'text/javascript',
'text/x-javascript',
'application/x-shellscript',
775 'application/x-php',
'text/x-php',
777 'text/x-python',
'text/x-perl',
'text/x-bash',
'text/x-sh',
'text/x-csh',
778 # Client-side hazards
on Internet Explorer
779 'text/scriptlet',
'application/x-msdownload',
781 'application/x-msmetafile',
789 $wgAllowJavaUploads =
false;
796 $wgCheckFileExtensions =
true;
804 $wgStrictFileExtensions =
true;
812 $wgDisableUploadScriptChecks =
false;
817 $wgUploadSizeWarning =
false;
829 $wgTrustedMediaFormats =
array(
835 #
"application/x-shockwave-flash",
842 $wgMediaHandlers =
array(
843 'image/jpeg' =>
'JpegHandler',
844 'image/png' =>
'PNGHandler',
845 'image/gif' =>
'GIFHandler',
846 'image/tiff' =>
'TiffHandler',
847 'image/x-ms-bmp' =>
'BmpHandler',
848 'image/x-bmp' =>
'BmpHandler',
849 'image/x-xcf' =>
'XCFHandler',
850 'image/svg+xml' =>
'SvgHandler',
851 'image/svg' =>
'SvgHandler',
852 'image/vnd.djvu' =>
'DjVuHandler',
853 'image/x.djvu' =>
'DjVuHandler',
854 'image/x-djvu' =>
'DjVuHandler',
863 $wgContentHandlers =
array(
879 $wgUseImageResize =
true;
889 $wgUseImageMagick =
false;
894 $wgImageMagickConvertCommand =
'/usr/bin/convert';
899 $wgSharpenParameter =
'0x0.4';
904 $wgSharpenReductionThreshold = 0.85;
910 $wgImageMagickTempDir =
false;
924 $wgCustomConvertCommand =
false;
931 $wgJpegTran =
'/usr/bin/jpegtran';
937 $wgExiv2Command =
'/usr/bin/exiv2';
948 $wgSVGConverters =
array(
949 'ImageMagick' =>
'$path/convert -background white -thumbnail $widthx$height\! $input PNG:$output',
950 'sodipodi' =>
'$path/sodipodi -z -w $width -f $input -e $output',
951 'inkscape' =>
'$path/inkscape -z -w $width -f $input -e $output',
952 'batik' =>
'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d '
954 'rsvg' =>
'$path/rsvg -w $width -h $height $input $output',
955 'imgserv' =>
'$path/imgserv-wrapper -i svg -o png -w$width $input $output',
956 'ImagickExt' =>
array(
'SvgHandler::rasterizeImagickExt' ),
962 $wgSVGConverter =
'ImageMagick';
967 $wgSVGConverterPath =
'';
972 $wgSVGMaxSize = 2048;
978 $wgSVGMetadataCutoff = 262144;
991 $wgAllowTitlesInSVG =
false;
1006 $wgMaxImageArea = 1.25e7;
1014 $wgMaxAnimatedGifArea = 1.25e7;
1029 $wgTiffThumbnailType =
false;
1037 $wgThumbnailEpoch =
'20030516000000';
1045 $wgAttemptFailureEpoch = 1;
1058 $wgIgnoreImageErrors =
false;
1067 $wgGenerateThumbnailOnParse =
true;
1072 $wgShowArchiveThumbnails =
true;
1079 $wgEnableAutoRotation =
null;
1086 $wgAntivirus =
null;
1122 $wgAntivirusSetup =
array(
1126 'command' =>
'clamscan --no-summary ',
1133 'messagepattern' =>
'/.*?:(.*)/sim',
1140 $wgAntivirusRequired =
true;
1145 $wgVerifyMimeType =
true;
1152 $wgMimeTypeFile =
'includes/mime.types';
1158 $wgMimeInfoFile =
'includes/mime.info';
1171 $wgMimeDetectorCommand =
null;
1184 $wgXMLMimeTypes =
array(
1185 'http://www.w3.org/2000/svg:svg' =>
'image/svg+xml',
1186 'svg' =>
'image/svg+xml',
1187 'http://www.lysator.liu.se/~alla/dia/:diagram' =>
'application/x-dia-diagram',
1188 'http://www.w3.org/1999/xhtml:html' =>
'text/html',
1189 'html' =>
'text/html',
1200 $wgImageLimits =
array(
1213 $wgThumbLimits =
array(
1225 $wgGalleryOptions =
array(
1226 'imagesPerRow' => 0,
1227 'imageWidth' => 120,
1228 'imageHeight' => 120,
1229 'captionLength' => 25,
1230 'showBytes' =>
true,
1231 'mode' =>
'traditional',
1239 $wgThumbUpright = 0.75;
1244 $wgDirectoryMode = 0777;
1254 $wgResponsiveImages =
true;
1273 $wgDjvuRenderer =
null;
1296 $wgDjvuToXML =
null;
1303 $wgDjvuPostProcessor =
'pnmtojpeg';
1308 $wgDjvuOutputExtension =
'jpg';
1319 $serverName = substr( $wgServer, strrpos( $wgServer,
'/' ) + 1 );
1324 $wgEmergencyContact =
'wikiadmin@' . $serverName;
1331 $wgPasswordSender =
'apache@' . $serverName;
1333 unset( $serverName ); # Don
't leak local variables to global scope
1340 $wgPasswordSenderName = 'MediaWiki Mail
';
1347 $wgNoReplyAddress = 'reply@not.possible
';
1354 $wgEnableEmail = true;
1360 $wgEnableUserEmail = true;
1370 $wgUserEmailUseReplyTo = false;
1376 $wgPasswordReminderResendTime = 24;
1381 $wgNewPasswordExpiry = 3600 * 24 * 7;
1386 $wgUserEmailConfirmationTokenExpiry = 7 * 24 * 60 * 60;
1392 $wgPasswordExpirationDays = false;
1398 $wgPasswordExpireGrace = 3600 * 24 * 7; // 7 days
1423 $wgAdditionalMailParams = null;
1429 $wgAllowHTMLEmail = false;
1435 $wgEnotifFromEditor = false;
1437 // TODO move UPO to preferences probably ?
1438 # If set to true, users get a corresponding option in their preferences and can choose to
1439 # enable or disable at their discretion
1440 # If set to false, the corresponding input form on the user preference page is suppressed
1441 # It call this to be a "user-preferences-option (UPO)"
1448 $wgEmailAuthentication = true;
1453 $wgEnotifWatchlist = false;
1459 $wgEnotifUserTalk = false;
1465 $wgEnotifRevealEditorAddress = false;
1471 $wgEnotifMinorEdits = true;
1480 $wgEnotifImpersonal = false;
1486 $wgEnotifMaxRecips = 500;
1492 $wgEnotifUseJobQ = false;
1497 $wgEnotifUseRealName = false;
1503 $wgUsersNotifiedOnAllChanges = array();
1504 # end of email settings
1507 /************************************************************************//**
1508 * @name Database settings
1515 $wgDBserver = 'localhost
';
1525 $wgDBname = 'my_wiki
';
1530 $wgDBuser = 'wikiuser
';
1540 $wgDBtype = 'mysql
';
1550 $wgDBcompress = false;
1555 $wgDBadminuser = null;
1560 $wgDBadminpassword = null;
1568 $wgSearchType = null;
1577 $wgSearchTypeAlternatives = null;
1587 $wgDBTableOptions = 'ENGINE=InnoDB
';
1600 $wgDBmwschema = null;
1605 $wgSQLiteDataDir = '';
1612 $wgAllDBsAreLocalhost = false;
1641 $wgSharedPrefix = false;
1646 $wgSharedTables = array( 'user', 'user_properties
' );
1698 $wgDBservers = false;
1715 $wgMasterWaitTimeout = 10;
1720 $wgDBerrorLog = false;
1740 $wgDBerrorLogTZ = false;
1745 $wgDBClusterTimeout = 10;
1752 $wgDBAvgStatusPoll = 2000;
1770 $wgDBmysql5 = false;
1799 $wgDBOracleDRCP = false;
1806 $wgLocalDatabases = array();
1813 $wgSlaveLagWarning = 10;
1818 $wgSlaveLagCritical = 30;
1823 $wgDBWindowsAuthentication = false;
1824 # End of DB settings }
1827 /************************************************************************//**
1828 * @name Text storage
1838 $wgCompressRevisions = false;
1851 $wgExternalStores = array();
1867 $wgExternalServers = array();
1883 $wgDefaultExternalStore = false;
1891 $wgRevisionCacheExpiry = 0;
1892 # end text storage }
1895 /************************************************************************//**
1896 * @name Performance hacks and limits
1903 $wgMiserMode = false;
1908 $wgDisableQueryPages = false;
1913 $wgQueryCacheLimit = 1000;
1918 $wgWantedPagesThreshold = 1;
1923 $wgAllowSlowParserFunctions = false;
1928 $wgAllowSchemaUpdates = true;
1937 $wgAntiLockFlags = 0;
1942 $wgMaxArticleSize = 2048;
1948 $wgMemoryLimit = "50M";
1949 # end performance hacks }
1952 /************************************************************************//**
1953 * @name Cache settings
1965 $wgCacheDirectory = false;
1984 $wgMainCacheType = CACHE_NONE;
1992 $wgMessageCacheType = CACHE_ANYTHING;
2000 $wgParserCacheType = CACHE_ANYTHING;
2007 $wgSessionCacheType = CACHE_ANYTHING;
2017 $wgLanguageConverterCacheType = CACHE_ANYTHING;
2032 $wgObjectCaches = array(
2052 $wgParserCacheExpireTime = 86400;
2059 $wgSessionsInMemcached = false;
2067 $wgSessionsInObjectCache = false;
2073 $wgObjectCacheSessionExpiry = 3600;
2081 $wgSessionHandler = null;
2086 $wgMemCachedDebug = false;
2091 $wgMemCachedServers = array( '127.0.0.1:11211
' );
2097 $wgMemCachedPersistent = false;
2102 $wgMemCachedTimeout = 500000;
2108 $wgUseLocalMessageCache = false;
2116 $wgAdaptiveMessageCache = false;
2138 $wgLocalisationCacheConf = array(
2140 'store
' => 'detect
',
2141 'storeClass
' => false,
2142 'storeDirectory
' => false,
2143 'manualRecache
' => false,
2149 $wgCachePages = true;
2159 $wgCacheEpoch = '20030516000000
';
2168 $wgStyleVersion = '303
';
2177 $wgUseFileCache = false;
2185 $wgFileCacheDepth = 2;
2196 $wgEnableParserCache = true;
2202 $wgRenderHashAppend = '';
2213 $wgEnableSidebarCache = false;
2218 $wgSidebarCacheExpiry = 86400;
2240 $wgClockSkewFudge = 5;
2251 $wgInvalidateCacheOnLocalSettingsChange = true;
2252 # end of cache settings
2255 /************************************************************************//**
2256 * @name HTTP proxy (Squid) settings
2258 * Many of these settings apply to any HTTP proxy used in front of MediaWiki,
2259 * although they are referred to as Squid settings for historical reasons.
2261 * Achieving a high hit ratio with an HTTP proxy requires special
2262 * configuration. See https://www.mediawiki.org/wiki/Manual:Squid_caching for
2272 $wgUseSquid = false;
2292 $wgVaryOnXFP = false;
2302 $wgInternalServer = false;
2310 $wgSquidMaxage = 18000;
2315 $wgForcedRawSMaxage = 300;
2325 $wgSquidServers = array();
2333 $wgSquidServersNoPurge = array();
2338 $wgMaxSquidPurgeTitles = 400;
2359 $wgSquidPurgeUseHostHeader = true;
2412 $wgHTCPRouting = array();
2423 $wgHTCPMulticastRouting = null;
2439 $wgHTCPMulticastAddress = false;
2454 $wgHTCPMulticastTTL = 1;
2459 $wgUsePrivateIPs = false;
2460 # end of HTTP proxy settings
2463 /************************************************************************//**
2464 * @name Language, regional and character encoding settings
2483 $wgLanguageCode = 'en
';
2489 $wgLangObjCacheSize = 10;
2500 $wgGrammarForms = array();
2505 $wgInterwikiMagic = true;
2510 $wgHideInterlanguageLinks = false;
2515 $wgExtraLanguageNames = array();
2523 $wgDummyLanguageCodes = array(
2526 'be-x-old
' => 'be-tarask
',
2530 'qqq
' => 'qqq
', # Used for message documentation.
2531 'qqx
' => 'qqx
', # Used for viewing message keys.
2534 'zh-classical
' => 'lzh
',
2535 'zh-min-nan
' => 'nan
',
2546 $wgEditEncoding = '';
2556 $wgFixArabicUnicode = true;
2567 $wgFixMalayalamUnicode = true;
2579 $wgAllUnicodeFixes = false;
2591 $wgLegacyEncoding = false;
2598 $wgBrowserBlackList = array(
2609 '/^Mozilla\/2\.[^ ]+ [^(]*?\((?!compatible).*; [UIN]/
',
2610 '/^Mozilla\/3\.[^ ]+ [^(]*?\((?!compatible).*; [UIN]/
',
2611 '/^Mozilla\/4\.[^ ]+ [^(]*?\((?!compatible).*; [UIN]/
',
2626 '/^Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/
',
2632 '/^Mozilla\/4\.0 \(compatible; MSIE 6.0; Windows NT 5.0; Google Wireless Transcoder;\)/
'
2647 $wgLegacySchemaConversion = false;
2653 $wgAmericanDates = false;
2659 $wgTranslateNumerals = true;
2665 $wgUseDatabaseMessages = true;
2670 $wgMsgCacheExpiry = 86400;
2675 $wgMaxMsgCacheEntrySize = 10000;
2680 $wgDisableLangConversion = false;
2685 $wgDisableTitleConversion = false;
2690 $wgCanonicalLanguageLinks = true;
2695 $wgDefaultLanguageVariant = false;
2706 $wgDisabledVariants = array();
2725 $wgVariantArticlePath = false;
2732 $wgLoginLanguageSelector = false;
2753 $wgForceUIMsgAsContentMsg = array();
2778 $wgLocaltimezone = null;
2789 $wgLocalTZoffset = null;
2790 # End of language/charset settings
2793 /*************************************************************************//**
2794 * @name Output format and skin settings
2801 $wgMimeType = 'text/html
';
2810 $wgJsMimeType = null;
2819 $wgXhtmlDefaultNamespace = null;
2837 $wgHtml5Version = null;
2843 $wgAllowRdfaAttributes = false;
2848 $wgAllowMicrodataAttributes = false;
2866 $wgWellFormedXml = true;
2882 $wgXhtmlNamespaces = array();
2889 $wgShowIPinHeader = true;
2903 $wgExtraSubtitle = '';
2908 $wgSiteSupportPage = '';
2914 $wgValidateAllHtml = false;
2922 $wgDefaultSkin = 'vector
';
2936 $wgSkipSkins = array();
2943 $wgAllowUserJs = false;
2950 $wgAllowUserCss = false;
2957 $wgAllowUserCssPrefs = true;
2962 $wgUseSiteJs = true;
2967 $wgUseSiteCss = true;
2973 $wgBreakFrames = false;
2994 $wgEditPageFrameOptions = 'DENY
';
3005 $wgApiFrameOptions = 'DENY
';
3010 $wgDisableOutputCompression = false;
3021 $wgExperimentalHtmlIds = false;
3052 $wgFooterIcons = array(
3053 "copyright" => array(
3054 "copyright" => array(), // placeholder for the built in copyright icon
3056 "poweredby" => array(
3057 "mediawiki" => array(
3058 "src" => null, // Defaults to "$wgStylePath/common/images/poweredby_mediawiki_88x31.png"
3059 "url" => "//www.mediawiki.org/",
3060 "alt" => "Powered by MediaWiki",
3071 $wgUseCombinedLoginLink = false;
3078 $wgVectorUseSimpleSearch = true;
3085 $wgVectorUseIconWatch = true;
3090 $wgEdititis = false;
3103 $wgSend404Code = true;
3113 $wgShowRollbackEditCount = 10;
3121 $wgEnableCanonicalServerLink = false;
3122 # End of output format settings }
3125 /*************************************************************************//**
3126 * @name Resource loader settings
3147 $wgResourceModules = array();
3162 $wgResourceLoaderSources = array();
3168 $wgResourceBasePath = null;
3186 $wgResourceLoaderMaxage = array(
3187 'versioned
' => array(
3188 'server' => 30 * 24 * 60 * 60, // 30 days
3189 'client
' => 30 * 24 * 60 * 60, // 30 days
3191 'unversioned
' => array(
3192 'server' => 5 * 60, // 5 minutes
3193 'client
' => 5 * 60, // 5 minutes
3202 $wgResourceLoaderDebug = false;
3209 $wgResourceLoaderUseESI = false;
3215 $wgResourceLoaderMinifierStatementsOnOwnLine = false;
3222 $wgResourceLoaderMinifierMaxLineLength = 1000;
3228 $wgIncludeLegacyJavaScript = true;
3248 $wgPreloadJavaScriptMwUtil = false;
3275 $wgLegacyJavaScriptGlobals = true;
3290 $wgResourceLoaderMaxQueryLength = false;
3299 $wgResourceLoaderValidateJS = true;
3309 $wgResourceLoaderValidateStaticJS = false;
3316 $wgResourceLoaderExperimentalAsyncLoading = false;
3336 $wgResourceLoaderLESSVars = array();
3349 $wgResourceLoaderLESSFunctions = array(
3367 $wgResourceLoaderLESSImportPaths = array(
3368 "$IP/resources/src/mediawiki.less/",
3377 $wgResourceLoaderStorageEnabled = false;
3385 $wgResourceLoaderStorageVersion = 1;
3386 # End of resource loader settings }
3389 /*************************************************************************//**
3390 * @name Page title and interwiki link settings
3398 $wgMetaNamespace = false;
3407 $wgMetaNamespaceTalk = false;
3435 $wgExtraNamespaces = array();
3443 $wgExtraGenderNamespaces = array();
3463 $wgNamespaceAliases = array();
3492 $wgLegalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+
";
3499 $wgLocalInterwiki = false;
3509 $wgLocalInterwikis = array();
3514 $wgInterwikiExpiry = 10800;
3534 $wgInterwikiCache = false;
3542 $wgInterwikiScopes = 3;
3547 $wgInterwikiFallbackSite = 'wiki';
3548 # end of Interwiki caching settings.
3566 $wgRedirectSources = false;
3575 $wgCapitalLinks = true;
3591 $wgCapitalLinkOverrides = array();
3597 $wgNamespacesWithSubpages = array(
3600 NS_USER_TALK => true,
3602 NS_PROJECT_TALK => true,
3603 NS_FILE_TALK => true,
3604 NS_MEDIAWIKI => true,
3605 NS_MEDIAWIKI_TALK => true,
3606 NS_TEMPLATE_TALK => true,
3608 NS_HELP_TALK => true,
3609 NS_CATEGORY_TALK => true
3621 $wgTrackingCategories = array(
3624 'expensive-parserfunction-category',
3625 'post-expand-template-argument-category',
3626 'post-expand-template-inclusion-category',
3627 'hidden-category-category',
3628 'broken-file-category',
3637 $wgContentNamespaces = array( NS_MAIN );
3644 $wgMaxRedirects = 1;
3656 $wgInvalidRedirectTargets = array( 'Filepath', 'Mypage', 'Mytalk', 'Redirect' );
3657 # End of title and interwiki settings }
3660 /************************************************************************//**
3661 * @name Parser settings
3662 * These settings configure the transformation from wikitext to HTML.
3687 $wgParserConf = array(
3688 'class' => 'Parser',
3689 #'preprocessorClass' => 'Preprocessor_Hash',
3695 $wgMaxTocLevel = 999;
3701 $wgMaxPPNodeCount = 1000000;
3712 $wgMaxGeneratedPPNodeCount = 1000000;
3720 $wgMaxTemplateDepth = 40;
3725 $wgMaxPPExpandDepth = 40;
3730 $wgUrlProtocols = array(
3734 'ftps://', // If we allow ftp:// we should allow the secure version.
3736 'sftp://', // SFTP > FTP
3738 'ircs://', // @bug 28503
3739 'xmpp:', // Another open communication protocol
3743 'telnet://', // Well if we're going to support the above.. -ævar
3744 'nntp://', // @bug 3808 RFC 1738
3747 'tel:', // If we can make emails linkable, why not phone numbers?
3748 'sms:', // Likewise this is standardized too
3753 'bitcoin:', // Even registerProtocolHandler whitelists this along with mailto:
3754 'magnet:', // No reason to reject torrents over magnet: when they're allowed over http://
3755 'urn:', // Allow URNs to be used in Microdata/RDFa <link ... href="urn:...
">s
3756 'geo:', // urls define geo locations, they're useful in Microdata/RDFa and for coordinates
3757 '//', // for protocol-relative URLs
3763 $wgCleanSignatures = true;
3768 $wgAllowExternalImages = false;
3782 $wgAllowExternalImagesFrom = '';
3793 $wgEnableImageWhitelist = true;
3803 $wgAllowImageTag = false;
3825 $wgAlwaysUseTidy = false;
3830 $wgTidyBin = 'tidy';
3835 $wgTidyConf = $IP . '/includes/tidy.conf';
3845 $wgTidyInternal = extension_loaded( 'tidy' );
3851 $wgDebugTidy = false;
3863 $wgExternalLinkTarget = false;
3871 $wgNoFollowLinks = true;
3877 $wgNoFollowNsExceptions = array();
3893 $wgNoFollowDomainExceptions = array( 'mediawiki.org' );
3898 $wgAllowDisplayTitle = true;
3905 $wgRestrictDisplayTitle = true;
3911 $wgExpensiveParserFunctionLimit = 100;
3917 $wgPreprocessorCacheThreshold = 1000;
3922 $wgEnableScaryTranscluding = false;
3928 $wgTranscludeCacheExpiry = 3600;
3929 # end of parser settings }
3932 /************************************************************************//**
3957 $wgArticleCountMethod = null;
3963 $wgUseCommaCount = false;
3972 $wgHitcounterUpdateFreq = 1;
3981 $wgActiveUserDays = 30;
3982 # End of statistics }
3985 /************************************************************************//**
3986 * @name User accounts, authentication
3993 $wgPasswordSalt = true;
3999 $wgMinimalPasswordLength = 1;
4006 $wgInvalidPasswordReset = true;
4014 $wgPasswordResetRoutes = array(
4022 $wgMaxSigChars = 255;
4028 $wgMaxNameChars = 255;
4034 $wgReservedUsernames = array(
4035 'MediaWiki default', // Default 'Main Page' and MediaWiki: message pages
4036 'Conversion script', // Used for the old Wikipedia software upgrade
4037 'Maintenance script', // Maintenance scripts which perform editing, image import script
4038 'Template namespace initialisation script', // Used in 1.2->1.3 upgrade
4039 'ScriptImporter', // Default user name used by maintenance/importSiteScripts.php
4040 'msg:double-redirect-fixer', // Automatic double redirect fix
4041 'msg:usermessage-editor', // Default user for leaving user messages
4042 'msg:proxyblocker', // For $wgProxyList and Special:Blockme (removed in 1.22)
4051 $wgDefaultUserOptions = array(
4052 'ccmeonemails' => 0,
4054 'date' => 'default',
4057 'editfont' => 'default',
4058 'editondblclick' => 0,
4059 'editsectiononrightclick' => 0,
4060 'enotifminoredits' => 0,
4061 'enotifrevealaddr' => 0,
4062 'enotifusertalkpages' => 1,
4063 'enotifwatchlistpages' => 1,
4064 'extendwatchlist' => 0,
4066 'forceeditsummary' => 0,
4067 'gender' => 'unknown',
4069 'hidepatrolled' => 0,
4072 'minordefault' => 0,
4073 'newpageshidepatrolled' => 0,
4075 'norollbackdiff' => 0,
4076 'numberheadings' => 0,
4077 'previewonfirst' => 0,
4078 'previewontop' => 1,
4082 'showhiddencats' => 0,
4083 'shownumberswatching' => 1,
4086 'stubthreshold' => 0,
4089 'uselivepreview' => 0,
4091 'watchcreations' => 1,
4092 'watchdefault' => 1,
4093 'watchdeletion' => 0,
4094 'watchlistdays' => 3.0,
4095 'watchlisthideanons' => 0,
4096 'watchlisthidebots' => 0,
4097 'watchlisthideliu' => 0,
4098 'watchlisthideminor' => 0,
4099 'watchlisthideown' => 0,
4100 'watchlisthidepatrolled' => 0,
4103 'useeditwarning' => 1,
4104 'prefershttps' => 1,
4110 $wgHiddenPrefs = array();
4117 $wgInvalidUsernameCharacters = '@';
4128 $wgUserrightsInterwikiDelimiter = '@';
4136 $wgSecureLogin = false;
4137 # end user accounts }
4140 /************************************************************************//**
4141 * @name User rights, access control and monitoring
4148 $wgAutoblockExpiry = 86400;
4153 $wgBlockAllowsUTEdit = false;
4158 $wgSysopEmailBans = true;
4174 $wgBlockCIDRLimit = array(
4175 'IPv4' => 16, # Blocks larger than a /16 (64k addresses) will not be allowed
4186 $wgBlockDisablesLogin = false;
4205 $wgWhitelistRead = false;
4233 $wgWhitelistReadRegexp = false;
4239 $wgEmailConfirmToEdit = false;
4265 $wgGroupPermissions = array();
4268 // Implicit group for all visitors
4269 $wgGroupPermissions['*']['createaccount'] = true;
4270 $wgGroupPermissions['*']['read'] = true;
4271 $wgGroupPermissions['*']['edit'] = true;
4272 $wgGroupPermissions['*']['createpage'] = true;
4273 $wgGroupPermissions['*']['createtalk'] = true;
4274 $wgGroupPermissions['*']['writeapi'] = true;
4275 $wgGroupPermissions['*']['editmyusercss'] = true;
4276 $wgGroupPermissions['*']['editmyuserjs'] = true;
4277 $wgGroupPermissions['*']['viewmywatchlist'] = true;
4278 $wgGroupPermissions['*']['editmywatchlist'] = true;
4279 $wgGroupPermissions['*']['viewmyprivateinfo'] = true;
4280 $wgGroupPermissions['*']['editmyprivateinfo'] = true;
4281 $wgGroupPermissions['*']['editmyoptions'] = true;
4282 #$wgGroupPermissions['*']['patrolmarks'] = false; // let anons see what was patrolled
4284 // Implicit group for all logged-in accounts
4285 $wgGroupPermissions['user']['move'] = true;
4286 $wgGroupPermissions['user']['move-subpages'] = true;
4287 $wgGroupPermissions['user']['move-rootuserpages'] = true; // can move root userpages
4288 $wgGroupPermissions['user']['movefile'] = true;
4289 $wgGroupPermissions['user']['read'] = true;
4290 $wgGroupPermissions['user']['edit'] = true;
4291 $wgGroupPermissions['user']['createpage'] = true;
4292 $wgGroupPermissions['user']['createtalk'] = true;
4293 $wgGroupPermissions['user']['writeapi'] = true;
4294 $wgGroupPermissions['user']['upload'] = true;
4295 $wgGroupPermissions['user']['reupload'] = true;
4296 $wgGroupPermissions['user']['reupload-shared'] = true;
4297 $wgGroupPermissions['user']['minoredit'] = true;
4298 $wgGroupPermissions['user']['purge'] = true; // can use ?action=purge without clicking "ok
"
4299 $wgGroupPermissions['user']['sendemail'] = true;
4301 // Implicit group for accounts that pass $wgAutoConfirmAge
4302 $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true;
4303 $wgGroupPermissions['autoconfirmed']['editsemiprotected'] = true;
4305 // Users with bot privilege can have their edits hidden
4306 // from various log pages by default
4307 $wgGroupPermissions['bot']['bot'] = true;
4308 $wgGroupPermissions['bot']['autoconfirmed'] = true;
4309 $wgGroupPermissions['bot']['editsemiprotected'] = true;
4310 $wgGroupPermissions['bot']['nominornewtalk'] = true;
4311 $wgGroupPermissions['bot']['autopatrol'] = true;
4312 $wgGroupPermissions['bot']['suppressredirect'] = true;
4313 $wgGroupPermissions['bot']['apihighlimits'] = true;
4314 $wgGroupPermissions['bot']['writeapi'] = true;
4316 // Most extra permission abilities go to this group
4317 $wgGroupPermissions['sysop']['block'] = true;
4318 $wgGroupPermissions['sysop']['createaccount'] = true;
4319 $wgGroupPermissions['sysop']['delete'] = true;
4320 // can be separately configured for pages with > $wgDeleteRevisionsLimit revs
4321 $wgGroupPermissions['sysop']['bigdelete'] = true;
4322 // can view deleted history entries, but not see or restore the text
4323 $wgGroupPermissions['sysop']['deletedhistory'] = true;
4324 // can view deleted revision text
4325 $wgGroupPermissions['sysop']['deletedtext'] = true;
4326 $wgGroupPermissions['sysop']['undelete'] = true;
4327 $wgGroupPermissions['sysop']['editinterface'] = true;
4328 $wgGroupPermissions['sysop']['editusercss'] = true;
4329 $wgGroupPermissions['sysop']['edituserjs'] = true;
4330 $wgGroupPermissions['sysop']['import'] = true;
4331 $wgGroupPermissions['sysop']['importupload'] = true;
4332 $wgGroupPermissions['sysop']['move'] = true;
4333 $wgGroupPermissions['sysop']['move-subpages'] = true;
4334 $wgGroupPermissions['sysop']['move-rootuserpages'] = true;
4335 $wgGroupPermissions['sysop']['patrol'] = true;
4336 $wgGroupPermissions['sysop']['autopatrol'] = true;
4337 $wgGroupPermissions['sysop']['protect'] = true;
4338 $wgGroupPermissions['sysop']['editprotected'] = true;
4339 $wgGroupPermissions['sysop']['proxyunbannable'] = true;
4340 $wgGroupPermissions['sysop']['rollback'] = true;
4341 $wgGroupPermissions['sysop']['upload'] = true;
4342 $wgGroupPermissions['sysop']['reupload'] = true;
4343 $wgGroupPermissions['sysop']['reupload-shared'] = true;
4344 $wgGroupPermissions['sysop']['unwatchedpages'] = true;
4345 $wgGroupPermissions['sysop']['autoconfirmed'] = true;
4346 $wgGroupPermissions['sysop']['editsemiprotected'] = true;
4347 $wgGroupPermissions['sysop']['ipblock-exempt'] = true;
4348 $wgGroupPermissions['sysop']['blockemail'] = true;
4349 $wgGroupPermissions['sysop']['markbotedits'] = true;
4350 $wgGroupPermissions['sysop']['apihighlimits'] = true;
4351 $wgGroupPermissions['sysop']['browsearchive'] = true;
4352 $wgGroupPermissions['sysop']['noratelimit'] = true;
4353 $wgGroupPermissions['sysop']['movefile'] = true;
4354 $wgGroupPermissions['sysop']['unblockself'] = true;
4355 $wgGroupPermissions['sysop']['suppressredirect'] = true;
4356 #$wgGroupPermissions['sysop']['upload_by_url'] = true;
4357 #$wgGroupPermissions['sysop']['mergehistory'] = true;
4359 // Permission to change users' group assignments
4360 $wgGroupPermissions['bureaucrat']['userrights'] = true;
4361 $wgGroupPermissions['bureaucrat']['noratelimit'] = true;
4362 // Permission to change users' groups assignments across wikis
4363 #$wgGroupPermissions['bureaucrat']['userrights-interwiki'] = true;
4364 // Permission to export pages including linked pages regardless of $wgExportMaxLinkDepth
4365 #$wgGroupPermissions['bureaucrat']['override-export-depth'] = true;
4367 #$wgGroupPermissions['sysop']['deletelogentry'] = true;
4368 #$wgGroupPermissions['sysop']['deleterevision'] = true;
4369 // To hide usernames from users and Sysops
4370 #$wgGroupPermissions['suppress']['hideuser'] = true;
4371 // To hide revisions/log items from users and Sysops
4372 #$wgGroupPermissions['suppress']['suppressrevision'] = true;
4373 // For private suppression log access
4374 #$wgGroupPermissions['suppress']['suppressionlog'] = true;
4382 # $wgGroupPermissions['developer']['siteadmin'] = true;
4395 $wgRevokePermissions = array();
4400 $wgImplicitGroups = array( '*', 'user', 'autoconfirmed' );
4423 $wgGroupsAddToSelf = array();
4428 $wgGroupsRemoveFromSelf = array();
4437 $wgRestrictionTypes = array( 'create', 'edit', 'move', 'upload' );
4450 $wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop' );
4461 $wgCascadingRestrictionLevels = array( 'sysop' );
4475 $wgSemiprotectedRestrictionLevels = array( 'autoconfirmed' );
4484 $wgNamespaceProtection = array();
4495 $wgNonincludableNamespaces = array();
4517 $wgAutoConfirmAge = 0;
4528 $wgAutoConfirmCount = 0;
4553 $wgAutopromote = array(
4554 'autoconfirmed' => array( '&',
4555 array( APCOND_EDITCOUNT, &$wgAutoConfirmCount ),
4556 array( APCOND_AGE, &$wgAutoConfirmAge ),
4579 $wgAutopromoteOnce = array(
4580 'onEdit' => array(),
4588 $wgAutopromoteOnceLogInRC = true;
4612 $wgAddGroups = array();
4617 $wgRemoveGroups = array();
4623 $wgAvailableRights = array();
4629 $wgDeleteRevisionsLimit = 0;
4638 $wgHideUserContribLimit = 1000;
4645 $wgAccountCreationThrottle = 0;
4658 $wgSpamRegex = array();
4663 $wgSummarySpamRegex = array();
4670 $wgEnableDnsBlacklist = false;
4676 $wgEnableSorbs = false;
4701 $wgDnsBlacklistUrls = array( 'http.dnsbl.sorbs.net.' );
4707 $wgSorbsUrl = array();
4713 $wgProxyWhitelist = array();
4720 $wgApplyIpBlocksToXff = false;
4742 $wgRateLimits = array(
4744 'anon' => null, // for any and all anonymous edits (aggregate)
4745 'user' => null, // for each logged-in user
4746 'newbie' => null, // for each recent (autoconfirmed) account; overrides 'user'
4747 'ip' => null, // for each anon and recent account
4748 'subnet' => null, // ... within a /24 subnet in IPv4 or /64 in IPv6
4756 'mailpassword' => array( // triggering password resets emails
4759 'emailuser' => array( // emailing other users using MediaWiki
4762 'linkpurge' => array( // purges of link tables
4769 'renderfile' => array( // files rendered via thumb.php or thumb_handler.php
4783 $wgRateLimitLog = null;
4789 $wgRateLimitsExcludedIPs = array();
4796 $wgPutIPinRC = true;
4802 $wgQueryPageDefaultLimit = 50;
4809 $wgPasswordAttemptThrottle = array( 'count' => 5, 'seconds' => 300 );
4810 # end of user rights settings
4813 /************************************************************************//**
4814 * @name Proxy scanner settings
4821 $wgSecretKey = false;
4832 $wgProxyList = array();
4837 $wgProxyKey = false;
4838 # end of proxy scanner settings
4841 /************************************************************************//**
4842 * @name Cookie settings
4849 $wgCookieExpiration = 180 * 86400;
4855 $wgCookieDomain = '';
4861 $wgCookiePath = '/';
4869 $wgCookieSecure = 'detect';
4877 $wgDisableCookieCheck = false;
4884 $wgCookiePrefix = false;
4891 $wgCookieHttpOnly = true;
4896 $wgCacheVaryCookies = array();
4901 $wgSessionName = false;
4902 # end of cookie settings }
4905 /************************************************************************//**
4906 * @name LaTeX (mathematical formulas)
4920 /************************************************************************//**
4921 * @name Profiling, testing and debugging
4923 * To enable profiling, edit StartProfiler.php
4933 $wgDebugLogFile = '';
4938 $wgDebugLogPrefix = '';
4945 $wgDebugRedirects = false;
4952 $wgDebugRawPage = false;
4962 $wgDebugComments = false;
4969 $wgDebugDBTransactions = false;
4974 $wgDebugDumpSql = false;
5003 $wgDebugLogGroups = array();
5010 $wgShowDebug = false;
5016 $wgDebugTimestamps = false;
5021 $wgDebugPrintHttpHeaders = true;
5026 $wgSpecialVersionShowHooks = false;
5033 $wgShowSQLErrors = false;
5041 $wgShowExceptionDetails = false;
5051 $wgShowDBErrorBacktrace = false;
5056 $wgLogExceptionBacktrace = true;
5061 $wgShowHostnames = false;
5068 $wgOverrideHostname = false;
5074 $wgDevelopmentWarnings = false;
5081 $wgDeprecationReleaseLimit = false;
5086 $wgProfileLimit = 0.0;
5094 $wgProfileOnly = false;
5106 $wgProfileToDatabase = false;
5111 $wgProfileCallTree = false;
5116 $wgProfilePerHost = false;
5125 $wgUDPProfilerHost = '127.0.0.1';
5131 $wgUDPProfilerPort = '3811';
5142 $wgUDPProfilerFormatString = "%s - %d %f %f %f %f %
s\n";
5147 $wgDebugFunctionEntry = false;
5155 $wgStatsMethod = 'cache';
5163 $wgAggregateStatsID = false;
5176 $wgStatsFormatString = "stats/%s - %s 1 1 1 1 %
s\n";
5182 $wgDisableCounters = false;
5189 $wgPageInfoTransclusionLimit = 50;
5197 $wgSiteStatsAsyncFactor = false;
5208 $wgParserTestFiles = array(
5209 "$IP/tests/parser/parserTests.txt
",
5210 "$IP/tests/parser/extraParserTests.txt
"
5226 $wgParserTestRemote = false;
5231 $wgEnableJavaScriptTest = false;
5236 $wgJavaScriptTestConfig = array(
5238 // Page where documentation can be found relevant to the QUnit test suite being ran.
5239 // Used in the intro paragraph on [[Special:JavaScriptTest/qunit]] for the
5240 // documentation link in the "javascripttest-qunit-intro
" message.
5241 'documentation' => '//www.mediawiki.org/wiki/Manual:JavaScript_unit_testing',
5242 // If you are submitting the QUnit test suite to a TestSwarm instance,
5243 // point this to the "inject.js
" script of that instance. This is was registers
5244 // the QUnit hooks to extract the test results and push them back up into the
5245 // TestSwarm database.
5246 // @example 'http://localhost/testswarm/js/inject.js'
5247 // @example '//integration.mediawiki.org/testswarm/js/inject.js'
5248 'testswarm-injectjs' => false,
5256 $wgCachePrefix = false;
5265 $wgDebugToolbar = false;
5266 # end of profiling, testing and debugging }
5269 /************************************************************************//**
5277 $wgDisableTextSearch = false;
5283 $wgAdvancedSearchHighlighting = false;
5289 $wgSearchHighlightBoundaries = '[\p{Z}\p{P}\p{C}]';
5301 $wgCountTotalSearchHits = false;
5311 $wgOpenSearchTemplate = false;
5319 $wgEnableOpenSearchSuggest = true;
5325 $wgOpenSearchDefaultLimit = 10;
5330 $wgSearchSuggestCacheExpiry = 1200;
5336 $wgDisableSearchUpdate = false;
5347 $wgNamespacesToBeSearchedDefault = array(
5357 $wgNamespacesToBeSearchedHelp = array(
5368 $wgSearchEverythingOnlyLoggedIn = false;
5374 $wgDisableInternalSearch = false;
5391 $wgSearchForwardUrl = null;
5398 $wgUseTwoButtonsSearchForm = true;
5405 $wgSitemapNamespaces = false;
5421 $wgSitemapNamespacesPriorities = false;
5428 $wgEnableSearchContributorsByIP = true;
5429 # end of search settings
5432 /************************************************************************//**
5433 * @name Edit user interface
5441 $wgDiff3 = '/usr/bin/diff3';
5446 $wgDiff = '/usr/bin/diff';
5453 $wgPreviewOnOpenNamespaces = array(
5460 $wgGoToEdit = false;
5467 $wgUniversalEditButton = true;
5474 $wgUseAutomaticEditSummaries = true;
5478 /************************************************************************//**
5480 * See also $wgSiteNotice
5488 if ( !isset( $wgCommandLineMode ) ) {
5489 $wgCommandLineMode = false;
5496 $wgCommandLineDarkBg = false;
5515 $wgReadOnlyFile = false;
5526 $wgUpgradeKey = false;
5531 $wgGitBin = '/usr/bin/git';
5545 $wgGitRepositoryViewers = array(
5546 'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
5547 'https://git.wikimedia.org/commit/%r/%H',
5548 'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
5549 'https://git.wikimedia.org/commit/%r/%H',
5551 # End of maintenance }
5554 /************************************************************************//**
5555 * @name Recent changes, new pages, watchlist and history
5564 $wgRCMaxAge = 13 * 7 * 24 * 3600;
5573 $wgRCFilterByAge = false;
5579 $wgRCLinkLimits = array( 50, 100, 250, 500 );
5585 $wgRCLinkDays = array( 1, 3, 7, 14, 30 );
5593 $wgRC2UDPAddress = false;
5600 $wgRC2UDPPort = false;
5610 $wgRC2UDPPrefix = '';
5619 $wgRC2UDPInterwikiPrefix = false;
5627 $wgRC2UDPOmitBots = false;
5669 $wgRCFeeds = array();
5675 $wgRCEngines = array(
5676 'redis' => 'RedisPubSubFeedEngine',
5677 'udp' => 'UDPRCFeedEngine',
5685 $wgEnableNewpagesUserFilter = true;
5690 $wgUseRCPatrol = true;
5695 $wgUseNPPatrol = true;
5700 $wgLogAutopatrol = true;
5721 $wgFeedCacheTimeout = 60;
5727 $wgFeedDiffCutoff = 32768;
5741 $wgOverrideSiteFeed = array();
5748 $wgFeedClasses = array(
5750 'atom' => 'AtomFeed',
5757 $wgAdvertisedFeedTypes = array( 'atom' );
5762 $wgRCShowWatchingUsers = false; # UPO
5767 $wgPageShowWatchingUsers = false;
5772 $wgRCShowChangedSize = true;
5779 $wgRCChangedSizeThreshold = 500;
5785 $wgShowUpdatedMarker = true;
5791 $wgDisableAnonTalk = false;
5796 $wgAllowCategorizedRecentChanges = false;
5802 $wgUseTagFilter = true;
5811 $wgUnwatchedPageThreshold = false;
5829 $wgRecentChangesFlags = array(
5830 'newpage' => array( 'letter' => 'newpageletter',
5831 'title' => 'recentchanges-label-newpage' ),
5832 'minor' => array( 'letter' => 'minoreditletter',
5833 'title' => 'recentchanges-label-minor', 'class' => 'minoredit' ),
5834 'bot' => array( 'letter' => 'boteditletter',
5835 'title' => 'recentchanges-label-bot', 'class' => 'botedit' ),
5836 'unpatrolled' => array( 'letter' => 'unpatrolledletter',
5837 'title' => 'recentchanges-label-unpatrolled' ),
5839 # end RC/watchlist }
5842 /************************************************************************//**
5843 * @name Copyright and credits settings
5854 $wgRightsPage = null;
5861 $wgRightsUrl = null;
5869 $wgRightsText = null;
5874 $wgRightsIcon = null;
5880 $wgCopyrightIcon = null;
5885 $wgUseCopyrightUpload = false;
5900 $wgShowCreditsIfMax = true;
5901 # end of copyright and credits settings }
5904 /************************************************************************//**
5905 * @name Import / Export
5917 $wgImportSources = array();
5926 $wgImportTargetNamespace = null;
5933 $wgExportAllowHistory = true;
5940 $wgExportMaxHistory = 0;
5945 $wgExportAllowListContributors = false;
5958 $wgExportMaxLinkDepth = 0;
5963 $wgExportFromNamespaces = false;
5968 $wgExportAllowAll = false;
5969 # end of import/export }
5972 /*************************************************************************//**
5981 $wgExtensionFunctions = array();
6009 $wgExtensionMessagesFiles = array();
6034 $wgMessagesDirs = array(
6035 'core' => "$IP/languages/i18n
",
6036 'oojs-ui' => "$IP/resources/lib/oojs-ui/i18n
",
6044 $wgExtensionEntryPointListFiles = array();
6060 $wgParserOutputHooks = array();
6065 $wgEnableParserLimitReporting = true;
6076 $wgValidSkinNames = array();
6082 $wgSpecialPages = array();
6087 $wgAutoloadClasses = array();
6094 $wgAutoloadAttemptLowercase = true;
6136 $wgExtensionCredits = array();
6184 $wgJobClasses = array(
6185 'refreshLinks' => 'RefreshLinksJob',
6186 'refreshLinks2' => 'RefreshLinksJob2', // b/c
6187 'htmlCacheUpdate' => 'HTMLCacheUpdateJob',
6188 'sendMail' => 'EmaillingJob',
6189 'enotifNotify' => 'EnotifNotifyJob',
6190 'fixDoubleRedirect' => 'DoubleRedirectJob',
6191 'uploadFromUrl' => 'UploadFromUrlJob',
6192 'AssembleUploadChunks' => 'AssembleUploadChunksJob',
6193 'PublishStashedFile' => 'PublishStashedFileJob',
6208 $wgJobTypesExcludedFromDefaultQueue = array( 'AssembleUploadChunks', 'PublishStashedFile' );
6218 $wgJobBackoffThrottling = array();
6226 $wgJobTypeConf = array(
6227 'default' => array( 'class' => 'JobQueueDB', 'order' => 'random' ),
6234 $wgJobQueueAggregator = array(
6235 'class' => 'JobQueueAggregatorMemc'
6242 $wgSpecialPageCacheUpdates = array(
6243 'Statistics' => array( 'SiteStatsUpdate', 'cacheUpdate' ),
6244 'Activeusers' => array( 'SpecialActiveUsers', 'cacheUpdate' ),
6254 $wgExceptionHooks = array();
6263 $wgPagePropLinkInvalidations = array(
6264 'hiddencat' => 'categorylinks',
6269 /*************************************************************************//**
6277 $wgUseCategoryBrowser = false;
6283 $wgCategoryMagicGallery = true;
6288 $wgCategoryPagingLimit = 200;
6315 $wgCategoryCollation = 'uppercase';
6319 /*************************************************************************//**
6330 $wgLogTypes = array(
6351 $wgLogRestrictions = array(
6352 'suppress' => 'suppressionlog'
6377 $wgFilterLogTypes = array(
6390 $wgLogNames = array(
6391 '' => 'all-logs-page',
6392 'block' => 'blocklogpage',
6393 'protect' => 'protectlogpage',
6394 'rights' => 'rightslog',
6395 'delete' => 'dellogpage',
6396 'upload' => 'uploadlogpage',
6397 'move' => 'movelogpage',
6398 'import' => 'importlogpage',
6399 'patrol' => 'patrol-log-page',
6400 'merge' => 'mergelog',
6401 'suppress' => 'suppressionlog',
6413 $wgLogHeaders = array(
6414 '' => 'alllogstext',
6415 'block' => 'blocklogtext',
6416 'protect' => 'protectlogtext',
6417 'rights' => 'rightslogtext',
6418 'delete' => 'dellogpagetext',
6419 'upload' => 'uploadlogpagetext',
6420 'move' => 'movelogpagetext',
6421 'import' => 'importlogpagetext',
6422 'patrol' => 'patrol-log-header',
6423 'merge' => 'mergelogpagetext',
6424 'suppress' => 'suppressionlogtext',
6433 $wgLogActions = array(
6434 'block/block' => 'blocklogentry',
6435 'block/unblock' => 'unblocklogentry',
6436 'block/reblock' => 'reblock-logentry',
6437 'protect/protect' => 'protectedarticle',
6438 'protect/modify' => 'modifiedarticleprotection',
6439 'protect/unprotect' => 'unprotectedarticle',
6440 'protect/move_prot' => 'movedarticleprotection',
6441 'upload/upload' => 'uploadedimage',
6442 'upload/overwrite' => 'overwroteimage',
6443 'upload/revert' => 'uploadedimage',
6444 'import/upload' => 'import-logentry-upload',
6445 'import/interwiki' => 'import-logentry-interwiki',
6446 'merge/merge' => 'pagemerge-logentry',
6447 'suppress/block' => 'blocklogentry',
6448 'suppress/reblock' => 'reblock-logentry',
6457 $wgLogActionsHandlers = array(
6458 'move/move' => 'MoveLogFormatter',
6459 'move/move_redir' => 'MoveLogFormatter',
6460 'delete/delete' => 'DeleteLogFormatter',
6461 'delete/restore' => 'DeleteLogFormatter',
6462 'delete/revision' => 'DeleteLogFormatter',
6463 'delete/event' => 'DeleteLogFormatter',
6464 'suppress/revision' => 'DeleteLogFormatter',
6465 'suppress/event' => 'DeleteLogFormatter',
6466 'suppress/delete' => 'DeleteLogFormatter',
6467 'patrol/patrol' => 'PatrolLogFormatter',
6468 'rights/rights' => 'RightsLogFormatter',
6469 'rights/autopromote' => 'RightsLogFormatter',
6475 $wgNewUserLog = true;
6479 /*************************************************************************//**
6480 * @name Special pages (general and miscellaneous)
6487 $wgAllowSpecialInclusion = true;
6493 $wgDisableQueryPageUpdate = false;
6501 $wgSpecialPageGroups = array();
6506 $wgSortSpecialPages = true;
6512 $wgCountCategorizedImagesAsUsed = false;
6518 $wgMaxRedirectLinksRetrieved = 500;
6519 # end special pages }
6522 /*************************************************************************//**
6543 'markpatrolled' => true,
6549 'revisiondelete' => true,
6552 'unprotect' => true,
6560 /*************************************************************************//**
6561 * @name Robot (search engine crawler) policy
6562 * See also $wgNoFollowLinks.
6571 $wgDefaultRobotPolicy = 'index,follow';
6587 $wgNamespaceRobotPolicies = array();
6615 $wgArticleRobotPolicies = array();
6627 $wgExemptFromUserRobotsControl = null;
6628 # End robot policy }
6631 /************************************************************************//**
6632 * @name AJAX and API
6633 * Note: The AJAX entry point which this section refers to is gradually being
6634 * replaced by the API entry point, api.php. They are essentially equivalent.
6635 * Both of them are used for dynamic client-side features, via XHR.
6645 $wgEnableAPI = true;
6652 $wgEnableWriteAPI = true;
6668 $wgDebugAPI = false;
6677 $wgAPIModules = array();
6686 $wgAPIFormatModules = array();
6695 $wgAPIMetaModules = array();
6704 $wgAPIPropModules = array();
6713 $wgAPIListModules = array();
6719 $wgAPIGeneratorModules = array();
6725 $wgAPIMaxDBRows = 5000;
6731 $wgAPIMaxResultSize = 8388608;
6737 $wgAPIMaxUncachedDiffs = 1;
6743 $wgAPIRequestLog = false;
6748 $wgAPICacheHelpTimeout = 60 * 60;
6754 $wgAPIUselessQueryPages = array(
6755 'MIMEsearch', // aiprop=mime
6756 'LinkSearch', // list=exturlusage
6757 'FileDuplicateSearch', // prop=duplicatefiles
6769 $wgAjaxExportList = array();
6775 $wgAjaxWatch = true;
6780 $wgAjaxUploadDestCheck = true;
6785 $wgAjaxLicensePreview = true;
6807 $wgCrossSiteAJAXdomains = array();
6814 $wgCrossSiteAJAXdomainExceptions = array();
6815 # End AJAX and API }
6818 /************************************************************************//**
6819 * @name Shell and process control
6826 $wgMaxShellMemory = 307200;
6832 $wgMaxShellFileSize = 102400;
6837 $wgMaxShellTime = 180;
6843 $wgMaxShellWallClockTime = 180;
6868 $wgShellCgroup = false;
6873 $wgPhpCli = '/usr/bin/php';
6880 $wgShellLocale = 'en_US.utf8';
6884 /************************************************************************//**
6892 $wgHTTPTimeout = 25;
6897 $wgAsyncHTTPTimeout = 25;
6902 $wgHTTPProxy = false;
6908 $wgHTTPConnectTimeout = 5e0;
6912 /************************************************************************//**
6914 * See also $wgEnotifUseJobQ.
6932 $wgRunJobsAsync = true;
6937 $wgUpdateRowsPerJob = 500;
6942 $wgUpdateRowsPerQuery = 100;
6946 /************************************************************************//**
6947 * @name Miscellaneous
6954 $wgExternalDiffEngine = false;
6964 $wgDisableHardRedirects = false;
6970 $wgLinkHolderBatchSize = 1000;
6976 $wgRegisterInternalExternals = false;
6981 $wgMaximumMovedPages = 100;
6987 $wgFixDoubleRedirects = false;
6993 $wgRedirectOnLogin = null;
7015 $wgPoolCounterConf = null;
7020 $wgUploadMaintenance = false;
7030 $wgNamespaceContentModels = array();
7042 $wgContentHandlerTextFallback = 'ignore';
7057 $wgContentHandlerUseDB = true;
7069 $wgTextModelsToParse = array(
7070 CONTENT_MODEL_WIKITEXT, // Just for completeness, wikitext will always be parsed.
7071 CONTENT_MODEL_JAVASCRIPT, // Make categories etc work, people put them into comments.
7072 CONTENT_MODEL_CSS, // Make categories etc work, people put them into comments.
7080 $wgRequirePasswordforEmailChange = true;
7087 $wgSiteTypes = array(
7088 'mediawiki' => 'MediaWikiSite',
7095 $wgCompiledFiles = array();
globals txt Globals are evil The original MediaWiki code relied on globals for processing context far too often MediaWiki development since then has been a story of slowly moving context out of global variables and into objects Storing processing context in object member variables allows those objects to be reused in a much more flexible way Consider the elegance of
skin txt MediaWiki includes four core it has been set as the default in MediaWiki since the replacing Monobook it had been been the default skin since before being replaced by Vector largely rewritten in while keeping its appearance Several legacy skins were removed in the as the burden of supporting them became too heavy to bear Those in etc for skin dependent CSS etc for skin dependent JavaScript These can also be customised on a per user by etc This feature has led to a wide variety of user styles becoming that gallery is a good place to ending in php
storage can be distributed across multiple servers
This is a test of the interface, mainly.
This is a class for holding configuration settings, particularly for multi-wiki sites.
A BagOStuff object with no objects in it.
The ContentHandler facility adds support for arbitrary content types on wiki instead of relying on wikitext for everything It was introduced in MediaWiki Each kind of and so on Built in content types as usual *javascript user provided javascript code *css user provided css code *text plain text In PHP
design txt This is a brief overview of the new design More thorough and up to date information is available on the documentation wiki at etc Handles the details of getting and saving to the user table of the and dealing with sessions and cookies OutputPage Encapsulates the entire HTML page that will be sent in response to any server request It is used by calling its functions to add text
static embeddable( $frame, $less)
Check if an image file reference is suitable for embedding.
A wrapper class for the pure-PHP memcached client, exposing a BagOStuff interface.
if(! $in) print Initializing normalization quick check tables n
const CONTENT_MODEL_WIKITEXT
static newAnything( $params)
Factory function referenced from DefaultSettings.php for CACHE_ANYTHING.
MediaWiki has optional support for memcached
We ve cleaned up the code here by removing clumps of infrequently used code and moving them off somewhere else It s much easier for someone working with this code to see what s _really_ going and make changes or fix bugs In we can take all the code that deals with the little used title reversing we can concentrate it all in an extension file
static newMemcached( $params)
Factory function that creates a memcached client object.
deferred txt A few of the database updates required by various functions here can be deferred until after the result page is displayed to the user For updating the view updating the linked to tables after a etc PHP does not yet have any way to tell the server to actually return and disconnect while still running these but it might have such a feature in the future We handle these by creating a deferred update object and putting those objects on a global then executing the whole list after the page is displayed We don t do anything smart like collating updates to the same table or such because the list is almost always going to have just one item on if so it s not worth the trouble Since there is a job queue in the jobs table
the array() calling protocol came about after MediaWiki 1.4rc1.
List of Api Query prop modules.
if(! $wgHtml5Version && $wgAllowRdfaAttributes) $wgFileExtensions
and how to run hooks for an and one after Each event has a preferably in CamelCase For ArticleDelete hook A clump of code and data that should be run when an event happens This can be either a function and a chunk of or an object and a method hook function The function part of a third party developers and administrators to define code that will be run at certain points in the mainline and to modify the data run by that mainline code Hooks can keep mainline code simple
processing should stop and the error should be shown to the user * false
$wgLockManagers[]
Initialise $wgLockManagers to include basic FS version.
This document is intended to provide useful advice for parties seeking to redistribute MediaWiki to end users It s targeted particularly at maintainers for Linux since it s been observed that distribution packages of MediaWiki often break We ve consistently had to recommend that users seeking support use official tarballs instead of their distribution s and this often solves whatever problem the user is having It would be nice if this could such and we might be restricted by PHP settings such as safe mode or open_basedir We cannot assume that the software even has read access anywhere useful Many shared hosts run all users web applications under the same user
storage can be distributed across multiple and multiple web servers can use the same cache cluster *********************W A R N I N G ***********************Memcached has no security or authentication Please ensure that your server is appropriately and that the anyone on the internet can put data into and read data from your cache An attacker familiar with MediaWiki internals could use this to steal passwords and email or to make themselves a sysop and install malicious javascript on the site There may be other types of vulnerability
I won t presume to tell you how to I m just describing the methods I chose to use for myself If you do choose to follow these it will probably be easier for you to collaborate with others on the but if you want to contribute without by all means do which work well I also use K &R brace matching style I know that s a religious issue for some
Class for caching the contents of localisation files, Messages*.php and *.i18n.php.
static newAccelerator( $params)
Factory function referenced from DefaultSettings.php for CACHE_ACCEL.
Class to store objects in the database.
A wrapper class for the PECL memcached client.
static embed( $frame, $less)
Convert an image URI to a base64-encoded data URI.
Wrapper for WinCache object caching functions; identical interface to the APC wrapper.
We ve cleaned up the code here by removing clumps of infrequently used code and moving them off somewhere else It s much easier for someone working with this code to see what s _really_ going on
if the prop value should be in the metadata multi language array format
static detectServer()
Work out an appropriate URL prefix containing scheme and host, based on information detected from $_S...
deferred txt A few of the database updates required by various functions here can be deferred until after the result page is displayed to the user For updating the view updating the linked to tables after a etc PHP does not yet have any way to tell the server to actually return and disconnect while still running these but it might have such a feature in the future We handle these by creating a deferred update object and putting those objects on a global then executing the whole list after the page is displayed We don t do anything smart like collating updates to the same table or such because the list is almost always going to have just one item on if that
const CONTENT_MODEL_JAVASCRIPT
and how to run hooks for an and one after Each event has a preferably in CamelCase For ArticleDelete hook A clump of code and data that should be run when an event happens This can be either a function and a chunk of or an object and a method hook function The function part of a third party developers and administrators to define code that will be run at certain points in the mainline code
Wrapper for XCache object caching functions; identical interface to the APC wrapper.
A simple single-master LBFactory that gets its configuration from the b/c globals.
This document is intended to provide useful advice for parties seeking to redistribute MediaWiki to end users It s targeted particularly at maintainers for Linux since it s been observed that distribution packages of MediaWiki often break We ve consistently had to recommend that users seeking support use official tarballs instead of their distribution s and this often solves whatever problem the user is having It would be nice if this could such and we might be restricted by PHP settings such as safe mode or open_basedir We cannot assume that the software even has read access anywhere useful Many shared hosts run all users web applications under the same so they can t rely on Unix and must forbid reads to even standard directories like tmp lest users read each others files We cannot assume that the user has the ability to install or run any programs not written as web accessible PHP scripts Since anything that works on cheap shared hosting will work if you have shell or root access MediaWiki s design is based around catering to the lowest common denominator Although we support higher end setups as the way many things work by default is tailored toward shared hosting These defaults are unconventional from the point of view of and they certainly aren t ideal for someone who s installing MediaWiki as MediaWiki does not conform to normal Unix filesystem layout Hopefully we ll offer direct support for standard layouts in the but for now *any change to the location of files is unsupported *Moving things and leaving symlinks will *probably *not break but it is *strongly *advised not to try any more intrusive changes to get MediaWiki to conform more closely to your filesystem hierarchy Any such attempt will almost certainly result in unnecessary bugs The standard recommended location to install relative to the web is it should be possible to enable the appropriate rewrite rules by if you can reconfigure the web server
This is a wrapper for APC's shared memory functions.