[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Default values for MediaWiki configuration settings. 4 * 5 * 6 * NEVER EDIT THIS FILE 7 * 8 * 9 * To customize your installation, edit "LocalSettings.php". If you make 10 * changes here, they will be lost on next upgrade of MediaWiki! 11 * 12 * In this file, variables whose default values depend on other 13 * variables are set to false. The actual default value of these variables 14 * will only be set in Setup.php, taking into account any custom settings 15 * performed in LocalSettings.php. 16 * 17 * Documentation is in the source and on: 18 * https://www.mediawiki.org/wiki/Manual:Configuration_settings 19 * 20 * @warning Note: this (and other things) will break if the autoloader is not 21 * enabled. Please include includes/AutoLoader.php before including this file. 22 * 23 * This program is free software; you can redistribute it and/or modify 24 * it under the terms of the GNU General Public License as published by 25 * the Free Software Foundation; either version 2 of the License, or 26 * (at your option) any later version. 27 * 28 * This program is distributed in the hope that it will be useful, 29 * but WITHOUT ANY WARRANTY; without even the implied warranty of 30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 31 * GNU General Public License for more details. 32 * 33 * You should have received a copy of the GNU General Public License along 34 * with this program; if not, write to the Free Software Foundation, Inc., 35 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 36 * http://www.gnu.org/copyleft/gpl.html 37 * 38 * @file 39 */ 40 41 /** 42 * @defgroup Globalsettings Global settings 43 */ 44 45 /** 46 * @cond file_level_code 47 * This is not a valid entry point, perform no further processing unless 48 * MEDIAWIKI is defined 49 */ 50 if ( !defined( 'MEDIAWIKI' ) ) { 51 echo "This file is part of MediaWiki and is not a valid entry point\n"; 52 die( 1 ); 53 } 54 55 /** 56 * wgConf hold the site configuration. 57 * Not used for much in a default install. 58 * @since 1.5 59 */ 60 $wgConf = new SiteConfiguration; 61 62 /** 63 * Registry of factory functions to create config objects: 64 * The 'main' key must be set, and the value should be a valid 65 * callable. 66 * @since 1.23 67 */ 68 $wgConfigRegistry = array( 69 'main' => 'GlobalVarConfig::newInstance' 70 ); 71 72 /** 73 * MediaWiki version number 74 * Note that MediaWikiVersionFetcher::fetchVersion() uses a regex to check this. 75 * Using single quotes is, therefore, important here. 76 * @since 1.2 77 */ 78 $wgVersion = '1.24.0'; 79 80 /** 81 * Name of the site. It must be changed in LocalSettings.php 82 */ 83 $wgSitename = 'MediaWiki'; 84 85 /** 86 * URL of the server. 87 * 88 * @par Example: 89 * @code 90 * $wgServer = 'http://example.com'; 91 * @endcode 92 * 93 * This is usually detected correctly by MediaWiki. If MediaWiki detects the 94 * wrong server, it will redirect incorrectly after you save a page. In that 95 * case, set this variable to fix it. 96 * 97 * If you want to use protocol-relative URLs on your wiki, set this to a 98 * protocol-relative URL like '//example.com' and set $wgCanonicalServer 99 * to a fully qualified URL. 100 */ 101 $wgServer = WebRequest::detectServer(); 102 103 /** 104 * Canonical URL of the server, to use in IRC feeds and notification e-mails. 105 * Must be fully qualified, even if $wgServer is protocol-relative. 106 * 107 * Defaults to $wgServer, expanded to a fully qualified http:// URL if needed. 108 * @since 1.18 109 */ 110 $wgCanonicalServer = false; 111 112 /** 113 * Server name. This is automatically computed by parsing the bare 114 * hostname out of $wgCanonicalServer. It should not be customized. 115 * @since 1.24 116 */ 117 $wgServerName = false; 118 119 /************************************************************************//** 120 * @name Script path settings 121 * @{ 122 */ 123 124 /** 125 * The path we should point to. 126 * It might be a virtual path in case with use apache mod_rewrite for example. 127 * 128 * This *needs* to be set correctly. 129 * 130 * Other paths will be set to defaults based on it unless they are directly 131 * set in LocalSettings.php 132 */ 133 $wgScriptPath = '/wiki'; 134 135 /** 136 * Whether to support URLs like index.php/Page_title These often break when PHP 137 * is set up in CGI mode. PATH_INFO *may* be correct if cgi.fix_pathinfo is set, 138 * but then again it may not; lighttpd converts incoming path data to lowercase 139 * on systems with case-insensitive filesystems, and there have been reports of 140 * problems on Apache as well. 141 * 142 * To be safe we'll continue to keep it off by default. 143 * 144 * Override this to false if $_SERVER['PATH_INFO'] contains unexpectedly 145 * incorrect garbage, or to true if it is really correct. 146 * 147 * The default $wgArticlePath will be set based on this value at runtime, but if 148 * you have customized it, having this incorrectly set to true can cause 149 * redirect loops when "pretty URLs" are used. 150 * @since 1.2.1 151 */ 152 $wgUsePathInfo = ( strpos( PHP_SAPI, 'cgi' ) === false ) && 153 ( strpos( PHP_SAPI, 'apache2filter' ) === false ) && 154 ( strpos( PHP_SAPI, 'isapi' ) === false ); 155 156 /** 157 * The extension to append to script names by default. This can either be .php 158 * or .php5. 159 * 160 * Some hosting providers use PHP 4 for *.php files, and PHP 5 for *.php5. This 161 * variable is provided to support those providers. 162 * @since 1.11 163 */ 164 $wgScriptExtension = '.php'; 165 166 /**@}*/ 167 168 /************************************************************************//** 169 * @name URLs and file paths 170 * 171 * These various web and file path variables are set to their defaults 172 * in Setup.php if they are not explicitly set from LocalSettings.php. 173 * 174 * These will relatively rarely need to be set manually, unless you are 175 * splitting style sheets or images outside the main document root. 176 * 177 * In this section, a "path" is usually a host-relative URL, i.e. a URL without 178 * the host part, that starts with a slash. In most cases a full URL is also 179 * acceptable. A "directory" is a local file path. 180 * 181 * In both paths and directories, trailing slashes should not be included. 182 * 183 * @{ 184 */ 185 186 /** 187 * The URL path to index.php. 188 * 189 * Defaults to "{$wgScriptPath}/index{$wgScriptExtension}". 190 */ 191 $wgScript = false; 192 193 /** 194 * The URL path to load.php. 195 * 196 * Defaults to "{$wgScriptPath}/load{$wgScriptExtension}". 197 * @since 1.17 198 */ 199 $wgLoadScript = false; 200 201 /** 202 * The URL path of the skins directory. 203 * Defaults to "{$wgScriptPath}/skins". 204 * @since 1.3 205 */ 206 $wgStylePath = false; 207 $wgStyleSheetPath = &$wgStylePath; 208 209 /** 210 * The URL path of the skins directory. Should not point to an external domain. 211 * Defaults to "{$wgScriptPath}/skins". 212 * @since 1.17 213 */ 214 $wgLocalStylePath = false; 215 216 /** 217 * The URL path of the extensions directory. 218 * Defaults to "{$wgScriptPath}/extensions". 219 * @since 1.16 220 */ 221 $wgExtensionAssetsPath = false; 222 223 /** 224 * Filesystem stylesheets directory. 225 * Defaults to "{$IP}/skins". 226 * @since 1.3 227 */ 228 $wgStyleDirectory = false; 229 230 /** 231 * The URL path for primary article page views. This path should contain $1, 232 * which is replaced by the article title. 233 * 234 * Defaults to "{$wgScript}/$1" or "{$wgScript}?title=$1", 235 * depending on $wgUsePathInfo. 236 */ 237 $wgArticlePath = false; 238 239 /** 240 * The URL path for the images directory. 241 * Defaults to "{$wgScriptPath}/images". 242 */ 243 $wgUploadPath = false; 244 245 /** 246 * The filesystem path of the images directory. Defaults to "{$IP}/images". 247 */ 248 $wgUploadDirectory = false; 249 250 /** 251 * Directory where the cached page will be saved. 252 * Defaults to "{$wgUploadDirectory}/cache". 253 */ 254 $wgFileCacheDirectory = false; 255 256 /** 257 * The URL path of the wiki logo. The logo size should be 135x135 pixels. 258 * Defaults to "$wgResourceBasePath/resources/assets/wiki.png". 259 */ 260 $wgLogo = false; 261 262 /** 263 * The URL path of the shortcut icon. 264 * @since 1.6 265 */ 266 $wgFavicon = '/favicon.ico'; 267 268 /** 269 * The URL path of the icon for iPhone and iPod Touch web app bookmarks. 270 * Defaults to no icon. 271 * @since 1.12 272 */ 273 $wgAppleTouchIcon = false; 274 275 /** 276 * The local filesystem path to a temporary directory. This is not required to 277 * be web accessible. 278 * 279 * When this setting is set to false, its value will be set through a call 280 * to wfTempDir(). See that methods implementation for the actual detection 281 * logic. 282 * 283 * Developers should use the global function wfTempDir() instead of this 284 * variable. 285 * 286 * @see wfTempDir() 287 * @note Default changed to false in MediaWiki 1.20. 288 */ 289 $wgTmpDirectory = false; 290 291 /** 292 * If set, this URL is added to the start of $wgUploadPath to form a complete 293 * upload URL. 294 * @since 1.4 295 */ 296 $wgUploadBaseUrl = ''; 297 298 /** 299 * To enable remote on-demand scaling, set this to the thumbnail base URL. 300 * Full thumbnail URL will be like $wgUploadStashScalerBaseUrl/e/e6/Foo.jpg/123px-Foo.jpg 301 * where 'e6' are the first two characters of the MD5 hash of the file name. 302 * If $wgUploadStashScalerBaseUrl is set to false, thumbs are rendered locally as needed. 303 * @since 1.17 304 */ 305 $wgUploadStashScalerBaseUrl = false; 306 307 /** 308 * To set 'pretty' URL paths for actions other than 309 * plain page views, add to this array. 310 * 311 * @par Example: 312 * Set pretty URL for the edit action: 313 * @code 314 * 'edit' => "$wgScriptPath/edit/$1" 315 * @endcode 316 * 317 * There must be an appropriate script or rewrite rule in place to handle these 318 * URLs. 319 * @since 1.5 320 */ 321 $wgActionPaths = array(); 322 323 /**@}*/ 324 325 /************************************************************************//** 326 * @name Files and file uploads 327 * @{ 328 */ 329 330 /** 331 * Uploads have to be specially set up to be secure 332 */ 333 $wgEnableUploads = false; 334 335 /** 336 * The maximum age of temporary (incomplete) uploaded files 337 */ 338 $wgUploadStashMaxAge = 6 * 3600; // 6 hours 339 340 /** 341 * Allows to move images and other media files 342 */ 343 $wgAllowImageMoving = true; 344 345 /** 346 * Enable deferred upload tasks that use the job queue. 347 * Only enable this if job runners are set up for both the 348 * 'AssembleUploadChunks' and 'PublishStashedFile' job types. 349 * 350 * @note If you use suhosin, this setting is incompatible with 351 * suhosin.session.encrypt. 352 */ 353 $wgEnableAsyncUploads = false; 354 355 /** 356 * These are additional characters that should be replaced with '-' in filenames 357 */ 358 $wgIllegalFileChars = ":"; 359 360 /** 361 * What directory to place deleted uploads in. 362 * Defaults to "{$wgUploadDirectory}/deleted". 363 */ 364 $wgDeletedDirectory = false; 365 366 /** 367 * Set this to true if you use img_auth and want the user to see details on why access failed. 368 */ 369 $wgImgAuthDetails = false; 370 371 /** 372 * Map of relative URL directories to match to internal mwstore:// base storage paths. 373 * For img_auth.php requests, everything after "img_auth.php/" is checked to see 374 * if starts with any of the prefixes defined here. The prefixes should not overlap. 375 * The prefix that matches has a corresponding storage path, which the rest of the URL 376 * is assumed to be relative to. The file at that path (or a 404) is send to the client. 377 * 378 * Example: 379 * $wgImgAuthUrlPathMap['/timeline/'] = 'mwstore://local-fs/timeline-render/'; 380 * The above maps ".../img_auth.php/timeline/X" to "mwstore://local-fs/timeline-render/". 381 * The name "local-fs" should correspond by name to an entry in $wgFileBackends. 382 * 383 * @see $wgFileBackends 384 */ 385 $wgImgAuthUrlPathMap = array(); 386 387 /** 388 * File repository structures 389 * 390 * $wgLocalFileRepo is a single repository structure, and $wgForeignFileRepos is 391 * an array of such structures. Each repository structure is an associative 392 * array of properties configuring the repository. 393 * 394 * Properties required for all repos: 395 * - class The class name for the repository. May come from the core or an extension. 396 * The core repository classes are FileRepo, LocalRepo, ForeignDBRepo. 397 * FSRepo is also supported for backwards compatibility. 398 * 399 * - name A unique name for the repository (but $wgLocalFileRepo should be 'local'). 400 * The name should consist of alpha-numeric characters. 401 * - backend A file backend name (see $wgFileBackends). 402 * 403 * For most core repos: 404 * - zones Associative array of zone names that each map to an array with: 405 * container : backend container name the zone is in 406 * directory : root path within container for the zone 407 * url : base URL to the root of the zone 408 * urlsByExt : map of file extension types to base URLs 409 * (useful for using a different cache for videos) 410 * Zones default to using "<repo name>-<zone name>" as the container name 411 * and default to using the container root as the zone's root directory. 412 * Nesting of zone locations within other zones should be avoided. 413 * - url Public zone URL. The 'zones' settings take precedence. 414 * - hashLevels The number of directory levels for hash-based division of files 415 * - thumbScriptUrl The URL for thumb.php (optional, not recommended) 416 * - transformVia404 Whether to skip media file transformation on parse and rely on a 404 417 * handler instead. 418 * - initialCapital Equivalent to $wgCapitalLinks (or $wgCapitalLinkOverrides[NS_FILE], 419 * determines whether filenames implicitly start with a capital letter. 420 * The current implementation may give incorrect description page links 421 * when the local $wgCapitalLinks and initialCapital are mismatched. 422 * - pathDisclosureProtection 423 * May be 'paranoid' to remove all parameters from error messages, 'none' to 424 * leave the paths in unchanged, or 'simple' to replace paths with 425 * placeholders. Default for LocalRepo is 'simple'. 426 * - fileMode This allows wikis to set the file mode when uploading/moving files. Default 427 * is 0644. 428 * - directory The local filesystem directory where public files are stored. Not used for 429 * some remote repos. 430 * - thumbDir The base thumbnail directory. Defaults to "<directory>/thumb". 431 * - thumbUrl The base thumbnail URL. Defaults to "<url>/thumb". 432 * - isPrivate Set this if measures should always be taken to keep the files private. 433 * One should not trust this to assure that the files are not web readable; 434 * the server configuration should be done manually depending on the backend. 435 * 436 * These settings describe a foreign MediaWiki installation. They are optional, and will be ignored 437 * for local repositories: 438 * - descBaseUrl URL of image description pages, e.g. http://en.wikipedia.org/wiki/File: 439 * - scriptDirUrl URL of the MediaWiki installation, equivalent to $wgScriptPath, e.g. 440 * http://en.wikipedia.org/w 441 * - scriptExtension Script extension of the MediaWiki installation, equivalent to 442 * $wgScriptExtension, e.g. .php5 defaults to .php 443 * 444 * - articleUrl Equivalent to $wgArticlePath, e.g. http://en.wikipedia.org/wiki/$1 445 * - fetchDescription Fetch the text of the remote file description page. Equivalent to 446 * $wgFetchCommonsDescriptions. 447 * - abbrvThreshold File names over this size will use the short form of thumbnail names. 448 * Short thumbnail names only have the width, parameters, and the extension. 449 * 450 * ForeignDBRepo: 451 * - dbType, dbServer, dbUser, dbPassword, dbName, dbFlags 452 * equivalent to the corresponding member of $wgDBservers 453 * - tablePrefix Table prefix, the foreign wiki's $wgDBprefix 454 * - hasSharedCache True if the wiki's shared cache is accessible via the local $wgMemc 455 * 456 * ForeignAPIRepo: 457 * - apibase Use for the foreign API's URL 458 * - apiThumbCacheExpiry How long to locally cache thumbs for 459 * 460 * If you leave $wgLocalFileRepo set to false, Setup will fill in appropriate values. 461 * Otherwise, set $wgLocalFileRepo to a repository structure as described above. 462 * If you set $wgUseInstantCommons to true, it will add an entry for Commons. 463 * If you set $wgForeignFileRepos to an array of repository structures, those will 464 * be searched after the local file repo. 465 * Otherwise, you will only have access to local media files. 466 * 467 * @see Setup.php for an example usage and default initialization. 468 */ 469 $wgLocalFileRepo = false; 470 471 /** 472 * @see $wgLocalFileRepo 473 */ 474 $wgForeignFileRepos = array(); 475 476 /** 477 * Use Commons as a remote file repository. Essentially a wrapper, when this 478 * is enabled $wgForeignFileRepos will point at Commons with a set of default 479 * settings 480 */ 481 $wgUseInstantCommons = false; 482 483 /** 484 * File backend structure configuration. 485 * 486 * This is an array of file backend configuration arrays. 487 * Each backend configuration has the following parameters: 488 * - 'name' : A unique name for the backend 489 * - 'class' : The file backend class to use 490 * - 'wikiId' : A unique string that identifies the wiki (container prefix) 491 * - 'lockManager' : The name of a lock manager (see $wgLockManagers) 492 * 493 * See FileBackend::__construct() for more details. 494 * Additional parameters are specific to the file backend class used. 495 * These settings should be global to all wikis when possible. 496 * 497 * There are two particularly important aspects about each backend: 498 * - a) Whether it is fully qualified or wiki-relative. 499 * By default, the paths of files are relative to the current wiki, 500 * which works via prefixing them with the current wiki ID when accessed. 501 * Setting 'wikiId' forces the backend to be fully qualified by prefixing 502 * all paths with the specified value instead. This can be useful if 503 * multiple wikis need to share the same data. Note that 'name' is *not* 504 * part of any prefix and thus should not be relied upon for namespacing. 505 * - b) Whether it is only defined for some wikis or is defined on all 506 * wikis in the wiki farm. Defining a backend globally is useful 507 * if multiple wikis need to share the same data. 508 * One should be aware of these aspects when configuring a backend for use with 509 * any basic feature or plugin. For example, suppose an extension stores data for 510 * different wikis in different directories and sometimes needs to access data from 511 * a foreign wiki's directory in order to render a page on given wiki. The extension 512 * would need a fully qualified backend that is defined on all wikis in the wiki farm. 513 */ 514 $wgFileBackends = array(); 515 516 /** 517 * Array of configuration arrays for each lock manager. 518 * Each backend configuration has the following parameters: 519 * - 'name' : A unique name for the lock manager 520 * - 'class' : The lock manger class to use 521 * 522 * See LockManager::__construct() for more details. 523 * Additional parameters are specific to the lock manager class used. 524 * These settings should be global to all wikis. 525 */ 526 $wgLockManagers = array(); 527 528 /** 529 * Show Exif data, on by default if available. 530 * Requires PHP's Exif extension: http://www.php.net/manual/en/ref.exif.php 531 * 532 * @note FOR WINDOWS USERS: 533 * To enable Exif functions, add the following lines to the "Windows 534 * extensions" section of php.ini: 535 * @code{.ini} 536 * extension=extensions/php_mbstring.dll 537 * extension=extensions/php_exif.dll 538 * @endcode 539 */ 540 $wgShowEXIF = function_exists( 'exif_read_data' ); 541 542 /** 543 * If to automatically update the img_metadata field 544 * if the metadata field is outdated but compatible with the current version. 545 * Defaults to false. 546 */ 547 $wgUpdateCompatibleMetadata = false; 548 549 /** 550 * If you operate multiple wikis, you can define a shared upload path here. 551 * Uploads to this wiki will NOT be put there - they will be put into 552 * $wgUploadDirectory. 553 * If $wgUseSharedUploads is set, the wiki will look in the shared repository if 554 * no file of the given name is found in the local repository (for [[File:..]], 555 * [[Media:..]] links). Thumbnails will also be looked for and generated in this 556 * directory. 557 * 558 * Note that these configuration settings can now be defined on a per- 559 * repository basis for an arbitrary number of file repositories, using the 560 * $wgForeignFileRepos variable. 561 */ 562 $wgUseSharedUploads = false; 563 564 /** 565 * Full path on the web server where shared uploads can be found 566 */ 567 $wgSharedUploadPath = "http://commons.wikimedia.org/shared/images"; 568 569 /** 570 * Fetch commons image description pages and display them on the local wiki? 571 */ 572 $wgFetchCommonsDescriptions = false; 573 574 /** 575 * Path on the file system where shared uploads can be found. 576 */ 577 $wgSharedUploadDirectory = "/var/www/wiki3/images"; 578 579 /** 580 * DB name with metadata about shared directory. 581 * Set this to false if the uploads do not come from a wiki. 582 */ 583 $wgSharedUploadDBname = false; 584 585 /** 586 * Optional table prefix used in database. 587 */ 588 $wgSharedUploadDBprefix = ''; 589 590 /** 591 * Cache shared metadata in memcached. 592 * Don't do this if the commons wiki is in a different memcached domain 593 */ 594 $wgCacheSharedUploads = true; 595 596 /** 597 * Allow for upload to be copied from an URL. 598 * The timeout for copy uploads is set by $wgCopyUploadTimeout. 599 * You have to assign the user right 'upload_by_url' to a user group, to use this. 600 */ 601 $wgAllowCopyUploads = false; 602 603 /** 604 * Allow asynchronous copy uploads. 605 * This feature is experimental and broken as of r81612. 606 */ 607 $wgAllowAsyncCopyUploads = false; 608 609 /** 610 * A list of domains copy uploads can come from 611 * 612 * @since 1.20 613 */ 614 $wgCopyUploadsDomains = array(); 615 616 /** 617 * Enable copy uploads from Special:Upload. $wgAllowCopyUploads must also be 618 * true. If $wgAllowCopyUploads is true, but this is false, you will only be 619 * able to perform copy uploads from the API or extensions (e.g. UploadWizard). 620 */ 621 $wgCopyUploadsFromSpecialUpload = false; 622 623 /** 624 * Proxy to use for copy upload requests. 625 * @since 1.20 626 */ 627 $wgCopyUploadProxy = false; 628 629 /** 630 * Different timeout for upload by url 631 * This could be useful since when fetching large files, you may want a 632 * timeout longer than the default $wgHTTPTimeout. False means fallback 633 * to default. 634 * 635 * @since 1.22 636 */ 637 $wgCopyUploadTimeout = false; 638 639 /** 640 * Different timeout for upload by url when run as a background job 641 * This could be useful since when fetching large files via job queue, 642 * you may want a different timeout, especially because there is no 643 * http request being kept alive. 644 * 645 * false means fallback to $wgCopyUploadTimeout. 646 * @since 1.22 647 */ 648 $wgCopyUploadAsyncTimeout = false; 649 650 /** 651 * Max size for uploads, in bytes. If not set to an array, applies to all 652 * uploads. If set to an array, per upload type maximums can be set, using the 653 * file and url keys. If the * key is set this value will be used as maximum 654 * for non-specified types. 655 * 656 * @par Example: 657 * @code 658 * $wgMaxUploadSize = array( 659 * '*' => 250 * 1024, 660 * 'url' => 500 * 1024, 661 * ); 662 * @endcode 663 * Sets the maximum for all uploads to 250 kB except for upload-by-url, which 664 * will have a maximum of 500 kB. 665 */ 666 $wgMaxUploadSize = 1024 * 1024 * 100; # 100MB 667 668 /** 669 * Point the upload navigation link to an external URL 670 * Useful if you want to use a shared repository by default 671 * without disabling local uploads (use $wgEnableUploads = false for that). 672 * 673 * @par Example: 674 * @code 675 * $wgUploadNavigationUrl = 'http://commons.wikimedia.org/wiki/Special:Upload'; 676 * @endcode 677 */ 678 $wgUploadNavigationUrl = false; 679 680 /** 681 * Point the upload link for missing files to an external URL, as with 682 * $wgUploadNavigationUrl. The URL will get "(?|&)wpDestFile=<filename>" 683 * appended to it as appropriate. 684 */ 685 $wgUploadMissingFileUrl = false; 686 687 /** 688 * Give a path here to use thumb.php for thumbnail generation on client 689 * request, instead of generating them on render and outputting a static URL. 690 * This is necessary if some of your apache servers don't have read/write 691 * access to the thumbnail path. 692 * 693 * @par Example: 694 * @code 695 * $wgThumbnailScriptPath = "{$wgScriptPath}/thumb{$wgScriptExtension}"; 696 * @endcode 697 */ 698 $wgThumbnailScriptPath = false; 699 700 /** 701 * @see $wgThumbnailScriptPath 702 */ 703 $wgSharedThumbnailScriptPath = false; 704 705 /** 706 * Set this to false if you do not want MediaWiki to divide your images 707 * directory into many subdirectories, for improved performance. 708 * 709 * It's almost always good to leave this enabled. In previous versions of 710 * MediaWiki, some users set this to false to allow images to be added to the 711 * wiki by simply copying them into $wgUploadDirectory and then running 712 * maintenance/rebuildImages.php to register them in the database. This is no 713 * longer recommended, use maintenance/importImages.php instead. 714 * 715 * @note That this variable may be ignored if $wgLocalFileRepo is set. 716 * @todo Deprecate the setting and ultimately remove it from Core. 717 */ 718 $wgHashedUploadDirectory = true; 719 720 /** 721 * Set the following to false especially if you have a set of files that need to 722 * be accessible by all wikis, and you do not want to use the hash (path/a/aa/) 723 * directory layout. 724 */ 725 $wgHashedSharedUploadDirectory = true; 726 727 /** 728 * Base URL for a repository wiki. Leave this blank if uploads are just stored 729 * in a shared directory and not meant to be accessible through a separate wiki. 730 * Otherwise the image description pages on the local wiki will link to the 731 * image description page on this wiki. 732 * 733 * Please specify the namespace, as in the example below. 734 */ 735 $wgRepositoryBaseUrl = "http://commons.wikimedia.org/wiki/File:"; 736 737 /** 738 * This is the list of preferred extensions for uploading files. Uploading files 739 * with extensions not in this list will trigger a warning. 740 * 741 * @warning If you add any OpenOffice or Microsoft Office file formats here, 742 * such as odt or doc, and untrusted users are allowed to upload files, then 743 * your wiki will be vulnerable to cross-site request forgery (CSRF). 744 */ 745 $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' ); 746 747 /** 748 * Files with these extensions will never be allowed as uploads. 749 * An array of file extensions to blacklist. You should append to this array 750 * if you want to blacklist additional files. 751 */ 752 $wgFileBlacklist = array( 753 # HTML may contain cookie-stealing JavaScript and web bugs 754 'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht', 755 # PHP scripts may execute arbitrary code on the server 756 'php', 'phtml', 'php3', 'php4', 'php5', 'phps', 757 # Other types that may be interpreted by some servers 758 'shtml', 'jhtml', 'pl', 'py', 'cgi', 759 # May contain harmful executables for Windows victims 760 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' ); 761 762 /** 763 * Files with these MIME types will never be allowed as uploads 764 * if $wgVerifyMimeType is enabled. 765 */ 766 $wgMimeTypeBlacklist = array( 767 # HTML may contain cookie-stealing JavaScript and web bugs 768 'text/html', 'text/javascript', 'text/x-javascript', 'application/x-shellscript', 769 # PHP scripts may execute arbitrary code on the server 770 'application/x-php', 'text/x-php', 771 # Other types that may be interpreted by some servers 772 'text/x-python', 'text/x-perl', 'text/x-bash', 'text/x-sh', 'text/x-csh', 773 # Client-side hazards on Internet Explorer 774 'text/scriptlet', 'application/x-msdownload', 775 # Windows metafile, client-side vulnerability on some systems 776 'application/x-msmetafile', 777 ); 778 779 /** 780 * Allow Java archive uploads. 781 * This is not recommended for public wikis since a maliciously-constructed 782 * applet running on the same domain as the wiki can steal the user's cookies. 783 */ 784 $wgAllowJavaUploads = false; 785 786 /** 787 * This is a flag to determine whether or not to check file extensions on upload. 788 * 789 * @warning Setting this to false is insecure for public wikis. 790 */ 791 $wgCheckFileExtensions = true; 792 793 /** 794 * If this is turned off, users may override the warning for files not covered 795 * by $wgFileExtensions. 796 * 797 * @warning Setting this to false is insecure for public wikis. 798 */ 799 $wgStrictFileExtensions = true; 800 801 /** 802 * Setting this to true will disable the upload system's checks for HTML/JavaScript. 803 * 804 * @warning THIS IS VERY DANGEROUS on a publicly editable site, so USE 805 * $wgGroupPermissions TO RESTRICT UPLOADING to only those that you trust 806 */ 807 $wgDisableUploadScriptChecks = false; 808 809 /** 810 * Warn if uploaded files are larger than this (in bytes), or false to disable 811 */ 812 $wgUploadSizeWarning = false; 813 814 /** 815 * list of trusted media-types and MIME types. 816 * Use the MEDIATYPE_xxx constants to represent media types. 817 * This list is used by File::isSafeFile 818 * 819 * Types not listed here will have a warning about unsafe content 820 * displayed on the images description page. It would also be possible 821 * to use this for further restrictions, like disabling direct 822 * [[media:...]] links for non-trusted formats. 823 */ 824 $wgTrustedMediaFormats = array( 825 MEDIATYPE_BITMAP, //all bitmap formats 826 MEDIATYPE_AUDIO, //all audio formats 827 MEDIATYPE_VIDEO, //all plain video formats 828 "image/svg+xml", //svg (only needed if inline rendering of svg is not supported) 829 "application/pdf", //PDF files 830 #"application/x-shockwave-flash", //flash/shockwave movie 831 ); 832 833 /** 834 * Plugins for media file type handling. 835 * Each entry in the array maps a MIME type to a class name 836 */ 837 $wgMediaHandlers = array( 838 'image/jpeg' => 'JpegHandler', 839 'image/png' => 'PNGHandler', 840 'image/gif' => 'GIFHandler', 841 'image/tiff' => 'TiffHandler', 842 'image/x-ms-bmp' => 'BmpHandler', 843 'image/x-bmp' => 'BmpHandler', 844 'image/x-xcf' => 'XCFHandler', 845 'image/svg+xml' => 'SvgHandler', // official 846 'image/svg' => 'SvgHandler', // compat 847 'image/vnd.djvu' => 'DjVuHandler', // official 848 'image/x.djvu' => 'DjVuHandler', // compat 849 'image/x-djvu' => 'DjVuHandler', // compat 850 ); 851 852 /** 853 * Plugins for page content model handling. 854 * Each entry in the array maps a model id to a class name. 855 * 856 * @since 1.21 857 */ 858 $wgContentHandlers = array( 859 // the usual case 860 CONTENT_MODEL_WIKITEXT => 'WikitextContentHandler', 861 // dumb version, no syntax highlighting 862 CONTENT_MODEL_JAVASCRIPT => 'JavaScriptContentHandler', 863 // simple implementation, for use by extensions, etc. 864 CONTENT_MODEL_JSON => 'JsonContentHandler', 865 // dumb version, no syntax highlighting 866 CONTENT_MODEL_CSS => 'CssContentHandler', 867 // plain text, for use by extensions, etc. 868 CONTENT_MODEL_TEXT => 'TextContentHandler', 869 ); 870 871 /** 872 * Whether to enable server-side image thumbnailing. If false, images will 873 * always be sent to the client in full resolution, with appropriate width= and 874 * height= attributes on the <img> tag for the client to do its own scaling. 875 */ 876 $wgUseImageResize = true; 877 878 /** 879 * Resizing can be done using PHP's internal image libraries or using 880 * ImageMagick or another third-party converter, e.g. GraphicMagick. 881 * These support more file formats than PHP, which only supports PNG, 882 * GIF, JPG, XBM and WBMP. 883 * 884 * Use Image Magick instead of PHP builtin functions. 885 */ 886 $wgUseImageMagick = false; 887 888 /** 889 * The convert command shipped with ImageMagick 890 */ 891 $wgImageMagickConvertCommand = '/usr/bin/convert'; 892 893 /** 894 * Sharpening parameter to ImageMagick 895 */ 896 $wgSharpenParameter = '0x0.4'; 897 898 /** 899 * Reduction in linear dimensions below which sharpening will be enabled 900 */ 901 $wgSharpenReductionThreshold = 0.85; 902 903 /** 904 * Temporary directory used for ImageMagick. The directory must exist. Leave 905 * this set to false to let ImageMagick decide for itself. 906 */ 907 $wgImageMagickTempDir = false; 908 909 /** 910 * Use another resizing converter, e.g. GraphicMagick 911 * %s will be replaced with the source path, %d with the destination 912 * %w and %h will be replaced with the width and height. 913 * 914 * @par Example for GraphicMagick: 915 * @code 916 * $wgCustomConvertCommand = "gm convert %s -resize %wx%h %d" 917 * @endcode 918 * 919 * Leave as false to skip this. 920 */ 921 $wgCustomConvertCommand = false; 922 923 /** 924 * used for lossless jpeg rotation 925 * 926 * @since 1.21 927 */ 928 $wgJpegTran = '/usr/bin/jpegtran'; 929 930 /** 931 * Some tests and extensions use exiv2 to manipulate the Exif metadata in some 932 * image formats. 933 */ 934 $wgExiv2Command = '/usr/bin/exiv2'; 935 936 /** 937 * Scalable Vector Graphics (SVG) may be uploaded as images. 938 * Since SVG support is not yet standard in browsers, it is 939 * necessary to rasterize SVGs to PNG as a fallback format. 940 * 941 * An external program is required to perform this conversion. 942 * If set to an array, the first item is a PHP callable and any further items 943 * are passed as parameters after $srcPath, $dstPath, $width, $height 944 */ 945 $wgSVGConverters = array( 946 'ImageMagick' => '$path/convert -background white -thumbnail $widthx$height\! $input PNG:$output', 947 'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output', 948 'inkscape' => '$path/inkscape -z -w $width -f $input -e $output', 949 'batik' => 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d ' 950 . '$output $input', 951 'rsvg' => '$path/rsvg -w $width -h $height $input $output', 952 'imgserv' => '$path/imgserv-wrapper -i svg -o png -w$width $input $output', 953 'ImagickExt' => array( 'SvgHandler::rasterizeImagickExt' ), 954 ); 955 956 /** 957 * Pick a converter defined in $wgSVGConverters 958 */ 959 $wgSVGConverter = 'ImageMagick'; 960 961 /** 962 * If not in the executable PATH, specify the SVG converter path. 963 */ 964 $wgSVGConverterPath = ''; 965 966 /** 967 * Don't scale a SVG larger than this 968 */ 969 $wgSVGMaxSize = 2048; 970 971 /** 972 * Don't read SVG metadata beyond this point. 973 * Default is 1024*256 bytes 974 */ 975 $wgSVGMetadataCutoff = 262144; 976 977 /** 978 * Disallow <title> element in SVG files. 979 * 980 * MediaWiki will reject HTMLesque tags in uploaded files due to idiotic 981 * browsers which can not perform basic stuff like MIME detection and which are 982 * vulnerable to further idiots uploading crap files as images. 983 * 984 * When this directive is on, "<title>" will be allowed in files with an 985 * "image/svg+xml" MIME type. You should leave this disabled if your web server 986 * is misconfigured and doesn't send appropriate MIME types for SVG images. 987 */ 988 $wgAllowTitlesInSVG = false; 989 990 /** 991 * The maximum number of pixels a source image can have if it is to be scaled 992 * down by a scaler that requires the full source image to be decompressed 993 * and stored in decompressed form, before the thumbnail is generated. 994 * 995 * This provides a limit on memory usage for the decompression side of the 996 * image scaler. The limit is used when scaling PNGs with any of the 997 * built-in image scalers, such as ImageMagick or GD. It is ignored for 998 * JPEGs with ImageMagick, and when using the VipsScaler extension. 999 * 1000 * The default is 50 MB if decompressed to RGBA form, which corresponds to 1001 * 12.5 million pixels or 3500x3500. 1002 */ 1003 $wgMaxImageArea = 1.25e7; 1004 1005 /** 1006 * Force thumbnailing of animated GIFs above this size to a single 1007 * frame instead of an animated thumbnail. As of MW 1.17 this limit 1008 * is checked against the total size of all frames in the animation. 1009 * It probably makes sense to keep this equal to $wgMaxImageArea. 1010 */ 1011 $wgMaxAnimatedGifArea = 1.25e7; 1012 1013 /** 1014 * Browsers don't support TIFF inline generally... 1015 * For inline display, we need to convert to PNG or JPEG. 1016 * Note scaling should work with ImageMagick, but may not with GD scaling. 1017 * 1018 * @par Example: 1019 * @code 1020 * // PNG is lossless, but inefficient for photos 1021 * $wgTiffThumbnailType = array( 'png', 'image/png' ); 1022 * // JPEG is good for photos, but has no transparency support. Bad for diagrams. 1023 * $wgTiffThumbnailType = array( 'jpg', 'image/jpeg' ); 1024 * @endcode 1025 */ 1026 $wgTiffThumbnailType = false; 1027 1028 /** 1029 * If rendered thumbnail files are older than this timestamp, they 1030 * will be rerendered on demand as if the file didn't already exist. 1031 * Update if there is some need to force thumbs and SVG rasterizations 1032 * to rerender, such as fixes to rendering bugs. 1033 */ 1034 $wgThumbnailEpoch = '20030516000000'; 1035 1036 /** 1037 * Certain operations are avoided if there were too many recent failures, 1038 * for example, thumbnail generation. Bump this value to invalidate all 1039 * memory of failed operations and thus allow further attempts to resume. 1040 * This is useful when a cause for the failures has been found and fixed. 1041 */ 1042 $wgAttemptFailureEpoch = 1; 1043 1044 /** 1045 * If set, inline scaled images will still produce "<img>" tags ready for 1046 * output instead of showing an error message. 1047 * 1048 * This may be useful if errors are transitory, especially if the site 1049 * is configured to automatically render thumbnails on request. 1050 * 1051 * On the other hand, it may obscure error conditions from debugging. 1052 * Enable the debug log or the 'thumbnail' log group to make sure errors 1053 * are logged to a file for review. 1054 */ 1055 $wgIgnoreImageErrors = false; 1056 1057 /** 1058 * Allow thumbnail rendering on page view. If this is false, a valid 1059 * thumbnail URL is still output, but no file will be created at 1060 * the target location. This may save some time if you have a 1061 * thumb.php or 404 handler set up which is faster than the regular 1062 * webserver(s). 1063 */ 1064 $wgGenerateThumbnailOnParse = true; 1065 1066 /** 1067 * Show thumbnails for old images on the image description page 1068 */ 1069 $wgShowArchiveThumbnails = true; 1070 1071 /** 1072 * If set to true, images that contain certain the exif orientation tag will 1073 * be rotated accordingly. If set to null, try to auto-detect whether a scaler 1074 * is available that can rotate. 1075 */ 1076 $wgEnableAutoRotation = null; 1077 1078 /** 1079 * Internal name of virus scanner. This serves as a key to the 1080 * $wgAntivirusSetup array. Set this to NULL to disable virus scanning. If not 1081 * null, every file uploaded will be scanned for viruses. 1082 */ 1083 $wgAntivirus = null; 1084 1085 /** 1086 * Configuration for different virus scanners. This an associative array of 1087 * associative arrays. It contains one setup array per known scanner type. 1088 * The entry is selected by $wgAntivirus, i.e. 1089 * valid values for $wgAntivirus are the keys defined in this array. 1090 * 1091 * The configuration array for each scanner contains the following keys: 1092 * "command", "codemap", "messagepattern": 1093 * 1094 * "command" is the full command to call the virus scanner - %f will be 1095 * replaced with the name of the file to scan. If not present, the filename 1096 * will be appended to the command. Note that this must be overwritten if the 1097 * scanner is not in the system path; in that case, please set 1098 * $wgAntivirusSetup[$wgAntivirus]['command'] to the desired command with full 1099 * path. 1100 * 1101 * "codemap" is a mapping of exit code to return codes of the detectVirus 1102 * function in SpecialUpload. 1103 * - An exit code mapped to AV_SCAN_FAILED causes the function to consider 1104 * the scan to be failed. This will pass the file if $wgAntivirusRequired 1105 * is not set. 1106 * - An exit code mapped to AV_SCAN_ABORTED causes the function to consider 1107 * the file to have an unsupported format, which is probably immune to 1108 * viruses. This causes the file to pass. 1109 * - An exit code mapped to AV_NO_VIRUS will cause the file to pass, meaning 1110 * no virus was found. 1111 * - All other codes (like AV_VIRUS_FOUND) will cause the function to report 1112 * a virus. 1113 * - You may use "*" as a key in the array to catch all exit codes not mapped otherwise. 1114 * 1115 * "messagepattern" is a perl regular expression to extract the meaningful part of the scanners 1116 * output. The relevant part should be matched as group one (\1). 1117 * If not defined or the pattern does not match, the full message is shown to the user. 1118 */ 1119 $wgAntivirusSetup = array( 1120 1121 #setup for clamav 1122 'clamav' => array( 1123 'command' => 'clamscan --no-summary ', 1124 'codemap' => array( 1125 "0" => AV_NO_VIRUS, # no virus 1126 "1" => AV_VIRUS_FOUND, # virus found 1127 "52" => AV_SCAN_ABORTED, # unsupported file format (probably immune) 1128 "*" => AV_SCAN_FAILED, # else scan failed 1129 ), 1130 'messagepattern' => '/.*?:(.*)/sim', 1131 ), 1132 ); 1133 1134 /** 1135 * Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected. 1136 */ 1137 $wgAntivirusRequired = true; 1138 1139 /** 1140 * Determines if the MIME type of uploaded files should be checked 1141 */ 1142 $wgVerifyMimeType = true; 1143 1144 /** 1145 * Sets the MIME type definition file to use by MimeMagic.php. 1146 * Set to null, to use built-in defaults only. 1147 * example: $wgMimeTypeFile = '/etc/mime.types'; 1148 */ 1149 $wgMimeTypeFile = 'includes/mime.types'; 1150 1151 /** 1152 * Sets the MIME type info file to use by MimeMagic.php. 1153 * Set to null, to use built-in defaults only. 1154 */ 1155 $wgMimeInfoFile = 'includes/mime.info'; 1156 1157 /** 1158 * Sets an external MIME detector program. The command must print only 1159 * the MIME type to standard output. 1160 * The name of the file to process will be appended to the command given here. 1161 * If not set or NULL, PHP's fileinfo extension will be used if available. 1162 * 1163 * @par Example: 1164 * @code 1165 * #$wgMimeDetectorCommand = "file -bi"; # use external MIME detector (Linux) 1166 * @endcode 1167 */ 1168 $wgMimeDetectorCommand = null; 1169 1170 /** 1171 * Switch for trivial MIME detection. Used by thumb.php to disable all fancy 1172 * things, because only a few types of images are needed and file extensions 1173 * can be trusted. 1174 */ 1175 $wgTrivialMimeDetection = false; 1176 1177 /** 1178 * Additional XML types we can allow via MIME-detection. 1179 * array = ( 'rootElement' => 'associatedMimeType' ) 1180 */ 1181 $wgXMLMimeTypes = array( 1182 'http://www.w3.org/2000/svg:svg' => 'image/svg+xml', 1183 'svg' => 'image/svg+xml', 1184 'http://www.lysator.liu.se/~alla/dia/:diagram' => 'application/x-dia-diagram', 1185 'http://www.w3.org/1999/xhtml:html' => 'text/html', // application/xhtml+xml? 1186 'html' => 'text/html', // application/xhtml+xml? 1187 ); 1188 1189 /** 1190 * Limit images on image description pages to a user-selectable limit. In order 1191 * to reduce disk usage, limits can only be selected from a list. 1192 * The user preference is saved as an array offset in the database, by default 1193 * the offset is set with $wgDefaultUserOptions['imagesize']. Make sure you 1194 * change it if you alter the array (see bug 8858). 1195 * This is the list of settings the user can choose from: 1196 */ 1197 $wgImageLimits = array( 1198 array( 320, 240 ), 1199 array( 640, 480 ), 1200 array( 800, 600 ), 1201 array( 1024, 768 ), 1202 array( 1280, 1024 ) 1203 ); 1204 1205 /** 1206 * Adjust thumbnails on image pages according to a user setting. In order to 1207 * reduce disk usage, the values can only be selected from a list. This is the 1208 * list of settings the user can choose from: 1209 */ 1210 $wgThumbLimits = array( 1211 120, 1212 150, 1213 180, 1214 200, 1215 250, 1216 300 1217 ); 1218 1219 /** 1220 * When defined, is an array of image widths used as buckets for thumbnail generation. 1221 * The goal is to save resources by generating thumbnails based on reference buckets instead of 1222 * always using the original. This will incur a speed gain but cause a quality loss. 1223 * 1224 * The buckets generation is chained, with each bucket generated based on the above bucket 1225 * when possible. File handlers have to opt into using that feature. For now only BitmapHandler 1226 * supports it. 1227 */ 1228 $wgThumbnailBuckets = null; 1229 1230 /** 1231 * When using thumbnail buckets as defined above, this sets the minimum distance to the bucket 1232 * above the requested size. The distance represents how many extra pixels of width the bucket 1233 * needs in order to be used as the reference for a given thumbnail. For example, with the 1234 * following buckets: 1235 * 1236 * $wgThumbnailBuckets = array ( 128, 256, 512 ); 1237 * 1238 * and a distance of 50: 1239 * 1240 * $wgThumbnailMinimumBucketDistance = 50; 1241 * 1242 * If we want to render a thumbnail of width 220px, the 512px bucket will be used, 1243 * because 220 + 50 = 270 and the closest bucket bigger than 270px is 512. 1244 */ 1245 $wgThumbnailMinimumBucketDistance = 50; 1246 1247 /** 1248 * Default parameters for the "<gallery>" tag 1249 */ 1250 $wgGalleryOptions = array( 1251 'imagesPerRow' => 0, // Default number of images per-row in the gallery. 0 -> Adapt to screensize 1252 'imageWidth' => 120, // Width of the cells containing images in galleries (in "px") 1253 'imageHeight' => 120, // Height of the cells containing images in galleries (in "px") 1254 'captionLength' => 25, // Length of caption to truncate (in characters) 1255 'showBytes' => true, // Show the filesize in bytes in categories 1256 'mode' => 'traditional', 1257 ); 1258 1259 /** 1260 * Adjust width of upright images when parameter 'upright' is used 1261 * This allows a nicer look for upright images without the need to fix the width 1262 * by hardcoded px in wiki sourcecode. 1263 */ 1264 $wgThumbUpright = 0.75; 1265 1266 /** 1267 * Default value for chmoding of new directories. 1268 */ 1269 $wgDirectoryMode = 0777; 1270 1271 /** 1272 * Generate and use thumbnails suitable for screens with 1.5 and 2.0 pixel densities. 1273 * 1274 * This means a 320x240 use of an image on the wiki will also generate 480x360 and 640x480 1275 * thumbnails, output via data-src-1-5 and data-src-2-0. Runtime JavaScript switches the 1276 * images in after loading the original low-resolution versions depending on the reported 1277 * window.devicePixelRatio. 1278 */ 1279 $wgResponsiveImages = true; 1280 1281 /** 1282 * @name DJVU settings 1283 * @{ 1284 */ 1285 1286 /** 1287 * Path of the djvudump executable 1288 * Enable this and $wgDjvuRenderer to enable djvu rendering 1289 * example: $wgDjvuDump = 'djvudump'; 1290 */ 1291 $wgDjvuDump = null; 1292 1293 /** 1294 * Path of the ddjvu DJVU renderer 1295 * Enable this and $wgDjvuDump to enable djvu rendering 1296 * example: $wgDjvuRenderer = 'ddjvu'; 1297 */ 1298 $wgDjvuRenderer = null; 1299 1300 /** 1301 * Path of the djvutxt DJVU text extraction utility 1302 * Enable this and $wgDjvuDump to enable text layer extraction from djvu files 1303 * example: $wgDjvuTxt = 'djvutxt'; 1304 */ 1305 $wgDjvuTxt = null; 1306 1307 /** 1308 * Path of the djvutoxml executable 1309 * This works like djvudump except much, much slower as of version 3.5. 1310 * 1311 * For now we recommend you use djvudump instead. The djvuxml output is 1312 * probably more stable, so we'll switch back to it as soon as they fix 1313 * the efficiency problem. 1314 * http://sourceforge.net/tracker/index.php?func=detail&aid=1704049&group_id=32953&atid=406583 1315 * 1316 * @par Example: 1317 * @code 1318 * $wgDjvuToXML = 'djvutoxml'; 1319 * @endcode 1320 */ 1321 $wgDjvuToXML = null; 1322 1323 /** 1324 * Shell command for the DJVU post processor 1325 * Default: pnmtojpeg, since ddjvu generates ppm output 1326 * Set this to false to output the ppm file directly. 1327 */ 1328 $wgDjvuPostProcessor = 'pnmtojpeg'; 1329 1330 /** 1331 * File extension for the DJVU post processor output 1332 */ 1333 $wgDjvuOutputExtension = 'jpg'; 1334 1335 /** @} */ # end of DJvu } 1336 1337 /** @} */ # end of file uploads } 1338 1339 /************************************************************************//** 1340 * @name Email settings 1341 * @{ 1342 */ 1343 1344 1345 /** 1346 * Site admin email address. 1347 * 1348 * Defaults to "wikiadmin@{$wgServerName}". 1349 */ 1350 $wgEmergencyContact = false; 1351 1352 /** 1353 * Password reminder email address. 1354 * 1355 * The address we should use as sender when a user is requesting his password. 1356 * 1357 * Defaults to "apache@{$wgServerName}". 1358 */ 1359 $wgPasswordSender = false; 1360 1361 /** 1362 * Password reminder name 1363 * 1364 * @deprecated since 1.23; use the system message 'emailsender' instead. 1365 */ 1366 $wgPasswordSenderName = 'MediaWiki Mail'; 1367 1368 /** 1369 * Dummy address which should be accepted during mail send action. 1370 * It might be necessary to adapt the address or to set it equal 1371 * to the $wgEmergencyContact address. 1372 */ 1373 $wgNoReplyAddress = '[email protected]'; 1374 1375 /** 1376 * Set to true to enable the e-mail basic features: 1377 * Password reminders, etc. If sending e-mail on your 1378 * server doesn't work, you might want to disable this. 1379 */ 1380 $wgEnableEmail = true; 1381 1382 /** 1383 * Set to true to enable user-to-user e-mail. 1384 * This can potentially be abused, as it's hard to track. 1385 */ 1386 $wgEnableUserEmail = true; 1387 1388 /** 1389 * Set to true to put the sending user's email in a Reply-To header 1390 * instead of From. ($wgEmergencyContact will be used as From.) 1391 * 1392 * Some mailers (eg sSMTP) set the SMTP envelope sender to the From value, 1393 * which can cause problems with SPF validation and leak recipient addresses 1394 * when bounces are sent to the sender. 1395 */ 1396 $wgUserEmailUseReplyTo = false; 1397 1398 /** 1399 * Minimum time, in hours, which must elapse between password reminder 1400 * emails for a given account. This is to prevent abuse by mail flooding. 1401 */ 1402 $wgPasswordReminderResendTime = 24; 1403 1404 /** 1405 * The time, in seconds, when an emailed temporary password expires. 1406 */ 1407 $wgNewPasswordExpiry = 3600 * 24 * 7; 1408 1409 /** 1410 * The time, in seconds, when an email confirmation email expires 1411 */ 1412 $wgUserEmailConfirmationTokenExpiry = 7 * 24 * 60 * 60; 1413 1414 /** 1415 * The number of days that a user's password is good for. After this number of days, the 1416 * user will be asked to reset their password. Set to false to disable password expiration. 1417 */ 1418 $wgPasswordExpirationDays = false; 1419 1420 /** 1421 * If a user's password is expired, the number of seconds when they can still login, 1422 * and cancel their password change, but are sent to the password change form on each login. 1423 */ 1424 $wgPasswordExpireGrace = 3600 * 24 * 7; // 7 days 1425 1426 /** 1427 * SMTP Mode. 1428 * 1429 * For using a direct (authenticated) SMTP server connection. 1430 * Default to false or fill an array : 1431 * 1432 * @code 1433 * $wgSMTP = array( 1434 * 'host' => 'SMTP domain', 1435 * 'IDHost' => 'domain for MessageID', 1436 * 'port' => '25', 1437 * 'auth' => [true|false], 1438 * 'username' => [SMTP username], 1439 * 'password' => [SMTP password], 1440 * ); 1441 * @endcode 1442 */ 1443 $wgSMTP = false; 1444 1445 /** 1446 * Additional email parameters, will be passed as the last argument to mail() call. 1447 * If using safe_mode this has no effect 1448 */ 1449 $wgAdditionalMailParams = null; 1450 1451 /** 1452 * For parts of the system that have been updated to provide HTML email content, send 1453 * both text and HTML parts as the body of the email 1454 */ 1455 $wgAllowHTMLEmail = false; 1456 1457 /** 1458 * True: from page editor if s/he opted-in. False: Enotif mails appear to come 1459 * from $wgEmergencyContact 1460 */ 1461 $wgEnotifFromEditor = false; 1462 1463 // TODO move UPO to preferences probably ? 1464 # If set to true, users get a corresponding option in their preferences and can choose to 1465 # enable or disable at their discretion 1466 # If set to false, the corresponding input form on the user preference page is suppressed 1467 # It call this to be a "user-preferences-option (UPO)" 1468 1469 /** 1470 * Require email authentication before sending mail to an email address. 1471 * This is highly recommended. It prevents MediaWiki from being used as an open 1472 * spam relay. 1473 */ 1474 $wgEmailAuthentication = true; 1475 1476 /** 1477 * Allow users to enable email notification ("enotif") on watchlist changes. 1478 */ 1479 $wgEnotifWatchlist = false; 1480 1481 /** 1482 * Allow users to enable email notification ("enotif") when someone edits their 1483 * user talk page. 1484 */ 1485 $wgEnotifUserTalk = false; 1486 1487 /** 1488 * Set the Reply-to address in notifications to the editor's address, if user 1489 * allowed this in the preferences. 1490 */ 1491 $wgEnotifRevealEditorAddress = false; 1492 1493 /** 1494 * Send notification mails on minor edits to watchlist pages. This is enabled 1495 * by default. Does not affect user talk notifications. 1496 */ 1497 $wgEnotifMinorEdits = true; 1498 1499 /** 1500 * Send a generic mail instead of a personalised mail for each user. This 1501 * always uses UTC as the time zone, and doesn't include the username. 1502 * 1503 * For pages with many users watching, this can significantly reduce mail load. 1504 * Has no effect when using sendmail rather than SMTP. 1505 */ 1506 $wgEnotifImpersonal = false; 1507 1508 /** 1509 * Maximum number of users to mail at once when using impersonal mail. Should 1510 * match the limit on your mail server. 1511 */ 1512 $wgEnotifMaxRecips = 500; 1513 1514 /** 1515 * Send mails via the job queue. This can be useful to reduce the time it 1516 * takes to save a page that a lot of people are watching. 1517 */ 1518 $wgEnotifUseJobQ = false; 1519 1520 /** 1521 * Use real name instead of username in e-mail "from" field. 1522 */ 1523 $wgEnotifUseRealName = false; 1524 1525 /** 1526 * Array of usernames who will be sent a notification email for every change 1527 * which occurs on a wiki. Users will not be notified of their own changes. 1528 */ 1529 $wgUsersNotifiedOnAllChanges = array(); 1530 1531 /** @} */ # end of email settings 1532 1533 /************************************************************************//** 1534 * @name Database settings 1535 * @{ 1536 */ 1537 1538 /** 1539 * Database host name or IP address 1540 */ 1541 $wgDBserver = 'localhost'; 1542 1543 /** 1544 * Database port number (for PostgreSQL and Microsoft SQL Server). 1545 */ 1546 $wgDBport = 5432; 1547 1548 /** 1549 * Name of the database 1550 */ 1551 $wgDBname = 'my_wiki'; 1552 1553 /** 1554 * Database username 1555 */ 1556 $wgDBuser = 'wikiuser'; 1557 1558 /** 1559 * Database user's password 1560 */ 1561 $wgDBpassword = ''; 1562 1563 /** 1564 * Database type 1565 */ 1566 $wgDBtype = 'mysql'; 1567 1568 /** 1569 * Whether to use SSL in DB connection. 1570 * 1571 * This setting is only used $wgLBFactoryConf['class'] is set to 1572 * 'LBFactorySimple' and $wgDBservers is an empty array; otherwise 1573 * the DBO_SSL flag must be set in the 'flags' option of the database 1574 * connection to achieve the same functionality. 1575 */ 1576 $wgDBssl = false; 1577 1578 /** 1579 * Whether to use compression in DB connection. 1580 * 1581 * This setting is only used $wgLBFactoryConf['class'] is set to 1582 * 'LBFactorySimple' and $wgDBservers is an empty array; otherwise 1583 * the DBO_COMPRESS flag must be set in the 'flags' option of the database 1584 * connection to achieve the same functionality. 1585 */ 1586 $wgDBcompress = false; 1587 1588 /** 1589 * Separate username for maintenance tasks. Leave as null to use the default. 1590 */ 1591 $wgDBadminuser = null; 1592 1593 /** 1594 * Separate password for maintenance tasks. Leave as null to use the default. 1595 */ 1596 $wgDBadminpassword = null; 1597 1598 /** 1599 * Search type. 1600 * Leave as null to select the default search engine for the 1601 * selected database type (eg SearchMySQL), or set to a class 1602 * name to override to a custom search engine. 1603 */ 1604 $wgSearchType = null; 1605 1606 /** 1607 * Alternative search types 1608 * Sometimes you want to support multiple search engines for testing. This 1609 * allows users to select their search engine of choice via url parameters 1610 * to Special:Search and the action=search API. If using this, there's no 1611 * need to add $wgSearchType to it, that is handled automatically. 1612 */ 1613 $wgSearchTypeAlternatives = null; 1614 1615 /** 1616 * Table name prefix 1617 */ 1618 $wgDBprefix = ''; 1619 1620 /** 1621 * MySQL table options to use during installation or update 1622 */ 1623 $wgDBTableOptions = 'ENGINE=InnoDB'; 1624 1625 /** 1626 * SQL Mode - default is turning off all modes, including strict, if set. 1627 * null can be used to skip the setting for performance reasons and assume 1628 * DBA has done his best job. 1629 * String override can be used for some additional fun :-) 1630 */ 1631 $wgSQLMode = ''; 1632 1633 /** 1634 * Mediawiki schema 1635 */ 1636 $wgDBmwschema = null; 1637 1638 /** 1639 * To override default SQLite data directory ($docroot/../data) 1640 */ 1641 $wgSQLiteDataDir = ''; 1642 1643 /** 1644 * Make all database connections secretly go to localhost. Fool the load balancer 1645 * thinking there is an arbitrarily large cluster of servers to connect to. 1646 * Useful for debugging. 1647 */ 1648 $wgAllDBsAreLocalhost = false; 1649 1650 /** 1651 * Shared database for multiple wikis. Commonly used for storing a user table 1652 * for single sign-on. The server for this database must be the same as for the 1653 * main database. 1654 * 1655 * For backwards compatibility the shared prefix is set to the same as the local 1656 * prefix, and the user table is listed in the default list of shared tables. 1657 * The user_properties table is also added so that users will continue to have their 1658 * preferences shared (preferences were stored in the user table prior to 1.16) 1659 * 1660 * $wgSharedTables may be customized with a list of tables to share in the shared 1661 * database. However it is advised to limit what tables you do share as many of 1662 * MediaWiki's tables may have side effects if you try to share them. 1663 * 1664 * $wgSharedPrefix is the table prefix for the shared database. It defaults to 1665 * $wgDBprefix. 1666 * 1667 * @deprecated since 1.21 In new code, use the $wiki parameter to wfGetLB() to 1668 * access remote databases. Using wfGetLB() allows the shared database to 1669 * reside on separate servers to the wiki's own database, with suitable 1670 * configuration of $wgLBFactoryConf. 1671 */ 1672 $wgSharedDB = null; 1673 1674 /** 1675 * @see $wgSharedDB 1676 */ 1677 $wgSharedPrefix = false; 1678 1679 /** 1680 * @see $wgSharedDB 1681 */ 1682 $wgSharedTables = array( 'user', 'user_properties' ); 1683 1684 /** 1685 * Database load balancer 1686 * This is a two-dimensional array, an array of server info structures 1687 * Fields are: 1688 * - host: Host name 1689 * - dbname: Default database name 1690 * - user: DB user 1691 * - password: DB password 1692 * - type: DB type 1693 * 1694 * - load: Ratio of DB_SLAVE load, must be >=0, the sum of all loads must be >0. 1695 * If this is zero for any given server, no normal query traffic will be 1696 * sent to it. It will be excluded from lag checks in maintenance scripts. 1697 * The only way it can receive traffic is if groupLoads is used. 1698 * 1699 * - groupLoads: array of load ratios, the key is the query group name. A query may belong 1700 * to several groups, the most specific group defined here is used. 1701 * 1702 * - flags: bit field 1703 * - DBO_DEFAULT -- turns on DBO_TRX only if !$wgCommandLineMode (recommended) 1704 * - DBO_DEBUG -- equivalent of $wgDebugDumpSql 1705 * - DBO_TRX -- wrap entire request in a transaction 1706 * - DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php) 1707 * - DBO_PERSISTENT -- enables persistent database connections 1708 * - DBO_SSL -- uses SSL/TLS encryption in database connections, if available 1709 * - DBO_COMPRESS -- uses internal compression in database connections, 1710 * if available 1711 * 1712 * - max lag: (optional) Maximum replication lag before a slave will taken out of rotation 1713 * 1714 * These and any other user-defined properties will be assigned to the mLBInfo member 1715 * variable of the Database object. 1716 * 1717 * Leave at false to use the single-server variables above. If you set this 1718 * variable, the single-server variables will generally be ignored (except 1719 * perhaps in some command-line scripts). 1720 * 1721 * The first server listed in this array (with key 0) will be the master. The 1722 * rest of the servers will be slaves. To prevent writes to your slaves due to 1723 * accidental misconfiguration or MediaWiki bugs, set read_only=1 on all your 1724 * slaves in my.cnf. You can set read_only mode at runtime using: 1725 * 1726 * @code 1727 * SET @@read_only=1; 1728 * @endcode 1729 * 1730 * Since the effect of writing to a slave is so damaging and difficult to clean 1731 * up, we at Wikimedia set read_only=1 in my.cnf on all our DB servers, even 1732 * our masters, and then set read_only=0 on masters at runtime. 1733 */ 1734 $wgDBservers = false; 1735 1736 /** 1737 * Load balancer factory configuration 1738 * To set up a multi-master wiki farm, set the class here to something that 1739 * can return a LoadBalancer with an appropriate master on a call to getMainLB(). 1740 * The class identified here is responsible for reading $wgDBservers, 1741 * $wgDBserver, etc., so overriding it may cause those globals to be ignored. 1742 * 1743 * The LBFactoryMulti class is provided for this purpose, please see 1744 * includes/db/LBFactoryMulti.php for configuration information. 1745 */ 1746 $wgLBFactoryConf = array( 'class' => 'LBFactorySimple' ); 1747 1748 /** 1749 * How long to wait for a slave to catch up to the master 1750 * @deprecated since 1.24 1751 */ 1752 $wgMasterWaitTimeout = 10; 1753 1754 /** 1755 * File to log database errors to 1756 */ 1757 $wgDBerrorLog = false; 1758 1759 /** 1760 * Timezone to use in the error log. 1761 * Defaults to the wiki timezone ($wgLocaltimezone). 1762 * 1763 * A list of usable timezones can found at: 1764 * http://php.net/manual/en/timezones.php 1765 * 1766 * @par Examples: 1767 * @code 1768 * $wgLocaltimezone = 'UTC'; 1769 * $wgLocaltimezone = 'GMT'; 1770 * $wgLocaltimezone = 'PST8PDT'; 1771 * $wgLocaltimezone = 'Europe/Sweden'; 1772 * $wgLocaltimezone = 'CET'; 1773 * @endcode 1774 * 1775 * @since 1.20 1776 */ 1777 $wgDBerrorLogTZ = false; 1778 1779 /** 1780 * Scale load balancer polling time so that under overload conditions, the 1781 * database server receives a SHOW STATUS query at an average interval of this 1782 * many microseconds 1783 */ 1784 $wgDBAvgStatusPoll = 2000; 1785 1786 /** 1787 * Set to true to engage MySQL 4.1/5.0 charset-related features; 1788 * for now will just cause sending of 'SET NAMES=utf8' on connect. 1789 * 1790 * @warning THIS IS EXPERIMENTAL! 1791 * 1792 * May break if you're not using the table defs from mysql5/tables.sql. 1793 * May break if you're upgrading an existing wiki if set differently. 1794 * Broken symptoms likely to include incorrect behavior with page titles, 1795 * usernames, comments etc containing non-ASCII characters. 1796 * Might also cause failures on the object cache and other things. 1797 * 1798 * Even correct usage may cause failures with Unicode supplementary 1799 * characters (those not in the Basic Multilingual Plane) unless MySQL 1800 * has enhanced their Unicode support. 1801 */ 1802 $wgDBmysql5 = false; 1803 1804 /** 1805 * Set true to enable Oracle DCRP (supported from 11gR1 onward) 1806 * 1807 * To use this feature set to true and use a datasource defined as 1808 * POOLED (i.e. in tnsnames definition set server=pooled in connect_data 1809 * block). 1810 * 1811 * Starting from 11gR1 you can use DCRP (Database Resident Connection 1812 * Pool) that maintains established sessions and reuses them on new 1813 * connections. 1814 * 1815 * Not completely tested, but it should fall back on normal connection 1816 * in case the pool is full or the datasource is not configured as 1817 * pooled. 1818 * And the other way around; using oci_pconnect on a non pooled 1819 * datasource should produce a normal connection. 1820 * 1821 * When it comes to frequent shortlived DB connections like with MW 1822 * Oracle tends to s***. The problem is the driver connects to the 1823 * database reasonably fast, but establishing a session takes time and 1824 * resources. MW does not rely on session state (as it does not use 1825 * features such as package variables) so establishing a valid session 1826 * is in this case an unwanted overhead that just slows things down. 1827 * 1828 * @warning EXPERIMENTAL! 1829 * 1830 */ 1831 $wgDBOracleDRCP = false; 1832 1833 /** 1834 * Other wikis on this site, can be administered from a single developer 1835 * account. 1836 * Array numeric key => database name 1837 */ 1838 $wgLocalDatabases = array(); 1839 1840 /** 1841 * If lag is higher than $wgSlaveLagWarning, show a warning in some special 1842 * pages (like watchlist). If the lag is higher than $wgSlaveLagCritical, 1843 * show a more obvious warning. 1844 */ 1845 $wgSlaveLagWarning = 10; 1846 1847 /** 1848 * @see $wgSlaveLagWarning 1849 */ 1850 $wgSlaveLagCritical = 30; 1851 1852 /** 1853 * Use Windows Authentication instead of $wgDBuser / $wgDBpassword for MS SQL Server 1854 */ 1855 $wgDBWindowsAuthentication = false; 1856 1857 /**@}*/ # End of DB settings } 1858 1859 /************************************************************************//** 1860 * @name Text storage 1861 * @{ 1862 */ 1863 1864 /** 1865 * We can also compress text stored in the 'text' table. If this is set on, new 1866 * revisions will be compressed on page save if zlib support is available. Any 1867 * compressed revisions will be decompressed on load regardless of this setting, 1868 * but will not be readable at all* if zlib support is not available. 1869 */ 1870 $wgCompressRevisions = false; 1871 1872 /** 1873 * External stores allow including content 1874 * from non database sources following URL links. 1875 * 1876 * Short names of ExternalStore classes may be specified in an array here: 1877 * @code 1878 * $wgExternalStores = array("http","file","custom")... 1879 * @endcode 1880 * 1881 * CAUTION: Access to database might lead to code execution 1882 */ 1883 $wgExternalStores = array(); 1884 1885 /** 1886 * An array of external MySQL servers. 1887 * 1888 * @par Example: 1889 * Create a cluster named 'cluster1' containing three servers: 1890 * @code 1891 * $wgExternalServers = array( 1892 * 'cluster1' => array( 'srv28', 'srv29', 'srv30' ) 1893 * ); 1894 * @endcode 1895 * 1896 * Used by LBFactorySimple, may be ignored if $wgLBFactoryConf is set to 1897 * another class. 1898 */ 1899 $wgExternalServers = array(); 1900 1901 /** 1902 * The place to put new revisions, false to put them in the local text table. 1903 * Part of a URL, e.g. DB://cluster1 1904 * 1905 * Can be an array instead of a single string, to enable data distribution. Keys 1906 * must be consecutive integers, starting at zero. 1907 * 1908 * @par Example: 1909 * @code 1910 * $wgDefaultExternalStore = array( 'DB://cluster1', 'DB://cluster2' ); 1911 * @endcode 1912 * 1913 * @var array 1914 */ 1915 $wgDefaultExternalStore = false; 1916 1917 /** 1918 * Revision text may be cached in $wgMemc to reduce load on external storage 1919 * servers and object extraction overhead for frequently-loaded revisions. 1920 * 1921 * Set to 0 to disable, or number of seconds before cache expiry. 1922 */ 1923 $wgRevisionCacheExpiry = 0; 1924 1925 /** @} */ # end text storage } 1926 1927 /************************************************************************//** 1928 * @name Performance hacks and limits 1929 * @{ 1930 */ 1931 1932 /** 1933 * Disable database-intensive features 1934 */ 1935 $wgMiserMode = false; 1936 1937 /** 1938 * Disable all query pages if miser mode is on, not just some 1939 */ 1940 $wgDisableQueryPages = false; 1941 1942 /** 1943 * Number of rows to cache in 'querycache' table when miser mode is on 1944 */ 1945 $wgQueryCacheLimit = 1000; 1946 1947 /** 1948 * Number of links to a page required before it is deemed "wanted" 1949 */ 1950 $wgWantedPagesThreshold = 1; 1951 1952 /** 1953 * Enable slow parser functions 1954 */ 1955 $wgAllowSlowParserFunctions = false; 1956 1957 /** 1958 * Allow schema updates 1959 */ 1960 $wgAllowSchemaUpdates = true; 1961 1962 /** 1963 * Anti-lock flags - bitfield 1964 * - ALF_NO_LINK_LOCK: 1965 * Don't use locking reads when updating the link table. This is 1966 * necessary for wikis with a high edit rate for performance 1967 * reasons, but may cause link table inconsistency 1968 */ 1969 $wgAntiLockFlags = 0; 1970 1971 /** 1972 * Maximum article size in kilobytes 1973 */ 1974 $wgMaxArticleSize = 2048; 1975 1976 /** 1977 * The minimum amount of memory that MediaWiki "needs"; MediaWiki will try to 1978 * raise PHP's memory limit if it's below this amount. 1979 */ 1980 $wgMemoryLimit = "50M"; 1981 1982 /** @} */ # end performance hacks } 1983 1984 /************************************************************************//** 1985 * @name Cache settings 1986 * @{ 1987 */ 1988 1989 /** 1990 * Directory for caching data in the local filesystem. Should not be accessible 1991 * from the web. Set this to false to not use any local caches. 1992 * 1993 * Note: if multiple wikis share the same localisation cache directory, they 1994 * must all have the same set of extensions. You can set a directory just for 1995 * the localisation cache using $wgLocalisationCacheConf['storeDirectory']. 1996 */ 1997 $wgCacheDirectory = false; 1998 1999 /** 2000 * Main cache type. This should be a cache with fast access, but it may have 2001 * limited space. By default, it is disabled, since the database is not fast 2002 * enough to make it worthwhile. 2003 * 2004 * The options are: 2005 * 2006 * - CACHE_ANYTHING: Use anything, as long as it works 2007 * - CACHE_NONE: Do not cache 2008 * - CACHE_DB: Store cache objects in the DB 2009 * - CACHE_MEMCACHED: MemCached, must specify servers in $wgMemCachedServers 2010 * - CACHE_ACCEL: APC, XCache or WinCache 2011 * - (other): A string may be used which identifies a cache 2012 * configuration in $wgObjectCaches. 2013 * 2014 * @see $wgMessageCacheType, $wgParserCacheType 2015 */ 2016 $wgMainCacheType = CACHE_NONE; 2017 2018 /** 2019 * The cache type for storing the contents of the MediaWiki namespace. This 2020 * cache is used for a small amount of data which is expensive to regenerate. 2021 * 2022 * For available types see $wgMainCacheType. 2023 */ 2024 $wgMessageCacheType = CACHE_ANYTHING; 2025 2026 /** 2027 * The cache type for storing article HTML. This is used to store data which 2028 * is expensive to regenerate, and benefits from having plenty of storage space. 2029 * 2030 * For available types see $wgMainCacheType. 2031 */ 2032 $wgParserCacheType = CACHE_ANYTHING; 2033 2034 /** 2035 * The cache type for storing session data. Used if $wgSessionsInObjectCache is true. 2036 * 2037 * For available types see $wgMainCacheType. 2038 */ 2039 $wgSessionCacheType = CACHE_ANYTHING; 2040 2041 /** 2042 * The cache type for storing language conversion tables, 2043 * which are used when parsing certain text and interface messages. 2044 * 2045 * For available types see $wgMainCacheType. 2046 * 2047 * @since 1.20 2048 */ 2049 $wgLanguageConverterCacheType = CACHE_ANYTHING; 2050 2051 /** 2052 * Advanced object cache configuration. 2053 * 2054 * Use this to define the class names and constructor parameters which are used 2055 * for the various cache types. Custom cache types may be defined here and 2056 * referenced from $wgMainCacheType, $wgMessageCacheType, $wgParserCacheType, 2057 * or $wgLanguageConverterCacheType. 2058 * 2059 * The format is an associative array where the key is a cache identifier, and 2060 * the value is an associative array of parameters. The "class" parameter is the 2061 * class name which will be used. Alternatively, a "factory" parameter may be 2062 * given, giving a callable function which will generate a suitable cache object. 2063 */ 2064 $wgObjectCaches = array( 2065 CACHE_NONE => array( 'class' => 'EmptyBagOStuff' ), 2066 CACHE_DB => array( 'class' => 'SqlBagOStuff', 'table' => 'objectcache' ), 2067 2068 CACHE_ANYTHING => array( 'factory' => 'ObjectCache::newAnything' ), 2069 CACHE_ACCEL => array( 'factory' => 'ObjectCache::newAccelerator' ), 2070 CACHE_MEMCACHED => array( 'factory' => 'ObjectCache::newMemcached' ), 2071 2072 'apc' => array( 'class' => 'APCBagOStuff' ), 2073 'xcache' => array( 'class' => 'XCacheBagOStuff' ), 2074 'wincache' => array( 'class' => 'WinCacheBagOStuff' ), 2075 'memcached-php' => array( 'class' => 'MemcachedPhpBagOStuff' ), 2076 'memcached-pecl' => array( 'class' => 'MemcachedPeclBagOStuff' ), 2077 'hash' => array( 'class' => 'HashBagOStuff' ), 2078 ); 2079 2080 /** 2081 * Map of bloom filter store names to configuration arrays. 2082 * 2083 * Example: 2084 * $wgBloomFilterStores['main'] = array( 2085 * 'cacheId' => 'main-v1', 2086 * 'class' => 'BloomCacheRedis', 2087 * 'redisServers' => array( '127.0.0.1:6379' ), 2088 * 'redisConfig' => array( 'connectTimeout' => 2 ) 2089 * ); 2090 * 2091 * A primary bloom filter must be created manually. 2092 * Example in eval.php: 2093 * <code> 2094 * BloomCache::get( 'main' )->init( 'shared', 1000000000, .001 ); 2095 * </code> 2096 * The size should be as large as practical given wiki size and resources. 2097 * 2098 * @since 1.24 2099 */ 2100 $wgBloomFilterStores = array(); 2101 2102 /** 2103 * The expiry time for the parser cache, in seconds. 2104 * The default is 86400 (one day). 2105 */ 2106 $wgParserCacheExpireTime = 86400; 2107 2108 /** 2109 * Deprecated alias for $wgSessionsInObjectCache. 2110 * 2111 * @deprecated since 1.20; Use $wgSessionsInObjectCache 2112 */ 2113 $wgSessionsInMemcached = false; 2114 2115 /** 2116 * Store sessions in an object cache, configured by $wgSessionCacheType. This 2117 * can be useful to improve performance, or to avoid the locking behavior of 2118 * PHP's default session handler, which tends to prevent multiple requests for 2119 * the same user from acting concurrently. 2120 */ 2121 $wgSessionsInObjectCache = false; 2122 2123 /** 2124 * The expiry time to use for session storage when $wgSessionsInObjectCache is 2125 * enabled, in seconds. 2126 */ 2127 $wgObjectCacheSessionExpiry = 3600; 2128 2129 /** 2130 * This is used for setting php's session.save_handler. In practice, you will 2131 * almost never need to change this ever. Other options might be 'user' or 2132 * 'session_mysql.' Setting to null skips setting this entirely (which might be 2133 * useful if you're doing cross-application sessions, see bug 11381) 2134 */ 2135 $wgSessionHandler = null; 2136 2137 /** 2138 * If enabled, will send MemCached debugging information to $wgDebugLogFile 2139 */ 2140 $wgMemCachedDebug = false; 2141 2142 /** 2143 * The list of MemCached servers and port numbers 2144 */ 2145 $wgMemCachedServers = array( '127.0.0.1:11211' ); 2146 2147 /** 2148 * Use persistent connections to MemCached, which are shared across multiple 2149 * requests. 2150 */ 2151 $wgMemCachedPersistent = false; 2152 2153 /** 2154 * Read/write timeout for MemCached server communication, in microseconds. 2155 */ 2156 $wgMemCachedTimeout = 500000; 2157 2158 /** 2159 * Set this to true to make a local copy of the message cache, for use in 2160 * addition to memcached. The files will be put in $wgCacheDirectory. 2161 */ 2162 $wgUseLocalMessageCache = false; 2163 2164 /** 2165 * Instead of caching everything, only cache those messages which have 2166 * been customised in the site content language. This means that 2167 * MediaWiki:Foo/ja is ignored if MediaWiki:Foo doesn't exist. 2168 * This option is probably only useful for translatewiki.net. 2169 */ 2170 $wgAdaptiveMessageCache = false; 2171 2172 /** 2173 * Localisation cache configuration. Associative array with keys: 2174 * class: The class to use. May be overridden by extensions. 2175 * 2176 * store: The location to store cache data. May be 'files', 'db' or 2177 * 'detect'. If set to "files", data will be in CDB files. If set 2178 * to "db", data will be stored to the database. If set to 2179 * "detect", files will be used if $wgCacheDirectory is set, 2180 * otherwise the database will be used. 2181 * 2182 * storeClass: The class name for the underlying storage. If set to a class 2183 * name, it overrides the "store" setting. 2184 * 2185 * storeDirectory: If the store class puts its data in files, this is the 2186 * directory it will use. If this is false, $wgCacheDirectory 2187 * will be used. 2188 * 2189 * manualRecache: Set this to true to disable cache updates on web requests. 2190 * Use maintenance/rebuildLocalisationCache.php instead. 2191 */ 2192 $wgLocalisationCacheConf = array( 2193 'class' => 'LocalisationCache', 2194 'store' => 'detect', 2195 'storeClass' => false, 2196 'storeDirectory' => false, 2197 'manualRecache' => false, 2198 ); 2199 2200 /** 2201 * Allow client-side caching of pages 2202 */ 2203 $wgCachePages = true; 2204 2205 /** 2206 * Set this to current time to invalidate all prior cached pages. Affects both 2207 * client-side and server-side caching. 2208 * You can get the current date on your server by using the command: 2209 * @verbatim 2210 * date +%Y%m%d%H%M%S 2211 * @endverbatim 2212 */ 2213 $wgCacheEpoch = '20030516000000'; 2214 2215 /** 2216 * Directory where GitInfo will look for pre-computed cache files. If false, 2217 * $wgCacheDirectory/gitinfo will be used. 2218 */ 2219 $wgGitInfoCacheDirectory = false; 2220 2221 /** 2222 * Bump this number when changing the global style sheets and JavaScript. 2223 * 2224 * It should be appended in the query string of static CSS and JS includes, 2225 * to ensure that client-side caches do not keep obsolete copies of global 2226 * styles. 2227 */ 2228 $wgStyleVersion = '303'; 2229 2230 /** 2231 * This will cache static pages for non-logged-in users to reduce 2232 * database traffic on public sites. 2233 * Automatically sets $wgShowIPinHeader = false 2234 * ResourceLoader requests to default language and skins are cached 2235 * as well as single module requests. 2236 */ 2237 $wgUseFileCache = false; 2238 2239 /** 2240 * Depth of the subdirectory hierarchy to be created under 2241 * $wgFileCacheDirectory. The subdirectories will be named based on 2242 * the MD5 hash of the title. A value of 0 means all cache files will 2243 * be put directly into the main file cache directory. 2244 */ 2245 $wgFileCacheDepth = 2; 2246 2247 /** 2248 * Keep parsed pages in a cache (objectcache table or memcached) 2249 * to speed up output of the same page viewed by another user with the 2250 * same options. 2251 * 2252 * This can provide a significant speedup for medium to large pages, 2253 * so you probably want to keep it on. Extensions that conflict with the 2254 * parser cache should disable the cache on a per-page basis instead. 2255 */ 2256 $wgEnableParserCache = true; 2257 2258 /** 2259 * Append a configured value to the parser cache and the sitenotice key so 2260 * that they can be kept separate for some class of activity. 2261 */ 2262 $wgRenderHashAppend = ''; 2263 2264 /** 2265 * If on, the sidebar navigation links are cached for users with the 2266 * current language set. This can save a touch of load on a busy site 2267 * by shaving off extra message lookups. 2268 * 2269 * However it is also fragile: changing the site configuration, or 2270 * having a variable $wgArticlePath, can produce broken links that 2271 * don't update as expected. 2272 */ 2273 $wgEnableSidebarCache = false; 2274 2275 /** 2276 * Expiry time for the sidebar cache, in seconds 2277 */ 2278 $wgSidebarCacheExpiry = 86400; 2279 2280 /** 2281 * When using the file cache, we can store the cached HTML gzipped to save disk 2282 * space. Pages will then also be served compressed to clients that support it. 2283 * 2284 * Requires zlib support enabled in PHP. 2285 */ 2286 $wgUseGzip = false; 2287 2288 /** 2289 * Whether MediaWiki should send an ETag header. Seems to cause 2290 * broken behavior with Squid 2.6, see bug 7098. 2291 */ 2292 $wgUseETag = false; 2293 2294 /** 2295 * Clock skew or the one-second resolution of time() can occasionally cause cache 2296 * problems when the user requests two pages within a short period of time. This 2297 * variable adds a given number of seconds to vulnerable timestamps, thereby giving 2298 * a grace period. 2299 */ 2300 $wgClockSkewFudge = 5; 2301 2302 /** 2303 * Invalidate various caches when LocalSettings.php changes. This is equivalent 2304 * to setting $wgCacheEpoch to the modification time of LocalSettings.php, as 2305 * was previously done in the default LocalSettings.php file. 2306 * 2307 * On high-traffic wikis, this should be set to false, to avoid the need to 2308 * check the file modification time, and to avoid the performance impact of 2309 * unnecessary cache invalidations. 2310 */ 2311 $wgInvalidateCacheOnLocalSettingsChange = true; 2312 2313 /** @} */ # end of cache settings 2314 2315 /************************************************************************//** 2316 * @name HTTP proxy (Squid) settings 2317 * 2318 * Many of these settings apply to any HTTP proxy used in front of MediaWiki, 2319 * although they are referred to as Squid settings for historical reasons. 2320 * 2321 * Achieving a high hit ratio with an HTTP proxy requires special 2322 * configuration. See https://www.mediawiki.org/wiki/Manual:Squid_caching for 2323 * more details. 2324 * 2325 * @{ 2326 */ 2327 2328 /** 2329 * Enable/disable Squid. 2330 * See https://www.mediawiki.org/wiki/Manual:Squid_caching 2331 */ 2332 $wgUseSquid = false; 2333 2334 /** 2335 * If you run Squid3 with ESI support, enable this (default:false): 2336 */ 2337 $wgUseESI = false; 2338 2339 /** 2340 * Send X-Vary-Options header for better caching (requires patched Squid) 2341 */ 2342 $wgUseXVO = false; 2343 2344 /** 2345 * Add X-Forwarded-Proto to the Vary and X-Vary-Options headers for API 2346 * requests and RSS/Atom feeds. Use this if you have an SSL termination setup 2347 * and need to split the cache between HTTP and HTTPS for API requests, 2348 * feed requests and HTTP redirect responses in order to prevent cache 2349 * pollution. This does not affect 'normal' requests to index.php other than 2350 * HTTP redirects. 2351 */ 2352 $wgVaryOnXFP = false; 2353 2354 /** 2355 * Internal server name as known to Squid, if different. 2356 * 2357 * @par Example: 2358 * @code 2359 * $wgInternalServer = 'http://yourinternal.tld:8000'; 2360 * @endcode 2361 */ 2362 $wgInternalServer = false; 2363 2364 /** 2365 * Cache timeout for the squid, will be sent as s-maxage (without ESI) or 2366 * Surrogate-Control (with ESI). Without ESI, you should strip out s-maxage in 2367 * the Squid config. 18000 seconds = 5 hours, more cache hits with 2678400 = 31 2368 * days 2369 */ 2370 $wgSquidMaxage = 18000; 2371 2372 /** 2373 * Default maximum age for raw CSS/JS accesses 2374 */ 2375 $wgForcedRawSMaxage = 300; 2376 2377 /** 2378 * List of proxy servers to purge on changes; default port is 80. Use IP addresses. 2379 * 2380 * When MediaWiki is running behind a proxy, it will trust X-Forwarded-For 2381 * headers sent/modified from these proxies when obtaining the remote IP address 2382 * 2383 * For a list of trusted servers which *aren't* purged, see $wgSquidServersNoPurge. 2384 */ 2385 $wgSquidServers = array(); 2386 2387 /** 2388 * As above, except these servers aren't purged on page changes; use to set a 2389 * list of trusted proxies, etc. Supports both individual IP addresses and 2390 * CIDR blocks. 2391 * @since 1.23 Supports CIDR ranges 2392 */ 2393 $wgSquidServersNoPurge = array(); 2394 2395 /** 2396 * Maximum number of titles to purge in any one client operation 2397 */ 2398 $wgMaxSquidPurgeTitles = 400; 2399 2400 /** 2401 * Whether to use a Host header in purge requests sent to the proxy servers 2402 * configured in $wgSquidServers. Set this to false to support Squid 2403 * configured in forward-proxy mode. 2404 * 2405 * If this is set to true, a Host header will be sent, and only the path 2406 * component of the URL will appear on the request line, as if the request 2407 * were a non-proxy HTTP 1.1 request. Varnish only supports this style of 2408 * request. Squid supports this style of request only if reverse-proxy mode 2409 * (http_port ... accel) is enabled. 2410 * 2411 * If this is set to false, no Host header will be sent, and the absolute URL 2412 * will be sent in the request line, as is the standard for an HTTP proxy 2413 * request in both HTTP 1.0 and 1.1. This style of request is not supported 2414 * by Varnish, but is supported by Squid in either configuration (forward or 2415 * reverse). 2416 * 2417 * @since 1.21 2418 */ 2419 $wgSquidPurgeUseHostHeader = true; 2420 2421 /** 2422 * Routing configuration for HTCP multicast purging. Add elements here to 2423 * enable HTCP and determine which purges are sent where. If set to an empty 2424 * array, HTCP is disabled. 2425 * 2426 * Each key in this array is a regular expression to match against the purged 2427 * URL, or an empty string to match all URLs. The purged URL is matched against 2428 * the regexes in the order specified, and the first rule whose regex matches 2429 * is used, all remaining rules will thus be ignored. 2430 * 2431 * @par Example configuration to send purges for upload.wikimedia.org to one 2432 * multicast group and all other purges to another: 2433 * @code 2434 * $wgHTCPRouting = array( 2435 * '|^https?://upload\.wikimedia\.org|' => array( 2436 * 'host' => '239.128.0.113', 2437 * 'port' => 4827, 2438 * ), 2439 * '' => array( 2440 * 'host' => '239.128.0.112', 2441 * 'port' => 4827, 2442 * ), 2443 * ); 2444 * @endcode 2445 * 2446 * You can also pass an array of hosts to send purges too. This is useful when 2447 * you have several multicast groups or unicast address that should receive a 2448 * given purge. Multiple hosts support was introduced in MediaWiki 1.22. 2449 * 2450 * @par Example of sending purges to multiple hosts: 2451 * @code 2452 * $wgHTCPRouting = array( 2453 * '' => array( 2454 * // Purges to text caches using multicast 2455 * array( 'host' => '239.128.0.114', 'port' => '4827' ), 2456 * // Purges to a hardcoded list of caches 2457 * array( 'host' => '10.88.66.1', 'port' => '4827' ), 2458 * array( 'host' => '10.88.66.2', 'port' => '4827' ), 2459 * array( 'host' => '10.88.66.3', 'port' => '4827' ), 2460 * ), 2461 * ); 2462 * @endcode 2463 * 2464 * @since 1.22 2465 * 2466 * $wgHTCPRouting replaces $wgHTCPMulticastRouting that was introduced in 1.20. 2467 * For back compatibility purposes, whenever its array is empty 2468 * $wgHTCPMutlicastRouting will be used as a fallback if it not null. 2469 * 2470 * @see $wgHTCPMulticastTTL 2471 */ 2472 $wgHTCPRouting = array(); 2473 2474 /** 2475 * HTCP multicast TTL. 2476 * @see $wgHTCPRouting 2477 */ 2478 $wgHTCPMulticastTTL = 1; 2479 2480 /** 2481 * Should forwarded Private IPs be accepted? 2482 */ 2483 $wgUsePrivateIPs = false; 2484 2485 /** @} */ # end of HTTP proxy settings 2486 2487 /************************************************************************//** 2488 * @name Language, regional and character encoding settings 2489 * @{ 2490 */ 2491 2492 /** 2493 * Site language code. See languages/Names.php for languages supported by 2494 * MediaWiki out of the box. Not all languages listed there have translations, 2495 * see languages/messages/ for the list of languages with some localisation. 2496 * 2497 * Warning: Don't use language codes listed in $wgDummyLanguageCodes like "no" 2498 * for Norwegian (use "nb" instead), or things will break unexpectedly. 2499 * 2500 * This defines the default interface language for all users, but users can 2501 * change it in their preferences. 2502 * 2503 * This also defines the language of pages in the wiki. The content is wrapped 2504 * in a html element with lang=XX attribute. This behavior can be overridden 2505 * via hooks, see Title::getPageLanguage. 2506 */ 2507 $wgLanguageCode = 'en'; 2508 2509 /** 2510 * Language cache size, or really how many languages can we handle 2511 * simultaneously without degrading to crawl speed. 2512 */ 2513 $wgLangObjCacheSize = 10; 2514 2515 /** 2516 * Some languages need different word forms, usually for different cases. 2517 * Used in Language::convertGrammar(). 2518 * 2519 * @par Example: 2520 * @code 2521 * $wgGrammarForms['en']['genitive']['car'] = 'car\'s'; 2522 * @endcode 2523 */ 2524 $wgGrammarForms = array(); 2525 2526 /** 2527 * Treat language links as magic connectors, not inline links 2528 */ 2529 $wgInterwikiMagic = true; 2530 2531 /** 2532 * Hide interlanguage links from the sidebar 2533 */ 2534 $wgHideInterlanguageLinks = false; 2535 2536 /** 2537 * List of additional interwiki prefixes that should be treated as 2538 * interlanguage links (i.e. placed in the sidebar). 2539 * Notes: 2540 * - This will not do anything unless the prefixes are defined in the interwiki 2541 * map. 2542 * - The display text for these custom interlanguage links will be fetched from 2543 * the system message "interlanguage-link-xyz" where xyz is the prefix in 2544 * this array. 2545 * - A friendly name for each site, used for tooltip text, may optionally be 2546 * placed in the system message "interlanguage-link-sitename-xyz" where xyz is 2547 * the prefix in this array. 2548 */ 2549 $wgExtraInterlanguageLinkPrefixes = array(); 2550 2551 /** 2552 * List of language names or overrides for default names in Names.php 2553 */ 2554 $wgExtraLanguageNames = array(); 2555 2556 /** 2557 * List of language codes that don't correspond to an actual language. 2558 * These codes are mostly left-offs from renames, or other legacy things. 2559 * This array makes them not appear as a selectable language on the installer, 2560 * and excludes them when running the transstat.php script. 2561 */ 2562 $wgDummyLanguageCodes = array( 2563 'als' => 'gsw', 2564 'bat-smg' => 'sgs', 2565 'be-x-old' => 'be-tarask', 2566 'bh' => 'bho', 2567 'fiu-vro' => 'vro', 2568 'no' => 'nb', 2569 'qqq' => 'qqq', # Used for message documentation. 2570 'qqx' => 'qqx', # Used for viewing message keys. 2571 'roa-rup' => 'rup', 2572 'simple' => 'en', 2573 'zh-classical' => 'lzh', 2574 'zh-min-nan' => 'nan', 2575 'zh-yue' => 'yue', 2576 ); 2577 2578 /** 2579 * Character set for use in the article edit box. Language-specific encodings 2580 * may be defined. 2581 * 2582 * This historic feature is one of the first that was added by former MediaWiki 2583 * team leader Brion Vibber, and is used to support the Esperanto x-system. 2584 */ 2585 $wgEditEncoding = ''; 2586 2587 /** 2588 * Set this to true to replace Arabic presentation forms with their standard 2589 * forms in the U+0600-U+06FF block. This only works if $wgLanguageCode is 2590 * set to "ar". 2591 * 2592 * Note that pages with titles containing presentation forms will become 2593 * inaccessible, run maintenance/cleanupTitles.php to fix this. 2594 */ 2595 $wgFixArabicUnicode = true; 2596 2597 /** 2598 * Set this to true to replace ZWJ-based chillu sequences in Malayalam text 2599 * with their Unicode 5.1 equivalents. This only works if $wgLanguageCode is 2600 * set to "ml". Note that some clients (even new clients as of 2010) do not 2601 * support these characters. 2602 * 2603 * If you enable this on an existing wiki, run maintenance/cleanupTitles.php to 2604 * fix any ZWJ sequences in existing page titles. 2605 */ 2606 $wgFixMalayalamUnicode = true; 2607 2608 /** 2609 * Set this to always convert certain Unicode sequences to modern ones 2610 * regardless of the content language. This has a small performance 2611 * impact. 2612 * 2613 * See $wgFixArabicUnicode and $wgFixMalayalamUnicode for conversion 2614 * details. 2615 * 2616 * @since 1.17 2617 */ 2618 $wgAllUnicodeFixes = false; 2619 2620 /** 2621 * Set this to eg 'ISO-8859-1' to perform character set conversion when 2622 * loading old revisions not marked with "utf-8" flag. Use this when 2623 * converting a wiki from MediaWiki 1.4 or earlier to UTF-8 without the 2624 * burdensome mass conversion of old text data. 2625 * 2626 * @note This DOES NOT touch any fields other than old_text. Titles, comments, 2627 * user names, etc still must be converted en masse in the database before 2628 * continuing as a UTF-8 wiki. 2629 */ 2630 $wgLegacyEncoding = false; 2631 2632 /** 2633 * Browser Blacklist for unicode non compliant browsers. Contains a list of 2634 * regexps : "/regexp/" matching problematic browsers. These browsers will 2635 * be served encoded unicode in the edit box instead of real unicode. 2636 */ 2637 $wgBrowserBlackList = array( 2638 /** 2639 * Netscape 2-4 detection 2640 * The minor version may contain strings such as "Gold" or "SGoldC-SGI" 2641 * Lots of non-netscape user agents have "compatible", so it's useful to check for that 2642 * with a negative assertion. The [UIN] identifier specifies the level of security 2643 * in a Netscape/Mozilla browser, checking for it rules out a number of fakers. 2644 * The language string is unreliable, it is missing on NS4 Mac. 2645 * 2646 * Reference: http://www.psychedelix.com/agents/index.shtml 2647 */ 2648 '/^Mozilla\/2\.[^ ]+ [^(]*?\((?!compatible).*; [UIN]/', 2649 '/^Mozilla\/3\.[^ ]+ [^(]*?\((?!compatible).*; [UIN]/', 2650 '/^Mozilla\/4\.[^ ]+ [^(]*?\((?!compatible).*; [UIN]/', 2651 2652 /** 2653 * MSIE on Mac OS 9 is teh sux0r, converts þ to <thorn>, ð to <eth>, 2654 * Þ to <THORN> and Ð to <ETH> 2655 * 2656 * Known useragents: 2657 * - Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC) 2658 * - Mozilla/4.0 (compatible; MSIE 5.15; Mac_PowerPC) 2659 * - Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC) 2660 * - [...] 2661 * 2662 * @link http://en.wikipedia.org/w/index.php?diff=12356041&oldid=12355864 2663 * @link http://en.wikipedia.org/wiki/Template%3AOS9 2664 */ 2665 '/^Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/', 2666 2667 /** 2668 * Google wireless transcoder, seems to eat a lot of chars alive 2669 * http://it.wikipedia.org/w/index.php?title=Luciano_Ligabue&diff=prev&oldid=8857361 2670 */ 2671 '/^Mozilla\/4\.0 \(compatible; MSIE 6.0; Windows NT 5.0; Google Wireless Transcoder;\)/' 2672 ); 2673 2674 /** 2675 * If set to true, the MediaWiki 1.4 to 1.5 schema conversion will 2676 * create stub reference rows in the text table instead of copying 2677 * the full text of all current entries from 'cur' to 'text'. 2678 * 2679 * This will speed up the conversion step for large sites, but 2680 * requires that the cur table be kept around for those revisions 2681 * to remain viewable. 2682 * 2683 * This option affects the updaters *only*. Any present cur stub 2684 * revisions will be readable at runtime regardless of this setting. 2685 */ 2686 $wgLegacySchemaConversion = false; 2687 2688 /** 2689 * Enable dates like 'May 12' instead of '12 May', this only takes effect if 2690 * the interface is set to English. 2691 */ 2692 $wgAmericanDates = false; 2693 2694 /** 2695 * For Hindi and Arabic use local numerals instead of Western style (0-9) 2696 * numerals in interface. 2697 */ 2698 $wgTranslateNumerals = true; 2699 2700 /** 2701 * Translation using MediaWiki: namespace. 2702 * Interface messages will be loaded from the database. 2703 */ 2704 $wgUseDatabaseMessages = true; 2705 2706 /** 2707 * Expiry time for the message cache key 2708 */ 2709 $wgMsgCacheExpiry = 86400; 2710 2711 /** 2712 * Maximum entry size in the message cache, in bytes 2713 */ 2714 $wgMaxMsgCacheEntrySize = 10000; 2715 2716 /** 2717 * Whether to enable language variant conversion. 2718 */ 2719 $wgDisableLangConversion = false; 2720 2721 /** 2722 * Whether to enable language variant conversion for links. 2723 */ 2724 $wgDisableTitleConversion = false; 2725 2726 /** 2727 * Default variant code, if false, the default will be the language code 2728 */ 2729 $wgDefaultLanguageVariant = false; 2730 2731 /** 2732 * Disabled variants array of language variant conversion. 2733 * 2734 * @par Example: 2735 * @code 2736 * $wgDisabledVariants[] = 'zh-mo'; 2737 * $wgDisabledVariants[] = 'zh-my'; 2738 * @endcode 2739 */ 2740 $wgDisabledVariants = array(); 2741 2742 /** 2743 * Like $wgArticlePath, but on multi-variant wikis, this provides a 2744 * path format that describes which parts of the URL contain the 2745 * language variant. 2746 * 2747 * @par Example: 2748 * @code 2749 * $wgLanguageCode = 'sr'; 2750 * $wgVariantArticlePath = '/$2/$1'; 2751 * $wgArticlePath = '/wiki/$1'; 2752 * @endcode 2753 * 2754 * A link to /wiki/ would be redirected to /sr/Главна_страна 2755 * 2756 * It is important that $wgArticlePath not overlap with possible values 2757 * of $wgVariantArticlePath. 2758 */ 2759 $wgVariantArticlePath = false; 2760 2761 /** 2762 * Show a bar of language selection links in the user login and user 2763 * registration forms; edit the "loginlanguagelinks" message to 2764 * customise these. 2765 */ 2766 $wgLoginLanguageSelector = false; 2767 2768 /** 2769 * When translating messages with wfMessage(), it is not always clear what 2770 * should be considered UI messages and what should be content messages. 2771 * 2772 * For example, for the English Wikipedia, there should be only one 'mainpage', 2773 * so when getting the link for 'mainpage', we should treat it as site content 2774 * and call ->inContentLanguage()->text(), but for rendering the text of the 2775 * link, we call ->text(). The code behaves this way by default. However, 2776 * sites like the Wikimedia Commons do offer different versions of 'mainpage' 2777 * and the like for different languages. This array provides a way to override 2778 * the default behavior. 2779 * 2780 * @par Example: 2781 * To allow language-specific main page and community 2782 * portal: 2783 * @code 2784 * $wgForceUIMsgAsContentMsg = array( 'mainpage', 'portal-url' ); 2785 * @endcode 2786 */ 2787 $wgForceUIMsgAsContentMsg = array(); 2788 2789 /** 2790 * Fake out the timezone that the server thinks it's in. This will be used for 2791 * date display and not for what's stored in the DB. Leave to null to retain 2792 * your server's OS-based timezone value. 2793 * 2794 * This variable is currently used only for signature formatting and for local 2795 * time/date parser variables ({{LOCALTIME}} etc.) 2796 * 2797 * Timezones can be translated by editing MediaWiki messages of type 2798 * timezone-nameinlowercase like timezone-utc. 2799 * 2800 * A list of usable timezones can found at: 2801 * http://php.net/manual/en/timezones.php 2802 * 2803 * @par Examples: 2804 * @code 2805 * $wgLocaltimezone = 'UTC'; 2806 * $wgLocaltimezone = 'GMT'; 2807 * $wgLocaltimezone = 'PST8PDT'; 2808 * $wgLocaltimezone = 'Europe/Sweden'; 2809 * $wgLocaltimezone = 'CET'; 2810 * @endcode 2811 */ 2812 $wgLocaltimezone = null; 2813 2814 /** 2815 * Set an offset from UTC in minutes to use for the default timezone setting 2816 * for anonymous users and new user accounts. 2817 * 2818 * This setting is used for most date/time displays in the software, and is 2819 * overridable in user preferences. It is *not* used for signature timestamps. 2820 * 2821 * By default, this will be set to match $wgLocaltimezone. 2822 */ 2823 $wgLocalTZoffset = null; 2824 2825 /** @} */ # End of language/charset settings 2826 2827 /*************************************************************************//** 2828 * @name Output format and skin settings 2829 * @{ 2830 */ 2831 2832 /** 2833 * The default Content-Type header. 2834 */ 2835 $wgMimeType = 'text/html'; 2836 2837 /** 2838 * Previously used as content type in HTML script tags. This is now ignored since 2839 * HTML5 doesn't require a MIME type for script tags (javascript is the default). 2840 * It was also previously used by RawAction to determine the ctype query parameter 2841 * value that will result in a javascript response. 2842 * @deprecated since 1.22 2843 */ 2844 $wgJsMimeType = null; 2845 2846 /** 2847 * The default xmlns attribute. The option to define this has been removed. 2848 * The value of this variable is no longer used by core and is set to a fixed 2849 * value in Setup.php for compatibility with extensions that depend on the value 2850 * of this variable being set. Such a dependency however is deprecated. 2851 * @deprecated since 1.22 2852 */ 2853 $wgXhtmlDefaultNamespace = null; 2854 2855 /** 2856 * Previously used to determine if we should output an HTML5 doctype. 2857 * This is no longer used as we always output HTML5 now. For compatibility with 2858 * extensions that still check the value of this config it's value is now forced 2859 * to true by Setup.php. 2860 * @deprecated since 1.22 2861 */ 2862 $wgHtml5 = true; 2863 2864 /** 2865 * Defines the value of the version attribute in the <html> tag, if any. 2866 * If $wgAllowRdfaAttributes is true, and this evaluates to boolean false 2867 * (like if it's left at the default null value), it will be auto-initialized 2868 * to the correct value for RDFa+HTML5. As such, you should have no reason to 2869 * ever actually set this to anything. 2870 */ 2871 $wgHtml5Version = null; 2872 2873 /** 2874 * Temporary variable that allows HTMLForms to be rendered as tables. 2875 * Table based layouts cause various issues when designing for mobile. 2876 * This global allows skins or extensions a means to force non-table based rendering. 2877 * Setting to false forces form components to always render as div elements. 2878 * @since 1.24 2879 */ 2880 $wgHTMLFormAllowTableFormat = true; 2881 2882 /** 2883 * Temporary variable that applies MediaWiki UI wherever it can be supported. 2884 * Temporary variable that should be removed when mediawiki ui is more 2885 * stable and change has been communicated. 2886 * @since 1.24 2887 */ 2888 $wgUseMediaWikiUIEverywhere = false; 2889 2890 /** 2891 * Enabled RDFa attributes for use in wikitext. 2892 * NOTE: Interaction with HTML5 is somewhat underspecified. 2893 */ 2894 $wgAllowRdfaAttributes = false; 2895 2896 /** 2897 * Enabled HTML5 microdata attributes for use in wikitext. 2898 */ 2899 $wgAllowMicrodataAttributes = false; 2900 2901 /** 2902 * Should we try to make our HTML output well-formed XML? If set to false, 2903 * output will be a few bytes shorter, and the HTML will arguably be more 2904 * readable. If set to true, life will be much easier for the authors of 2905 * screen-scraping bots, and the HTML will arguably be more readable. 2906 * 2907 * Setting this to false may omit quotation marks on some attributes, omit 2908 * slashes from some self-closing tags, omit some ending tags, etc., where 2909 * permitted by HTML5. Setting it to true will not guarantee that all pages 2910 * will be well-formed, although non-well-formed pages should be rare and it's 2911 * a bug if you find one. Conversely, setting it to false doesn't mean that 2912 * all XML-y constructs will be omitted, just that they might be. 2913 * 2914 * Because of compatibility with screen-scraping bots, and because it's 2915 * controversial, this is currently left to true by default. 2916 */ 2917 $wgWellFormedXml = true; 2918 2919 /** 2920 * Permit other namespaces in addition to the w3.org default. 2921 * 2922 * Use the prefix for the key and the namespace for the value. 2923 * 2924 * @par Example: 2925 * @code 2926 * $wgXhtmlNamespaces['svg'] = 'http://www.w3.org/2000/svg'; 2927 * @endcode 2928 * Normally we wouldn't have to define this in the root "<html>" 2929 * element, but IE needs it there in some circumstances. 2930 * 2931 * This is ignored if $wgMimeType is set to a non-XML MIME type. 2932 */ 2933 $wgXhtmlNamespaces = array(); 2934 2935 /** 2936 * Show IP address, for non-logged in users. It's necessary to switch this off 2937 * for some forms of caching. 2938 * @warning Will disable file cache. 2939 */ 2940 $wgShowIPinHeader = true; 2941 2942 /** 2943 * Site notice shown at the top of each page 2944 * 2945 * MediaWiki:Sitenotice page, which will override this. You can also 2946 * provide a separate message for logged-out users using the 2947 * MediaWiki:Anonnotice page. 2948 */ 2949 $wgSiteNotice = ''; 2950 2951 /** 2952 * If this is set, a "donate" link will appear in the sidebar. Set it to a URL. 2953 */ 2954 $wgSiteSupportPage = ''; 2955 2956 /** 2957 * Validate the overall output using tidy and refuse 2958 * to display the page if it's not valid. 2959 */ 2960 $wgValidateAllHtml = false; 2961 2962 /** 2963 * Default skin, for new users and anonymous visitors. Registered users may 2964 * change this to any one of the other available skins in their preferences. 2965 */ 2966 $wgDefaultSkin = 'vector'; 2967 2968 /** 2969 * Fallback skin used when the skin defined by $wgDefaultSkin can't be found. 2970 * 2971 * @since 1.24 2972 */ 2973 $wgFallbackSkin = 'fallback'; 2974 2975 /** 2976 * Specify the names of skins that should not be presented in the list of 2977 * available skins in user preferences. If you want to remove a skin entirely, 2978 * remove it from the skins/ directory and its entry from LocalSettings.php. 2979 */ 2980 $wgSkipSkins = array(); 2981 2982 /** 2983 * @deprecated since 1.23; use $wgSkipSkins instead 2984 */ 2985 $wgSkipSkin = ''; 2986 2987 /** 2988 * Allow user Javascript page? 2989 * This enables a lot of neat customizations, but may 2990 * increase security risk to users and server load. 2991 */ 2992 $wgAllowUserJs = false; 2993 2994 /** 2995 * Allow user Cascading Style Sheets (CSS)? 2996 * This enables a lot of neat customizations, but may 2997 * increase security risk to users and server load. 2998 */ 2999 $wgAllowUserCss = false; 3000 3001 /** 3002 * Allow user-preferences implemented in CSS? 3003 * This allows users to customise the site appearance to a greater 3004 * degree; disabling it will improve page load times. 3005 */ 3006 $wgAllowUserCssPrefs = true; 3007 3008 /** 3009 * Use the site's Javascript page? 3010 */ 3011 $wgUseSiteJs = true; 3012 3013 /** 3014 * Use the site's Cascading Style Sheets (CSS)? 3015 */ 3016 $wgUseSiteCss = true; 3017 3018 /** 3019 * Break out of framesets. This can be used to prevent clickjacking attacks, 3020 * or to prevent external sites from framing your site with ads. 3021 */ 3022 $wgBreakFrames = false; 3023 3024 /** 3025 * The X-Frame-Options header to send on pages sensitive to clickjacking 3026 * attacks, such as edit pages. This prevents those pages from being displayed 3027 * in a frame or iframe. The options are: 3028 * 3029 * - 'DENY': Do not allow framing. This is recommended for most wikis. 3030 * 3031 * - 'SAMEORIGIN': Allow framing by pages on the same domain. This can be used 3032 * to allow framing within a trusted domain. This is insecure if there 3033 * is a page on the same domain which allows framing of arbitrary URLs. 3034 * 3035 * - false: Allow all framing. This opens up the wiki to XSS attacks and thus 3036 * full compromise of local user accounts. Private wikis behind a 3037 * corporate firewall are especially vulnerable. This is not 3038 * recommended. 3039 * 3040 * For extra safety, set $wgBreakFrames = true, to prevent framing on all pages, 3041 * not just edit pages. 3042 */ 3043 $wgEditPageFrameOptions = 'DENY'; 3044 3045 /** 3046 * Disallow framing of API pages directly, by setting the X-Frame-Options 3047 * header. Since the API returns CSRF tokens, allowing the results to be 3048 * framed can compromise your user's account security. 3049 * Options are: 3050 * - 'DENY': Do not allow framing. This is recommended for most wikis. 3051 * - 'SAMEORIGIN': Allow framing by pages on the same domain. 3052 * - false: Allow all framing. 3053 */ 3054 $wgApiFrameOptions = 'DENY'; 3055 3056 /** 3057 * Disable output compression (enabled by default if zlib is available) 3058 */ 3059 $wgDisableOutputCompression = false; 3060 3061 /** 3062 * Should we allow a broader set of characters in id attributes, per HTML5? If 3063 * not, use only HTML 4-compatible IDs. This option is for testing -- when the 3064 * functionality is ready, it will be on by default with no option. 3065 * 3066 * Currently this appears to work fine in all browsers, but it's disabled by 3067 * default because it normalizes id's a bit too aggressively, breaking preexisting 3068 * content (particularly Cite). See bug 27733, bug 27694, bug 27474. 3069 */ 3070 $wgExperimentalHtmlIds = false; 3071 3072 /** 3073 * Abstract list of footer icons for skins in place of old copyrightico and poweredbyico code 3074 * You can add new icons to the built in copyright or poweredby, or you can create 3075 * a new block. Though note that you may need to add some custom css to get good styling 3076 * of new blocks in monobook. vector and modern should work without any special css. 3077 * 3078 * $wgFooterIcons itself is a key/value array. 3079 * The key is the name of a block that the icons will be wrapped in. The final id varies 3080 * by skin; Monobook and Vector will turn poweredby into f-poweredbyico while Modern 3081 * turns it into mw_poweredby. 3082 * The value is either key/value array of icons or a string. 3083 * In the key/value array the key may or may not be used by the skin but it can 3084 * be used to find the icon and unset it or change the icon if needed. 3085 * This is useful for disabling icons that are set by extensions. 3086 * The value should be either a string or an array. If it is a string it will be output 3087 * directly as html, however some skins may choose to ignore it. An array is the preferred format 3088 * for the icon, the following keys are used: 3089 * - src: An absolute url to the image to use for the icon, this is recommended 3090 * but not required, however some skins will ignore icons without an image 3091 * - url: The url to use in the a element around the text or icon, if not set an a element will 3092 * not be outputted 3093 * - alt: This is the text form of the icon, it will be displayed without an image in 3094 * skins like Modern or if src is not set, and will otherwise be used as 3095 * the alt="" for the image. This key is required. 3096 * - width and height: If the icon specified by src is not of the standard size 3097 * you can specify the size of image to use with these keys. 3098 * Otherwise they will default to the standard 88x31. 3099 * @todo Reformat documentation. 3100 */ 3101 $wgFooterIcons = array( 3102 "copyright" => array( 3103 "copyright" => array(), // placeholder for the built in copyright icon 3104 ), 3105 "poweredby" => array( 3106 "mediawiki" => array( 3107 // src defaults to "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png" 3108 "src" => null, 3109 "url" => "//www.mediawiki.org/", 3110 "alt" => "Powered by MediaWiki", 3111 ) 3112 ), 3113 ); 3114 3115 /** 3116 * Login / create account link behavior when it's possible for anonymous users 3117 * to create an account. 3118 * - true = use a combined login / create account link 3119 * - false = split login and create account into two separate links 3120 */ 3121 $wgUseCombinedLoginLink = false; 3122 3123 /** 3124 * Display user edit counts in various prominent places. 3125 */ 3126 $wgEdititis = false; 3127 3128 /** 3129 * Some web hosts attempt to rewrite all responses with a 404 (not found) 3130 * status code, mangling or hiding MediaWiki's output. If you are using such a 3131 * host, you should start looking for a better one. While you're doing that, 3132 * set this to false to convert some of MediaWiki's 404 responses to 200 so 3133 * that the generated error pages can be seen. 3134 * 3135 * In cases where for technical reasons it is more important for MediaWiki to 3136 * send the correct status code than for the body to be transmitted intact, 3137 * this configuration variable is ignored. 3138 */ 3139 $wgSend404Code = true; 3140 3141 /** 3142 * The $wgShowRollbackEditCount variable is used to show how many edits will be 3143 * rollback. The numeric value of the variable are the limit up to are counted. 3144 * If the value is false or 0, the edits are not counted. Disabling this will 3145 * furthermore prevent MediaWiki from hiding some useless rollback links. 3146 * 3147 * @since 1.20 3148 */ 3149 $wgShowRollbackEditCount = 10; 3150 3151 /** 3152 * Output a <link rel="canonical"> tag on every page indicating the canonical 3153 * server which should be used, i.e. $wgServer or $wgCanonicalServer. Since 3154 * detection of the current server is unreliable, the link is sent 3155 * unconditionally. 3156 */ 3157 $wgEnableCanonicalServerLink = false; 3158 3159 /** 3160 * When OutputHandler is used, mangle any output that contains 3161 * <cross-domain-policy>. Without this, an attacker can send their own 3162 * cross-domain policy unless it is prevented by the crossdomain.xml file at 3163 * the domain root. 3164 */ 3165 $wgMangleFlashPolicy = true; 3166 3167 /** @} */ # End of output format settings } 3168 3169 /*************************************************************************//** 3170 * @name Resource loader settings 3171 * @{ 3172 */ 3173 3174 /** 3175 * Client-side resource modules. 3176 * 3177 * Extensions should add their resource loader module definitions 3178 * to the $wgResourceModules variable. 3179 * 3180 * @par Example: 3181 * @code 3182 * $wgResourceModules['ext.myExtension'] = array( 3183 * 'scripts' => 'myExtension.js', 3184 * 'styles' => 'myExtension.css', 3185 * 'dependencies' => array( 'jquery.cookie', 'jquery.tabIndex' ), 3186 * 'localBasePath' => __DIR__, 3187 * 'remoteExtPath' => 'MyExtension', 3188 * ); 3189 * @endcode 3190 */ 3191 $wgResourceModules = array(); 3192 3193 /** 3194 * Skin-specific styles for resource modules. 3195 * 3196 * These are later added to the 'skinStyles' list of the existing module. The 'styles' list can 3197 * not be modified or disabled. 3198 * 3199 * For example, here is a module "bar" and how skin Foo would provide additional styles for it. 3200 * 3201 * @par Example: 3202 * @code 3203 * $wgResourceModules['bar'] = array( 3204 * 'scripts' => 'resources/bar/bar.js', 3205 * 'styles' => 'resources/bar/main.css', 3206 * ); 3207 * 3208 * $wgResourceModuleSkinStyles['foo'] = array( 3209 * 'bar' => 'skins/Foo/bar.css', 3210 * ); 3211 * @endcode 3212 * 3213 * This is mostly equivalent to: 3214 * 3215 * @par Equivalent: 3216 * @code 3217 * $wgResourceModules['bar'] = array( 3218 * 'scripts' => 'resources/bar/bar.js', 3219 * 'styles' => 'resources/bar/main.css', 3220 * 'skinStyles' => array( 3221 * 'foo' => skins/Foo/bar.css', 3222 * ), 3223 * ); 3224 * @endcode 3225 * 3226 * If the module already defines its own entry in `skinStyles` for a given skin, then 3227 * $wgResourceModuleSkinStyles is ignored. 3228 * 3229 * If a module defines a `skinStyles['default']` the skin may want to extend that instead 3230 * of replacing them. This can be done using the `+` prefix. 3231 * 3232 * @par Example: 3233 * @code 3234 * $wgResourceModules['bar'] = array( 3235 * 'scripts' => 'resources/bar/bar.js', 3236 * 'styles' => 'resources/bar/basic.css', 3237 * 'skinStyles' => array( 3238 * 'default' => 'resources/bar/additional.css', 3239 * ), 3240 * ); 3241 * // Note the '+' character: 3242 * $wgResourceModuleSkinStyles['+foo'] = array( 3243 * 'bar' => 'skins/Foo/bar.css', 3244 * ); 3245 * @endcode 3246 * 3247 * This is mostly equivalent to: 3248 * 3249 * @par Equivalent: 3250 * @code 3251 * $wgResourceModules['bar'] = array( 3252 * 'scripts' => 'resources/bar/bar.js', 3253 * 'styles' => 'resources/bar/basic.css', 3254 * 'skinStyles' => array( 3255 * 'default' => 'resources/bar/additional.css', 3256 * 'foo' => array( 3257 * 'resources/bar/additional.css', 3258 * 'skins/Foo/bar.css', 3259 * ), 3260 * ), 3261 * ); 3262 * @endcode 3263 * 3264 * In other words, as a module author, use the `styles` list for stylesheets that may not be 3265 * disabled by a skin. To provide default styles that may be extended or replaced, 3266 * use `skinStyles['default']`. 3267 * 3268 * As with $wgResourceModules, paths default to being relative to the MediaWiki root. 3269 * You should always provide a localBasePath and remoteBasePath (or remoteExtPath/remoteSkinPath). 3270 * Either for all skin styles at once (first example below) or for each module separately (second 3271 * example). 3272 * 3273 * @par Example: 3274 * @code 3275 * $wgResourceModuleSkinStyles['foo'] = array( 3276 * 'bar' => 'bar.css', 3277 * 'quux' => 'quux.css', 3278 * 'remoteSkinPath' => 'Foo', 3279 * 'localBasePath' => __DIR__, 3280 * ); 3281 * 3282 * $wgResourceModuleSkinStyles['foo'] = array( 3283 * 'bar' => array( 3284 * 'bar.css', 3285 * 'remoteSkinPath' => 'Foo', 3286 * 'localBasePath' => __DIR__, 3287 * ), 3288 * 'quux' => array( 3289 * 'quux.css', 3290 * 'remoteSkinPath' => 'Foo', 3291 * 'localBasePath' => __DIR__, 3292 * ), 3293 * ); 3294 * @endcode 3295 */ 3296 $wgResourceModuleSkinStyles = array(); 3297 3298 /** 3299 * Extensions should register foreign module sources here. 'local' is a 3300 * built-in source that is not in this array, but defined by 3301 * ResourceLoader::__construct() so that it cannot be unset. 3302 * 3303 * @par Example: 3304 * @code 3305 * $wgResourceLoaderSources['foo'] = 'http://example.org/w/load.php'; 3306 * @endcode 3307 */ 3308 $wgResourceLoaderSources = array(); 3309 3310 /** 3311 * Default 'remoteBasePath' value for instances of ResourceLoaderFileModule. 3312 * If not set, then $wgScriptPath will be used as a fallback. 3313 */ 3314 $wgResourceBasePath = null; 3315 3316 /** 3317 * Maximum time in seconds to cache resources served by the resource loader. 3318 * Used to set last modified headers (max-age/s-maxage). 3319 * 3320 * Following options to distinguish: 3321 * - versioned: Used for modules with a version, because changing version 3322 * numbers causes cache misses. This normally has a long expiry time. 3323 * - unversioned: Used for modules without a version to propagate changes 3324 * quickly to clients. Also used for modules with errors to recover quickly. 3325 * This normally has a short expiry time. 3326 * 3327 * Expiry time for the options to distinguish: 3328 * - server: Squid/Varnish but also any other public proxy cache between the 3329 * client and MediaWiki. 3330 * - client: On the client side (e.g. in the browser cache). 3331 */ 3332 $wgResourceLoaderMaxage = array( 3333 'versioned' => array( 3334 'server' => 30 * 24 * 60 * 60, // 30 days 3335 'client' => 30 * 24 * 60 * 60, // 30 days 3336 ), 3337 'unversioned' => array( 3338 'server' => 5 * 60, // 5 minutes 3339 'client' => 5 * 60, // 5 minutes 3340 ), 3341 ); 3342 3343 /** 3344 * The default debug mode (on/off) for of ResourceLoader requests. 3345 * 3346 * This will still be overridden when the debug URL parameter is used. 3347 */ 3348 $wgResourceLoaderDebug = false; 3349 3350 /** 3351 * Enable embedding of certain resources using Edge Side Includes. This will 3352 * improve performance but only works if there is something in front of the 3353 * web server (e..g a Squid or Varnish server) configured to process the ESI. 3354 */ 3355 $wgResourceLoaderUseESI = false; 3356 3357 /** 3358 * Put each statement on its own line when minifying JavaScript. This makes 3359 * debugging in non-debug mode a bit easier. 3360 */ 3361 $wgResourceLoaderMinifierStatementsOnOwnLine = false; 3362 3363 /** 3364 * Maximum line length when minifying JavaScript. This is not a hard maximum: 3365 * the minifier will try not to produce lines longer than this, but may be 3366 * forced to do so in certain cases. 3367 */ 3368 $wgResourceLoaderMinifierMaxLineLength = 1000; 3369 3370 /** 3371 * Whether to include the mediawiki.legacy JS library (old wikibits.js), and its 3372 * dependencies. 3373 */ 3374 $wgIncludeLegacyJavaScript = true; 3375 3376 /** 3377 * Whether to include the jQuery Migrate library, which lets legacy JS that 3378 * requires jQuery 1.8.x to work and breaks with 1.9.x+. 3379 * 3380 * @since 1.24 3381 * @deprecated since 1.24, to be removed in 1.25 3382 */ 3383 $wgIncludejQueryMigrate = false; 3384 3385 /** 3386 * Whether to preload the mediawiki.util module as blocking module in the top 3387 * queue. 3388 * 3389 * Before MediaWiki 1.19, modules used to load slower/less asynchronous which 3390 * allowed modules to lack dependencies on 'popular' modules that were likely 3391 * loaded already. 3392 * 3393 * This setting is to aid scripts during migration by providing mediawiki.util 3394 * unconditionally (which was the most commonly missed dependency). 3395 * It doesn't cover all missing dependencies obviously but should fix most of 3396 * them. 3397 * 3398 * This should be removed at some point after site/user scripts have been fixed. 3399 * Enable this if your wiki has a large amount of user/site scripts that are 3400 * lacking dependencies. 3401 * @todo Deprecate 3402 */ 3403 $wgPreloadJavaScriptMwUtil = false; 3404 3405 /** 3406 * Whether or not to assign configuration variables to the global window object. 3407 * 3408 * If this is set to false, old code using deprecated variables will no longer 3409 * work. 3410 * 3411 * @par Example of legacy code: 3412 * @code{,js} 3413 * if ( window.wgRestrictionEdit ) { ... } 3414 * @endcode 3415 * or: 3416 * @code{,js} 3417 * if ( wgIsArticle ) { ... } 3418 * @endcode 3419 * 3420 * Instead, one needs to use mw.config. 3421 * @par Example using mw.config global configuration: 3422 * @code{,js} 3423 * if ( mw.config.exists('wgRestrictionEdit') ) { ... } 3424 * @endcode 3425 * or: 3426 * @code{,js} 3427 * if ( mw.config.get('wgIsArticle') ) { ... } 3428 * @endcode 3429 */ 3430 $wgLegacyJavaScriptGlobals = true; 3431 3432 /** 3433 * If set to a positive number, ResourceLoader will not generate URLs whose 3434 * query string is more than this many characters long, and will instead use 3435 * multiple requests with shorter query strings. This degrades performance, 3436 * but may be needed if your web server has a low (less than, say 1024) 3437 * query string length limit or a low value for suhosin.get.max_value_length 3438 * that you can't increase. 3439 * 3440 * If set to a negative number, ResourceLoader will assume there is no query 3441 * string length limit. 3442 * 3443 * Defaults to a value based on php configuration. 3444 */ 3445 $wgResourceLoaderMaxQueryLength = false; 3446 3447 /** 3448 * If set to true, JavaScript modules loaded from wiki pages will be parsed 3449 * prior to minification to validate it. 3450 * 3451 * Parse errors will result in a JS exception being thrown during module load, 3452 * which avoids breaking other modules loaded in the same request. 3453 */ 3454 $wgResourceLoaderValidateJS = true; 3455 3456 /** 3457 * If set to true, statically-sourced (file-backed) JavaScript resources will 3458 * be parsed for validity before being bundled up into ResourceLoader modules. 3459 * 3460 * This can be helpful for development by providing better error messages in 3461 * default (non-debug) mode, but JavaScript parsing is slow and memory hungry 3462 * and may fail on large pre-bundled frameworks. 3463 */ 3464 $wgResourceLoaderValidateStaticJS = false; 3465 3466 /** 3467 * If set to true, asynchronous loading of bottom-queue scripts in the "<head>" 3468 * will be enabled. This is an experimental feature that's supposed to make 3469 * JavaScript load faster. 3470 */ 3471 $wgResourceLoaderExperimentalAsyncLoading = false; 3472 3473 /** 3474 * Global LESS variables. An associative array binding variable names to 3475 * LESS code snippets representing their values. 3476 * 3477 * Adding an item here is equivalent to writing `@variable: value;` 3478 * at the beginning of all your .less files, with all the consequences. 3479 * In particular, string values must be escaped and quoted. 3480 * 3481 * Changes to LESS variables do not trigger cache invalidation. 3482 * 3483 * @par Example: 3484 * @code 3485 * $wgResourceLoaderLESSVars = array( 3486 * 'baseFontSize' => '1em', 3487 * 'smallFontSize' => '0.75em', 3488 * 'WikimediaBlue' => '#006699', 3489 * ); 3490 * @endcode 3491 * @since 1.22 3492 */ 3493 $wgResourceLoaderLESSVars = array(); 3494 3495 /** 3496 * Custom LESS functions. An associative array mapping function name to PHP 3497 * callable. 3498 * 3499 * Changes to LESS functions do not trigger cache invalidation. 3500 * 3501 * @since 1.22 3502 * @deprecated since 1.24 Questionable usefulness and problematic to support, 3503 * will be removed in the future. 3504 */ 3505 $wgResourceLoaderLESSFunctions = array(); 3506 3507 /** 3508 * Default import paths for LESS modules. LESS files referenced in @import 3509 * statements will be looked up here first, and relative to the importing file 3510 * second. To avoid collisions, it's important for the LESS files in these 3511 * directories to have a common, predictable file name prefix. 3512 * 3513 * Extensions need not (and should not) register paths in 3514 * $wgResourceLoaderLESSImportPaths. The import path includes the path of the 3515 * currently compiling LESS file, which allows each extension to freely import 3516 * files from its own tree. 3517 * 3518 * @since 1.22 3519 */ 3520 $wgResourceLoaderLESSImportPaths = array( 3521 "$IP/resources/src/mediawiki.less/", 3522 ); 3523 3524 /** 3525 * Whether ResourceLoader should attempt to persist modules in localStorage on 3526 * browsers that support the Web Storage API. 3527 * 3528 * @since 1.23 - Client-side module persistence is experimental. Exercise care. 3529 */ 3530 $wgResourceLoaderStorageEnabled = false; 3531 3532 /** 3533 * Cache version for client-side ResourceLoader module storage. You can trigger 3534 * invalidation of the contents of the module store by incrementing this value. 3535 * 3536 * @since 1.23 3537 */ 3538 $wgResourceLoaderStorageVersion = 1; 3539 3540 /** 3541 * Whether to allow site-wide CSS (MediaWiki:Common.css and friends) on 3542 * restricted pages like Special:UserLogin or Special:Preferences where 3543 * JavaScript is disabled for security reasons. As it is possible to 3544 * execute JavaScript through CSS, setting this to true opens up a 3545 * potential security hole. Some sites may "skin" their wiki by using 3546 * site-wide CSS, causing restricted pages to look unstyled and different 3547 * from the rest of the site. 3548 * 3549 * @since 1.25 3550 */ 3551 $wgAllowSiteCSSOnRestrictedPages = false; 3552 3553 /** @} */ # End of resource loader settings } 3554 3555 /*************************************************************************//** 3556 * @name Page title and interwiki link settings 3557 * @{ 3558 */ 3559 3560 /** 3561 * Name of the project namespace. If left set to false, $wgSitename will be 3562 * used instead. 3563 */ 3564 $wgMetaNamespace = false; 3565 3566 /** 3567 * Name of the project talk namespace. 3568 * 3569 * Normally you can ignore this and it will be something like 3570 * $wgMetaNamespace . "_talk". In some languages, you may want to set this 3571 * manually for grammatical reasons. 3572 */ 3573 $wgMetaNamespaceTalk = false; 3574 3575 /** 3576 * Additional namespaces. If the namespaces defined in Language.php and 3577 * Namespace.php are insufficient, you can create new ones here, for example, 3578 * to import Help files in other languages. You can also override the namespace 3579 * names of existing namespaces. Extensions developers should use 3580 * $wgCanonicalNamespaceNames. 3581 * 3582 * @warning Once you delete a namespace, the pages in that namespace will 3583 * no longer be accessible. If you rename it, then you can access them through 3584 * the new namespace name. 3585 * 3586 * Custom namespaces should start at 100 to avoid conflicting with standard 3587 * namespaces, and should always follow the even/odd main/talk pattern. 3588 * 3589 * @par Example: 3590 * @code 3591 * $wgExtraNamespaces = array( 3592 * 100 => "Hilfe", 3593 * 101 => "Hilfe_Diskussion", 3594 * 102 => "Aide", 3595 * 103 => "Discussion_Aide" 3596 * ); 3597 * @endcode 3598 * 3599 * @todo Add a note about maintenance/namespaceDupes.php 3600 */ 3601 $wgExtraNamespaces = array(); 3602 3603 /** 3604 * Same as above, but for namespaces with gender distinction. 3605 * Note: the default form for the namespace should also be set 3606 * using $wgExtraNamespaces for the same index. 3607 * @since 1.18 3608 */ 3609 $wgExtraGenderNamespaces = array(); 3610 3611 /** 3612 * Namespace aliases. 3613 * 3614 * These are alternate names for the primary localised namespace names, which 3615 * are defined by $wgExtraNamespaces and the language file. If a page is 3616 * requested with such a prefix, the request will be redirected to the primary 3617 * name. 3618 * 3619 * Set this to a map from namespace names to IDs. 3620 * 3621 * @par Example: 3622 * @code 3623 * $wgNamespaceAliases = array( 3624 * 'Wikipedian' => NS_USER, 3625 * 'Help' => 100, 3626 * ); 3627 * @endcode 3628 */ 3629 $wgNamespaceAliases = array(); 3630 3631 /** 3632 * Allowed title characters -- regex character class 3633 * Don't change this unless you know what you're doing 3634 * 3635 * Problematic punctuation: 3636 * - []{}|# Are needed for link syntax, never enable these 3637 * - <> Causes problems with HTML escaping, don't use 3638 * - % Enabled by default, minor problems with path to query rewrite rules, see below 3639 * - + Enabled by default, but doesn't work with path to query rewrite rules, 3640 * corrupted by apache 3641 * - ? Enabled by default, but doesn't work with path to PATH_INFO rewrites 3642 * 3643 * All three of these punctuation problems can be avoided by using an alias, 3644 * instead of a rewrite rule of either variety. 3645 * 3646 * The problem with % is that when using a path to query rewrite rule, URLs are 3647 * double-unescaped: once by Apache's path conversion code, and again by PHP. So 3648 * %253F, for example, becomes "?". Our code does not double-escape to compensate 3649 * for this, indeed double escaping would break if the double-escaped title was 3650 * passed in the query string rather than the path. This is a minor security issue 3651 * because articles can be created such that they are hard to view or edit. 3652 * 3653 * In some rare cases you may wish to remove + for compatibility with old links. 3654 * 3655 * Theoretically 0x80-0x9F of ISO 8859-1 should be disallowed, but 3656 * this breaks interlanguage links 3657 */ 3658 $wgLegalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+"; 3659 3660 /** 3661 * The interwiki prefix of the current wiki, or false if it doesn't have one. 3662 * 3663 * @deprecated since 1.23; use $wgLocalInterwikis instead 3664 */ 3665 $wgLocalInterwiki = false; 3666 3667 /** 3668 * Array for multiple $wgLocalInterwiki values, in case there are several 3669 * interwiki prefixes that point to the current wiki. If $wgLocalInterwiki is 3670 * set, its value is prepended to this array, for backwards compatibility. 3671 * 3672 * Note, recent changes feeds use only the first entry in this array (or 3673 * $wgLocalInterwiki, if it is set). See $wgRCFeeds 3674 */ 3675 $wgLocalInterwikis = array(); 3676 3677 /** 3678 * Expiry time for cache of interwiki table 3679 */ 3680 $wgInterwikiExpiry = 10800; 3681 3682 /** 3683 * @name Interwiki caching settings. 3684 * @{ 3685 */ 3686 3687 /** 3688 *$wgInterwikiCache specifies path to constant database file. 3689 * 3690 * This cdb database is generated by dumpInterwiki from maintenance and has 3691 * such key formats: 3692 * - dbname:key - a simple key (e.g. enwiki:meta) 3693 * - _sitename:key - site-scope key (e.g. wiktionary:meta) 3694 * - __global:key - global-scope key (e.g. __global:meta) 3695 * - __sites:dbname - site mapping (e.g. __sites:enwiki) 3696 * 3697 * Sites mapping just specifies site name, other keys provide "local url" 3698 * data layout. 3699 */ 3700 $wgInterwikiCache = false; 3701 3702 /** 3703 * Specify number of domains to check for messages. 3704 * - 1: Just wiki(db)-level 3705 * - 2: wiki and global levels 3706 * - 3: site levels 3707 */ 3708 $wgInterwikiScopes = 3; 3709 3710 /** 3711 * Fallback site, if unable to resolve from cache 3712 */ 3713 $wgInterwikiFallbackSite = 'wiki'; 3714 3715 /** @} */ # end of Interwiki caching settings. 3716 3717 /** 3718 * If local interwikis are set up which allow redirects, 3719 * set this regexp to restrict URLs which will be displayed 3720 * as 'redirected from' links. 3721 * 3722 * @par Example: 3723 * It might look something like this: 3724 * @code 3725 * $wgRedirectSources = '!^https?://[a-z-]+\.wikipedia\.org/!'; 3726 * @endcode 3727 * 3728 * Leave at false to avoid displaying any incoming redirect markers. 3729 * This does not affect intra-wiki redirects, which don't change 3730 * the URL. 3731 */ 3732 $wgRedirectSources = false; 3733 3734 /** 3735 * Set this to false to avoid forcing the first letter of links to capitals. 3736 * 3737 * @warning may break links! This makes links COMPLETELY case-sensitive. Links 3738 * appearing with a capital at the beginning of a sentence will *not* go to the 3739 * same place as links in the middle of a sentence using a lowercase initial. 3740 */ 3741 $wgCapitalLinks = true; 3742 3743 /** 3744 * @since 1.16 - This can now be set per-namespace. Some special namespaces (such 3745 * as Special, see MWNamespace::$alwaysCapitalizedNamespaces for the full list) must be 3746 * true by default (and setting them has no effect), due to various things that 3747 * require them to be so. Also, since Talk namespaces need to directly mirror their 3748 * associated content namespaces, the values for those are ignored in favor of the 3749 * subject namespace's setting. Setting for NS_MEDIA is taken automatically from 3750 * NS_FILE. 3751 * 3752 * @par Example: 3753 * @code 3754 * $wgCapitalLinkOverrides[ NS_FILE ] = false; 3755 * @endcode 3756 */ 3757 $wgCapitalLinkOverrides = array(); 3758 3759 /** 3760 * Which namespaces should support subpages? 3761 * See Language.php for a list of namespaces. 3762 */ 3763 $wgNamespacesWithSubpages = array( 3764 NS_TALK => true, 3765 NS_USER => true, 3766 NS_USER_TALK => true, 3767 NS_PROJECT => true, 3768 NS_PROJECT_TALK => true, 3769 NS_FILE_TALK => true, 3770 NS_MEDIAWIKI => true, 3771 NS_MEDIAWIKI_TALK => true, 3772 NS_TEMPLATE_TALK => true, 3773 NS_HELP => true, 3774 NS_HELP_TALK => true, 3775 NS_CATEGORY_TALK => true 3776 ); 3777 3778 /** 3779 * Array holding default tracking category names. 3780 * 3781 * Array contains the system messages for each tracking category. 3782 * Tracking categories allow pages with certain characteristics to be tracked. 3783 * It works by adding any such page to a category automatically. 3784 * 3785 * A message with the suffix '-desc' should be added as a description message 3786 * to have extra information on Special:TrackingCategories. 3787 * 3788 * @since 1.23 3789 */ 3790 $wgTrackingCategories = array( 3791 'index-category', 3792 'noindex-category', 3793 'expensive-parserfunction-category', 3794 'post-expand-template-argument-category', 3795 'post-expand-template-inclusion-category', 3796 'hidden-category-category', 3797 'broken-file-category', 3798 'node-count-exceeded-category', 3799 'expansion-depth-exceeded-category', 3800 ); 3801 3802 /** 3803 * Array of namespaces which can be deemed to contain valid "content", as far 3804 * as the site statistics are concerned. Useful if additional namespaces also 3805 * contain "content" which should be considered when generating a count of the 3806 * number of articles in the wiki. 3807 */ 3808 $wgContentNamespaces = array( NS_MAIN ); 3809 3810 /** 3811 * Max number of redirects to follow when resolving redirects. 3812 * 1 means only the first redirect is followed (default behavior). 3813 * 0 or less means no redirects are followed. 3814 */ 3815 $wgMaxRedirects = 1; 3816 3817 /** 3818 * Array of invalid page redirect targets. 3819 * Attempting to create a redirect to any of the pages in this array 3820 * will make the redirect fail. 3821 * Userlogout is hard-coded, so it does not need to be listed here. 3822 * (bug 10569) Disallow Mypage and Mytalk as well. 3823 * 3824 * As of now, this only checks special pages. Redirects to pages in 3825 * other namespaces cannot be invalidated by this variable. 3826 */ 3827 $wgInvalidRedirectTargets = array( 'Filepath', 'Mypage', 'Mytalk', 'Redirect' ); 3828 3829 /** @} */ # End of title and interwiki settings } 3830 3831 /************************************************************************//** 3832 * @name Parser settings 3833 * These settings configure the transformation from wikitext to HTML. 3834 * @{ 3835 */ 3836 3837 /** 3838 * Parser configuration. Associative array with the following members: 3839 * 3840 * class The class name 3841 * 3842 * preprocessorClass The preprocessor class. Two classes are currently available: 3843 * Preprocessor_Hash, which uses plain PHP arrays for temporary 3844 * storage, and Preprocessor_DOM, which uses the DOM module for 3845 * temporary storage. Preprocessor_DOM generally uses less memory; 3846 * the speed of the two is roughly the same. 3847 * 3848 * If this parameter is not given, it uses Preprocessor_DOM if the 3849 * DOM module is available, otherwise it uses Preprocessor_Hash. 3850 * 3851 * The entire associative array will be passed through to the constructor as 3852 * the first parameter. Note that only Setup.php can use this variable -- 3853 * the configuration will change at runtime via $wgParser member functions, so 3854 * the contents of this variable will be out-of-date. The variable can only be 3855 * changed during LocalSettings.php, in particular, it can't be changed during 3856 * an extension setup function. 3857 */ 3858 $wgParserConf = array( 3859 'class' => 'Parser', 3860 #'preprocessorClass' => 'Preprocessor_Hash', 3861 ); 3862 3863 /** 3864 * Maximum indent level of toc. 3865 */ 3866 $wgMaxTocLevel = 999; 3867 3868 /** 3869 * A complexity limit on template expansion: the maximum number of nodes visited 3870 * by PPFrame::expand() 3871 */ 3872 $wgMaxPPNodeCount = 1000000; 3873 3874 /** 3875 * A complexity limit on template expansion: the maximum number of elements 3876 * generated by Preprocessor::preprocessToObj(). This allows you to limit the 3877 * amount of memory used by the Preprocessor_DOM node cache: testing indicates 3878 * that each element uses about 160 bytes of memory on a 64-bit processor, so 3879 * this default corresponds to about 155 MB. 3880 * 3881 * When the limit is exceeded, an exception is thrown. 3882 */ 3883 $wgMaxGeneratedPPNodeCount = 1000000; 3884 3885 /** 3886 * Maximum recursion depth for templates within templates. 3887 * The current parser adds two levels to the PHP call stack for each template, 3888 * and xdebug limits the call stack to 100 by default. So this should hopefully 3889 * stop the parser before it hits the xdebug limit. 3890 */ 3891 $wgMaxTemplateDepth = 40; 3892 3893 /** 3894 * @see $wgMaxTemplateDepth 3895 */ 3896 $wgMaxPPExpandDepth = 40; 3897 3898 /** 3899 * URL schemes that should be recognized as valid by wfParseUrl(). 3900 * 3901 * WARNING: Do not add 'file:' to this or internal file links will be broken. 3902 * Instead, if you want to support file links, add 'file://'. The same applies 3903 * to any other protocols with the same name as a namespace. See bug #44011 for 3904 * more information. 3905 * 3906 * @see wfParseUrl 3907 */ 3908 $wgUrlProtocols = array( 3909 'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'http://', 3910 'https://', 'irc://', 'ircs://', 'magnet:', 'mailto:', 'mms://', 'news:', 3911 'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:', 'ssh://', 3912 'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:', '//' 3913 ); 3914 3915 /** 3916 * If true, removes (substitutes) templates in "~~~~" signatures. 3917 */ 3918 $wgCleanSignatures = true; 3919 3920 /** 3921 * Whether to allow inline image pointing to other websites 3922 */ 3923 $wgAllowExternalImages = false; 3924 3925 /** 3926 * If the above is false, you can specify an exception here. Image URLs 3927 * that start with this string are then rendered, while all others are not. 3928 * You can use this to set up a trusted, simple repository of images. 3929 * You may also specify an array of strings to allow multiple sites 3930 * 3931 * @par Examples: 3932 * @code 3933 * $wgAllowExternalImagesFrom = 'http://127.0.0.1/'; 3934 * $wgAllowExternalImagesFrom = array( 'http://127.0.0.1/', 'http://example.com' ); 3935 * @endcode 3936 */ 3937 $wgAllowExternalImagesFrom = ''; 3938 3939 /** 3940 * If $wgAllowExternalImages is false, you can allow an on-wiki 3941 * whitelist of regular expression fragments to match the image URL 3942 * against. If the image matches one of the regular expression fragments, 3943 * The image will be displayed. 3944 * 3945 * Set this to true to enable the on-wiki whitelist (MediaWiki:External image whitelist) 3946 * Or false to disable it 3947 */ 3948 $wgEnableImageWhitelist = true; 3949 3950 /** 3951 * A different approach to the above: simply allow the "<img>" tag to be used. 3952 * This allows you to specify alt text and other attributes, copy-paste HTML to 3953 * your wiki more easily, etc. However, allowing external images in any manner 3954 * will allow anyone with editing rights to snoop on your visitors' IP 3955 * addresses and so forth, if they wanted to, by inserting links to images on 3956 * sites they control. 3957 */ 3958 $wgAllowImageTag = false; 3959 3960 /** 3961 * $wgUseTidy: use tidy to make sure HTML output is sane. 3962 * Tidy is a free tool that fixes broken HTML. 3963 * See http://www.w3.org/People/Raggett/tidy/ 3964 * 3965 * - $wgTidyBin should be set to the path of the binary and 3966 * - $wgTidyConf to the path of the configuration file. 3967 * - $wgTidyOpts can include any number of parameters. 3968 * - $wgTidyInternal controls the use of the PECL extension or the 3969 * libtidy (PHP >= 5) extension to use an in-process tidy library instead 3970 * of spawning a separate program. 3971 * Normally you shouldn't need to override the setting except for 3972 * debugging. To install, use 'pear install tidy' and add a line 3973 * 'extension=tidy.so' to php.ini. 3974 */ 3975 $wgUseTidy = false; 3976 3977 /** 3978 * @see $wgUseTidy 3979 */ 3980 $wgAlwaysUseTidy = false; 3981 3982 /** 3983 * @see $wgUseTidy 3984 */ 3985 $wgTidyBin = 'tidy'; 3986 3987 /** 3988 * @see $wgUseTidy 3989 */ 3990 $wgTidyConf = $IP . '/includes/tidy.conf'; 3991 3992 /** 3993 * @see $wgUseTidy 3994 */ 3995 $wgTidyOpts = ''; 3996 3997 /** 3998 * @see $wgUseTidy 3999 */ 4000 $wgTidyInternal = extension_loaded( 'tidy' ); 4001 4002 /** 4003 * Put tidy warnings in HTML comments 4004 * Only works for internal tidy. 4005 */ 4006 $wgDebugTidy = false; 4007 4008 /** 4009 * Allow raw, unchecked HTML in "<html>...</html>" sections. 4010 * THIS IS VERY DANGEROUS on a publicly editable site, so USE wgGroupPermissions 4011 * TO RESTRICT EDITING to only those that you trust 4012 */ 4013 $wgRawHtml = false; 4014 4015 /** 4016 * Set a default target for external links, e.g. _blank to pop up a new window 4017 */ 4018 $wgExternalLinkTarget = false; 4019 4020 /** 4021 * If true, external URL links in wiki text will be given the 4022 * rel="nofollow" attribute as a hint to search engines that 4023 * they should not be followed for ranking purposes as they 4024 * are user-supplied and thus subject to spamming. 4025 */ 4026 $wgNoFollowLinks = true; 4027 4028 /** 4029 * Namespaces in which $wgNoFollowLinks doesn't apply. 4030 * See Language.php for a list of namespaces. 4031 */ 4032 $wgNoFollowNsExceptions = array(); 4033 4034 /** 4035 * If this is set to an array of domains, external links to these domain names 4036 * (or any subdomains) will not be set to rel="nofollow" regardless of the 4037 * value of $wgNoFollowLinks. For instance: 4038 * 4039 * $wgNoFollowDomainExceptions = array( 'en.wikipedia.org', 'wiktionary.org', 4040 * 'mediawiki.org' ); 4041 * 4042 * This would add rel="nofollow" to links to de.wikipedia.org, but not 4043 * en.wikipedia.org, wiktionary.org, en.wiktionary.org, us.en.wikipedia.org, 4044 * etc. 4045 * 4046 * Defaults to mediawiki.org for the links included in the software by default. 4047 */ 4048 $wgNoFollowDomainExceptions = array( 'mediawiki.org' ); 4049 4050 /** 4051 * Allow DISPLAYTITLE to change title display 4052 */ 4053 $wgAllowDisplayTitle = true; 4054 4055 /** 4056 * For consistency, restrict DISPLAYTITLE to text that normalizes to the same 4057 * canonical DB key. Also disallow some inline CSS rules like display: none; 4058 * which can cause the text to be hidden or unselectable. 4059 */ 4060 $wgRestrictDisplayTitle = true; 4061 4062 /** 4063 * Maximum number of calls per parse to expensive parser functions such as 4064 * PAGESINCATEGORY. 4065 */ 4066 $wgExpensiveParserFunctionLimit = 100; 4067 4068 /** 4069 * Preprocessor caching threshold 4070 * Setting it to 'false' will disable the preprocessor cache. 4071 */ 4072 $wgPreprocessorCacheThreshold = 1000; 4073 4074 /** 4075 * Enable interwiki transcluding. Only when iw_trans=1 in the interwiki table. 4076 */ 4077 $wgEnableScaryTranscluding = false; 4078 4079 /** 4080 * Expiry time for transcluded templates cached in transcache database table. 4081 * Only used $wgEnableInterwikiTranscluding is set to true. 4082 */ 4083 $wgTranscludeCacheExpiry = 3600; 4084 4085 /** @} */ # end of parser settings } 4086 4087 /************************************************************************//** 4088 * @name Statistics 4089 * @{ 4090 */ 4091 4092 /** 4093 * Method used to determine if a page in a content namespace should be counted 4094 * as a valid article. 4095 * 4096 * Redirect pages will never be counted as valid articles. 4097 * 4098 * This variable can have the following values: 4099 * - 'any': all pages as considered as valid articles 4100 * - 'comma': the page must contain a comma to be considered valid 4101 * - 'link': the page must contain a [[wiki link]] to be considered valid 4102 * 4103 * See also See https://www.mediawiki.org/wiki/Manual:Article_count 4104 * 4105 * Retroactively changing this variable will not affect the existing count, 4106 * to update it, you will need to run the maintenance/updateArticleCount.php 4107 * script. 4108 */ 4109 $wgArticleCountMethod = 'link'; 4110 4111 /** 4112 * wgHitcounterUpdateFreq sets how often page counters should be updated, higher 4113 * values are easier on the database. A value of 1 causes the counters to be 4114 * updated on every hit, any higher value n cause them to update *on average* 4115 * every n hits. Should be set to either 1 or something largish, eg 1000, for 4116 * maximum efficiency. 4117 */ 4118 $wgHitcounterUpdateFreq = 1; 4119 4120 /** 4121 * How many days user must be idle before he is considered inactive. Will affect 4122 * the number shown on Special:Statistics, Special:ActiveUsers, and the 4123 * {{NUMBEROFACTIVEUSERS}} magic word in wikitext. 4124 * You might want to leave this as the default value, to provide comparable 4125 * numbers between different wikis. 4126 */ 4127 $wgActiveUserDays = 30; 4128 4129 /** @} */ # End of statistics } 4130 4131 /************************************************************************//** 4132 * @name User accounts, authentication 4133 * @{ 4134 */ 4135 4136 /** 4137 * For compatibility with old installations set to false 4138 * @deprecated since 1.24 will be removed in future 4139 */ 4140 $wgPasswordSalt = true; 4141 4142 /** 4143 * Specifies the minimal length of a user password. If set to 0, empty pass- 4144 * words are allowed. 4145 */ 4146 $wgMinimalPasswordLength = 1; 4147 4148 /** 4149 * Specifies if users should be sent to a password-reset form on login, if their 4150 * password doesn't meet the requirements of User::isValidPassword(). 4151 * @since 1.23 4152 */ 4153 $wgInvalidPasswordReset = true; 4154 4155 /** 4156 * Default password type to use when hashing user passwords 4157 * 4158 * @since 1.24 4159 */ 4160 $wgPasswordDefault = 'pbkdf2'; 4161 4162 /** 4163 * Configuration for built-in password types. Maps the password type 4164 * to an array of options. The 'class' option is the Password class to 4165 * use. All other options are class-dependent. 4166 * 4167 * An advanced example: 4168 * @code 4169 * $wgPasswordConfig['bcrypt-peppered'] = array( 4170 * 'class' => 'EncryptedPassword', 4171 * 'underlying' => 'bcrypt', 4172 * 'secrets' => array(), 4173 * 'cipher' => MCRYPT_RIJNDAEL_256, 4174 * 'mode' => MCRYPT_MODE_CBC, 4175 * 'cost' => 5, 4176 * ); 4177 * @endcode 4178 * 4179 * @since 1.24 4180 */ 4181 $wgPasswordConfig = array( 4182 'A' => array( 4183 'class' => 'MWOldPassword', 4184 ), 4185 'B' => array( 4186 'class' => 'MWSaltedPassword', 4187 ), 4188 'pbkdf2-legacyA' => array( 4189 'class' => 'LayeredParameterizedPassword', 4190 'types' => array( 4191 'A', 4192 'pbkdf2', 4193 ), 4194 ), 4195 'pbkdf2-legacyB' => array( 4196 'class' => 'LayeredParameterizedPassword', 4197 'types' => array( 4198 'B', 4199 'pbkdf2', 4200 ), 4201 ), 4202 'bcrypt' => array( 4203 'class' => 'BcryptPassword', 4204 'cost' => 9, 4205 ), 4206 'pbkdf2' => array( 4207 'class' => 'Pbkdf2Password', 4208 'algo' => 'sha256', 4209 'cost' => '10000', 4210 'length' => '128', 4211 ), 4212 ); 4213 4214 /** 4215 * Whether to allow password resets ("enter some identifying data, and we'll send an email 4216 * with a temporary password you can use to get back into the account") identified by 4217 * various bits of data. Setting all of these to false (or the whole variable to false) 4218 * has the effect of disabling password resets entirely 4219 */ 4220 $wgPasswordResetRoutes = array( 4221 'username' => true, 4222 'email' => false, 4223 ); 4224 4225 /** 4226 * Maximum number of Unicode characters in signature 4227 */ 4228 $wgMaxSigChars = 255; 4229 4230 /** 4231 * Maximum number of bytes in username. You want to run the maintenance 4232 * script ./maintenance/checkUsernames.php once you have changed this value. 4233 */ 4234 $wgMaxNameChars = 255; 4235 4236 /** 4237 * Array of usernames which may not be registered or logged in from 4238 * Maintenance scripts can still use these 4239 */ 4240 $wgReservedUsernames = array( 4241 'MediaWiki default', // Default 'Main Page' and MediaWiki: message pages 4242 'Conversion script', // Used for the old Wikipedia software upgrade 4243 'Maintenance script', // Maintenance scripts which perform editing, image import script 4244 'Template namespace initialisation script', // Used in 1.2->1.3 upgrade 4245 'ScriptImporter', // Default user name used by maintenance/importSiteScripts.php 4246 'msg:double-redirect-fixer', // Automatic double redirect fix 4247 'msg:usermessage-editor', // Default user for leaving user messages 4248 'msg:proxyblocker', // For $wgProxyList and Special:Blockme (removed in 1.22) 4249 ); 4250 4251 /** 4252 * Settings added to this array will override the default globals for the user 4253 * preferences used by anonymous visitors and newly created accounts. 4254 * For instance, to disable editing on double clicks: 4255 * $wgDefaultUserOptions ['editondblclick'] = 0; 4256 */ 4257 $wgDefaultUserOptions = array( 4258 'ccmeonemails' => 0, 4259 'cols' => 80, 4260 'date' => 'default', 4261 'diffonly' => 0, 4262 'disablemail' => 0, 4263 'editfont' => 'default', 4264 'editondblclick' => 0, 4265 'editsectiononrightclick' => 0, 4266 'enotifminoredits' => 0, 4267 'enotifrevealaddr' => 0, 4268 'enotifusertalkpages' => 1, 4269 'enotifwatchlistpages' => 1, 4270 'extendwatchlist' => 0, 4271 'fancysig' => 0, 4272 'forceeditsummary' => 0, 4273 'gender' => 'unknown', 4274 'hideminor' => 0, 4275 'hidepatrolled' => 0, 4276 'imagesize' => 2, 4277 'math' => 1, 4278 'minordefault' => 0, 4279 'newpageshidepatrolled' => 0, 4280 'nickname' => '', 4281 'norollbackdiff' => 0, 4282 'numberheadings' => 0, 4283 'previewonfirst' => 0, 4284 'previewontop' => 1, 4285 'rcdays' => 7, 4286 'rclimit' => 50, 4287 'rows' => 25, 4288 'showhiddencats' => 0, 4289 'shownumberswatching' => 1, 4290 'showtoolbar' => 1, 4291 'skin' => false, 4292 'stubthreshold' => 0, 4293 'thumbsize' => 5, 4294 'underline' => 2, 4295 'uselivepreview' => 0, 4296 'usenewrc' => 0, 4297 'watchcreations' => 1, 4298 'watchdefault' => 1, 4299 'watchdeletion' => 0, 4300 'watchlistdays' => 3.0, 4301 'watchlisthideanons' => 0, 4302 'watchlisthidebots' => 0, 4303 'watchlisthideliu' => 0, 4304 'watchlisthideminor' => 0, 4305 'watchlisthideown' => 0, 4306 'watchlisthidepatrolled' => 0, 4307 'watchmoves' => 0, 4308 'watchrollback' => 0, 4309 'wllimit' => 250, 4310 'useeditwarning' => 1, 4311 'prefershttps' => 1, 4312 ); 4313 4314 /** 4315 * An array of preferences to not show for the user 4316 */ 4317 $wgHiddenPrefs = array(); 4318 4319 /** 4320 * Characters to prevent during new account creations. 4321 * This is used in a regular expression character class during 4322 * registration (regex metacharacters like / are escaped). 4323 */ 4324 $wgInvalidUsernameCharacters = '@'; 4325 4326 /** 4327 * Character used as a delimiter when testing for interwiki userrights 4328 * (In Special:UserRights, it is possible to modify users on different 4329 * databases if the delimiter is used, e.g. "Someuser@enwiki"). 4330 * 4331 * It is recommended that you have this delimiter in 4332 * $wgInvalidUsernameCharacters above, or you will not be able to 4333 * modify the user rights of those users via Special:UserRights 4334 */ 4335 $wgUserrightsInterwikiDelimiter = '@'; 4336 4337 /** 4338 * This is to let user authenticate using https when they come from http. 4339 * Based on an idea by George Herbert on wikitech-l: 4340 * http://lists.wikimedia.org/pipermail/wikitech-l/2010-October/050039.html 4341 * @since 1.17 4342 */ 4343 $wgSecureLogin = false; 4344 4345 /** @} */ # end user accounts } 4346 4347 /************************************************************************//** 4348 * @name User rights, access control and monitoring 4349 * @{ 4350 */ 4351 4352 /** 4353 * Number of seconds before autoblock entries expire. Default 86400 = 1 day. 4354 */ 4355 $wgAutoblockExpiry = 86400; 4356 4357 /** 4358 * Set this to true to allow blocked users to edit their own user talk page. 4359 */ 4360 $wgBlockAllowsUTEdit = false; 4361 4362 /** 4363 * Allow sysops to ban users from accessing Emailuser 4364 */ 4365 $wgSysopEmailBans = true; 4366 4367 /** 4368 * Limits on the possible sizes of range blocks. 4369 * 4370 * CIDR notation is hard to understand, it's easy to mistakenly assume that a 4371 * /1 is a small range and a /31 is a large range. For IPv4, setting a limit of 4372 * half the number of bits avoids such errors, and allows entire ISPs to be 4373 * blocked using a small number of range blocks. 4374 * 4375 * For IPv6, RFC 3177 recommends that a /48 be allocated to every residential 4376 * customer, so range blocks larger than /64 (half the number of bits) will 4377 * plainly be required. RFC 4692 implies that a very large ISP may be 4378 * allocated a /19 if a generous HD-Ratio of 0.8 is used, so we will use that 4379 * as our limit. As of 2012, blocking the whole world would require a /4 range. 4380 */ 4381 $wgBlockCIDRLimit = array( 4382 'IPv4' => 16, # Blocks larger than a /16 (64k addresses) will not be allowed 4383 'IPv6' => 19, 4384 ); 4385 4386 /** 4387 * If true, blocked users will not be allowed to login. When using this with 4388 * a public wiki, the effect of logging out blocked users may actually be 4389 * avers: unless the user's address is also blocked (e.g. auto-block), 4390 * logging the user out will again allow reading and editing, just as for 4391 * anonymous visitors. 4392 */ 4393 $wgBlockDisablesLogin = false; 4394 4395 /** 4396 * Pages anonymous user may see, set as an array of pages titles. 4397 * 4398 * @par Example: 4399 * @code 4400 * $wgWhitelistRead = array ( "Main Page", "Wikipedia:Help"); 4401 * @endcode 4402 * 4403 * Special:Userlogin and Special:ChangePassword are always whitelisted. 4404 * 4405 * @note This will only work if $wgGroupPermissions['*']['read'] is false -- 4406 * see below. Otherwise, ALL pages are accessible, regardless of this setting. 4407 * 4408 * @note Also that this will only protect _pages in the wiki_. Uploaded files 4409 * will remain readable. You can use img_auth.php to protect uploaded files, 4410 * see https://www.mediawiki.org/wiki/Manual:Image_Authorization 4411 */ 4412 $wgWhitelistRead = false; 4413 4414 /** 4415 * Pages anonymous user may see, set as an array of regular expressions. 4416 * 4417 * This function will match the regexp against the title name, which 4418 * is without underscore. 4419 * 4420 * @par Example: 4421 * To whitelist [[Main Page]]: 4422 * @code 4423 * $wgWhitelistReadRegexp = array( "/Main Page/" ); 4424 * @endcode 4425 * 4426 * @note Unless ^ and/or $ is specified, a regular expression might match 4427 * pages not intended to be whitelisted. The above example will also 4428 * whitelist a page named 'Security Main Page'. 4429 * 4430 * @par Example: 4431 * To allow reading any page starting with 'User' regardless of the case: 4432 * @code 4433 * $wgWhitelistReadRegexp = array( "@^UsEr.*@i" ); 4434 * @endcode 4435 * Will allow both [[User is banned]] and [[User:JohnDoe]] 4436 * 4437 * @note This will only work if $wgGroupPermissions['*']['read'] is false -- 4438 * see below. Otherwise, ALL pages are accessible, regardless of this setting. 4439 */ 4440 $wgWhitelistReadRegexp = false; 4441 4442 /** 4443 * Should editors be required to have a validated e-mail 4444 * address before being allowed to edit? 4445 */ 4446 $wgEmailConfirmToEdit = false; 4447 4448 /** 4449 * Permission keys given to users in each group. 4450 * 4451 * This is an array where the keys are all groups and each value is an 4452 * array of the format (right => boolean). 4453 * 4454 * The second format is used to support per-namespace permissions. 4455 * Note that this feature does not fully work for all permission types. 4456 * 4457 * All users are implicitly in the '*' group including anonymous visitors; 4458 * logged-in users are all implicitly in the 'user' group. These will be 4459 * combined with the permissions of all groups that a given user is listed 4460 * in in the user_groups table. 4461 * 4462 * Note: Don't set $wgGroupPermissions = array(); unless you know what you're 4463 * doing! This will wipe all permissions, and may mean that your users are 4464 * unable to perform certain essential tasks or access new functionality 4465 * when new permissions are introduced and default grants established. 4466 * 4467 * Functionality to make pages inaccessible has not been extensively tested 4468 * for security. Use at your own risk! 4469 * 4470 * This replaces $wgWhitelistAccount and $wgWhitelistEdit 4471 */ 4472 $wgGroupPermissions = array(); 4473 4474 /** @cond file_level_code */ 4475 // Implicit group for all visitors 4476 $wgGroupPermissions['*']['createaccount'] = true; 4477 $wgGroupPermissions['*']['read'] = true; 4478 $wgGroupPermissions['*']['edit'] = true; 4479 $wgGroupPermissions['*']['createpage'] = true; 4480 $wgGroupPermissions['*']['createtalk'] = true; 4481 $wgGroupPermissions['*']['writeapi'] = true; 4482 $wgGroupPermissions['*']['editmyusercss'] = true; 4483 $wgGroupPermissions['*']['editmyuserjs'] = true; 4484 $wgGroupPermissions['*']['viewmywatchlist'] = true; 4485 $wgGroupPermissions['*']['editmywatchlist'] = true; 4486 $wgGroupPermissions['*']['viewmyprivateinfo'] = true; 4487 $wgGroupPermissions['*']['editmyprivateinfo'] = true; 4488 $wgGroupPermissions['*']['editmyoptions'] = true; 4489 #$wgGroupPermissions['*']['patrolmarks'] = false; // let anons see what was patrolled 4490 4491 // Implicit group for all logged-in accounts 4492 $wgGroupPermissions['user']['move'] = true; 4493 $wgGroupPermissions['user']['move-subpages'] = true; 4494 $wgGroupPermissions['user']['move-rootuserpages'] = true; // can move root userpages 4495 $wgGroupPermissions['user']['move-categorypages'] = true; 4496 $wgGroupPermissions['user']['movefile'] = true; 4497 $wgGroupPermissions['user']['read'] = true; 4498 $wgGroupPermissions['user']['edit'] = true; 4499 $wgGroupPermissions['user']['createpage'] = true; 4500 $wgGroupPermissions['user']['createtalk'] = true; 4501 $wgGroupPermissions['user']['writeapi'] = true; 4502 $wgGroupPermissions['user']['upload'] = true; 4503 $wgGroupPermissions['user']['reupload'] = true; 4504 $wgGroupPermissions['user']['reupload-shared'] = true; 4505 $wgGroupPermissions['user']['minoredit'] = true; 4506 $wgGroupPermissions['user']['purge'] = true; // can use ?action=purge without clicking "ok" 4507 $wgGroupPermissions['user']['sendemail'] = true; 4508 4509 // Implicit group for accounts that pass $wgAutoConfirmAge 4510 $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true; 4511 $wgGroupPermissions['autoconfirmed']['editsemiprotected'] = true; 4512 4513 // Users with bot privilege can have their edits hidden 4514 // from various log pages by default 4515 $wgGroupPermissions['bot']['bot'] = true; 4516 $wgGroupPermissions['bot']['autoconfirmed'] = true; 4517 $wgGroupPermissions['bot']['editsemiprotected'] = true; 4518 $wgGroupPermissions['bot']['nominornewtalk'] = true; 4519 $wgGroupPermissions['bot']['autopatrol'] = true; 4520 $wgGroupPermissions['bot']['suppressredirect'] = true; 4521 $wgGroupPermissions['bot']['apihighlimits'] = true; 4522 $wgGroupPermissions['bot']['writeapi'] = true; 4523 4524 // Most extra permission abilities go to this group 4525 $wgGroupPermissions['sysop']['block'] = true; 4526 $wgGroupPermissions['sysop']['createaccount'] = true; 4527 $wgGroupPermissions['sysop']['delete'] = true; 4528 // can be separately configured for pages with > $wgDeleteRevisionsLimit revs 4529 $wgGroupPermissions['sysop']['bigdelete'] = true; 4530 // can view deleted history entries, but not see or restore the text 4531 $wgGroupPermissions['sysop']['deletedhistory'] = true; 4532 // can view deleted revision text 4533 $wgGroupPermissions['sysop']['deletedtext'] = true; 4534 $wgGroupPermissions['sysop']['undelete'] = true; 4535 $wgGroupPermissions['sysop']['editinterface'] = true; 4536 $wgGroupPermissions['sysop']['editusercss'] = true; 4537 $wgGroupPermissions['sysop']['edituserjs'] = true; 4538 $wgGroupPermissions['sysop']['import'] = true; 4539 $wgGroupPermissions['sysop']['importupload'] = true; 4540 $wgGroupPermissions['sysop']['move'] = true; 4541 $wgGroupPermissions['sysop']['move-subpages'] = true; 4542 $wgGroupPermissions['sysop']['move-rootuserpages'] = true; 4543 $wgGroupPermissions['sysop']['move-categorypages'] = true; 4544 $wgGroupPermissions['sysop']['patrol'] = true; 4545 $wgGroupPermissions['sysop']['autopatrol'] = true; 4546 $wgGroupPermissions['sysop']['protect'] = true; 4547 $wgGroupPermissions['sysop']['editprotected'] = true; 4548 $wgGroupPermissions['sysop']['proxyunbannable'] = true; 4549 $wgGroupPermissions['sysop']['rollback'] = true; 4550 $wgGroupPermissions['sysop']['upload'] = true; 4551 $wgGroupPermissions['sysop']['reupload'] = true; 4552 $wgGroupPermissions['sysop']['reupload-shared'] = true; 4553 $wgGroupPermissions['sysop']['unwatchedpages'] = true; 4554 $wgGroupPermissions['sysop']['autoconfirmed'] = true; 4555 $wgGroupPermissions['sysop']['editsemiprotected'] = true; 4556 $wgGroupPermissions['sysop']['ipblock-exempt'] = true; 4557 $wgGroupPermissions['sysop']['blockemail'] = true; 4558 $wgGroupPermissions['sysop']['markbotedits'] = true; 4559 $wgGroupPermissions['sysop']['apihighlimits'] = true; 4560 $wgGroupPermissions['sysop']['browsearchive'] = true; 4561 $wgGroupPermissions['sysop']['noratelimit'] = true; 4562 $wgGroupPermissions['sysop']['movefile'] = true; 4563 $wgGroupPermissions['sysop']['unblockself'] = true; 4564 $wgGroupPermissions['sysop']['suppressredirect'] = true; 4565 #$wgGroupPermissions['sysop']['pagelang'] = true; 4566 #$wgGroupPermissions['sysop']['upload_by_url'] = true; 4567 $wgGroupPermissions['sysop']['mergehistory'] = true; 4568 4569 // Permission to change users' group assignments 4570 $wgGroupPermissions['bureaucrat']['userrights'] = true; 4571 $wgGroupPermissions['bureaucrat']['noratelimit'] = true; 4572 // Permission to change users' groups assignments across wikis 4573 #$wgGroupPermissions['bureaucrat']['userrights-interwiki'] = true; 4574 // Permission to export pages including linked pages regardless of $wgExportMaxLinkDepth 4575 #$wgGroupPermissions['bureaucrat']['override-export-depth'] = true; 4576 4577 #$wgGroupPermissions['sysop']['deletelogentry'] = true; 4578 #$wgGroupPermissions['sysop']['deleterevision'] = true; 4579 // To hide usernames from users and Sysops 4580 #$wgGroupPermissions['suppress']['hideuser'] = true; 4581 // To hide revisions/log items from users and Sysops 4582 #$wgGroupPermissions['suppress']['suppressrevision'] = true; 4583 // To view revisions/log items hidden from users and Sysops 4584 #$wgGroupPermissions['suppress']['viewsuppressed'] = true; 4585 // For private suppression log access 4586 #$wgGroupPermissions['suppress']['suppressionlog'] = true; 4587 4588 /** 4589 * The developer group is deprecated, but can be activated if need be 4590 * to use the 'lockdb' and 'unlockdb' special pages. Those require 4591 * that a lock file be defined and creatable/removable by the web 4592 * server. 4593 */ 4594 # $wgGroupPermissions['developer']['siteadmin'] = true; 4595 4596 /** @endcond */ 4597 4598 /** 4599 * Permission keys revoked from users in each group. 4600 * 4601 * This acts the same way as wgGroupPermissions above, except that 4602 * if the user is in a group here, the permission will be removed from them. 4603 * 4604 * Improperly setting this could mean that your users will be unable to perform 4605 * certain essential tasks, so use at your own risk! 4606 */ 4607 $wgRevokePermissions = array(); 4608 4609 /** 4610 * Implicit groups, aren't shown on Special:Listusers or somewhere else 4611 */ 4612 $wgImplicitGroups = array( '*', 'user', 'autoconfirmed' ); 4613 4614 /** 4615 * A map of group names that the user is in, to group names that those users 4616 * are allowed to add or revoke. 4617 * 4618 * Setting the list of groups to add or revoke to true is equivalent to "any 4619 * group". 4620 * 4621 * @par Example: 4622 * To allow sysops to add themselves to the "bot" group: 4623 * @code 4624 * $wgGroupsAddToSelf = array( 'sysop' => array( 'bot' ) ); 4625 * @endcode 4626 * 4627 * @par Example: 4628 * Implicit groups may be used for the source group, for instance: 4629 * @code 4630 * $wgGroupsRemoveFromSelf = array( '*' => true ); 4631 * @endcode 4632 * This allows users in the '*' group (i.e. any user) to remove themselves from 4633 * any group that they happen to be in. 4634 */ 4635 $wgGroupsAddToSelf = array(); 4636 4637 /** 4638 * @see $wgGroupsAddToSelf 4639 */ 4640 $wgGroupsRemoveFromSelf = array(); 4641 4642 /** 4643 * Set of available actions that can be restricted via action=protect 4644 * You probably shouldn't change this. 4645 * Translated through restriction-* messages. 4646 * Title::getRestrictionTypes() will remove restrictions that are not 4647 * applicable to a specific title (create and upload) 4648 */ 4649 $wgRestrictionTypes = array( 'create', 'edit', 'move', 'upload' ); 4650 4651 /** 4652 * Rights which can be required for each protection level (via action=protect) 4653 * 4654 * You can add a new protection level that requires a specific 4655 * permission by manipulating this array. The ordering of elements 4656 * dictates the order on the protection form's lists. 4657 * 4658 * - '' will be ignored (i.e. unprotected) 4659 * - 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility 4660 * - 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility 4661 */ 4662 $wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop' ); 4663 4664 /** 4665 * Restriction levels that can be used with cascading protection 4666 * 4667 * A page can only be protected with cascading protection if the 4668 * requested restriction level is included in this array. 4669 * 4670 * 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility. 4671 * 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility. 4672 */ 4673 $wgCascadingRestrictionLevels = array( 'sysop' ); 4674 4675 /** 4676 * Restriction levels that should be considered "semiprotected" 4677 * 4678 * Certain places in the interface recognize a dichotomy between "protected" 4679 * and "semiprotected", without further distinguishing the specific levels. In 4680 * general, if anyone can be eligible to edit a protection level merely by 4681 * reaching some condition in $wgAutopromote, it should probably be considered 4682 * "semiprotected". 4683 * 4684 * 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility. 4685 * 'sysop' is not changed, since it really shouldn't be here. 4686 */ 4687 $wgSemiprotectedRestrictionLevels = array( 'autoconfirmed' ); 4688 4689 /** 4690 * Set the minimum permissions required to edit pages in each 4691 * namespace. If you list more than one permission, a user must 4692 * have all of them to edit pages in that namespace. 4693 * 4694 * @note NS_MEDIAWIKI is implicitly restricted to 'editinterface'. 4695 */ 4696 $wgNamespaceProtection = array(); 4697 4698 /** 4699 * Pages in namespaces in this array can not be used as templates. 4700 * 4701 * Elements MUST be numeric namespace ids, you can safely use the MediaWiki 4702 * namespaces constants (NS_USER, NS_MAIN...). 4703 * 4704 * Among other things, this may be useful to enforce read-restrictions 4705 * which may otherwise be bypassed by using the template mechanism. 4706 */ 4707 $wgNonincludableNamespaces = array(); 4708 4709 /** 4710 * Number of seconds an account is required to age before it's given the 4711 * implicit 'autoconfirm' group membership. This can be used to limit 4712 * privileges of new accounts. 4713 * 4714 * Accounts created by earlier versions of the software may not have a 4715 * recorded creation date, and will always be considered to pass the age test. 4716 * 4717 * When left at 0, all registered accounts will pass. 4718 * 4719 * @par Example: 4720 * Set automatic confirmation to 10 minutes (which is 600 seconds): 4721 * @code 4722 * $wgAutoConfirmAge = 600; // ten minutes 4723 * @endcode 4724 * Set age to one day: 4725 * @code 4726 * $wgAutoConfirmAge = 3600*24; // one day 4727 * @endcode 4728 */ 4729 $wgAutoConfirmAge = 0; 4730 4731 /** 4732 * Number of edits an account requires before it is autoconfirmed. 4733 * Passing both this AND the time requirement is needed. Example: 4734 * 4735 * @par Example: 4736 * @code 4737 * $wgAutoConfirmCount = 50; 4738 * @endcode 4739 */ 4740 $wgAutoConfirmCount = 0; 4741 4742 /** 4743 * Automatically add a usergroup to any user who matches certain conditions. 4744 * 4745 * @todo Redocument $wgAutopromote 4746 * 4747 * The format is 4748 * array( '&' or '|' or '^' or '!', cond1, cond2, ... ) 4749 * where cond1, cond2, ... are themselves conditions; *OR* 4750 * APCOND_EMAILCONFIRMED, *OR* 4751 * array( APCOND_EMAILCONFIRMED ), *OR* 4752 * array( APCOND_EDITCOUNT, number of edits ), *OR* 4753 * array( APCOND_AGE, seconds since registration ), *OR* 4754 * array( APCOND_INGROUPS, group1, group2, ... ), *OR* 4755 * array( APCOND_ISIP, ip ), *OR* 4756 * array( APCOND_IPINRANGE, range ), *OR* 4757 * array( APCOND_AGE_FROM_EDIT, seconds since first edit ), *OR* 4758 * array( APCOND_BLOCKED ), *OR* 4759 * array( APCOND_ISBOT ), *OR* 4760 * similar constructs defined by extensions. 4761 * 4762 * If $wgEmailAuthentication is off, APCOND_EMAILCONFIRMED will be true for any 4763 * user who has provided an e-mail address. 4764 */ 4765 $wgAutopromote = array( 4766 'autoconfirmed' => array( '&', 4767 array( APCOND_EDITCOUNT, &$wgAutoConfirmCount ), 4768 array( APCOND_AGE, &$wgAutoConfirmAge ), 4769 ), 4770 ); 4771 4772 /** 4773 * Automatically add a usergroup to any user who matches certain conditions. 4774 * 4775 * Does not add the user to the group again if it has been removed. 4776 * Also, does not remove the group if the user no longer meets the criteria. 4777 * 4778 * The format is: 4779 * @code 4780 * array( event => criteria, ... ) 4781 * @endcode 4782 * Where event is either: 4783 * - 'onEdit' (when user edits) 4784 * - 'onView' (when user views the wiki) 4785 * 4786 * Criteria has the same format as $wgAutopromote 4787 * 4788 * @see $wgAutopromote 4789 * @since 1.18 4790 */ 4791 $wgAutopromoteOnce = array( 4792 'onEdit' => array(), 4793 'onView' => array() 4794 ); 4795 4796 /** 4797 * Put user rights log entries for autopromotion in recent changes? 4798 * @since 1.18 4799 */ 4800 $wgAutopromoteOnceLogInRC = true; 4801 4802 /** 4803 * $wgAddGroups and $wgRemoveGroups can be used to give finer control over who 4804 * can assign which groups at Special:Userrights. 4805 * 4806 * @par Example: 4807 * Bureaucrats can add any group: 4808 * @code 4809 * $wgAddGroups['bureaucrat'] = true; 4810 * @endcode 4811 * Bureaucrats can only remove bots and sysops: 4812 * @code 4813 * $wgRemoveGroups['bureaucrat'] = array( 'bot', 'sysop' ); 4814 * @endcode 4815 * Sysops can make bots: 4816 * @code 4817 * $wgAddGroups['sysop'] = array( 'bot' ); 4818 * @endcode 4819 * Sysops can disable other sysops in an emergency, and disable bots: 4820 * @code 4821 * $wgRemoveGroups['sysop'] = array( 'sysop', 'bot' ); 4822 * @endcode 4823 */ 4824 $wgAddGroups = array(); 4825 4826 /** 4827 * @see $wgAddGroups 4828 */ 4829 $wgRemoveGroups = array(); 4830 4831 /** 4832 * A list of available rights, in addition to the ones defined by the core. 4833 * For extensions only. 4834 */ 4835 $wgAvailableRights = array(); 4836 4837 /** 4838 * Optional to restrict deletion of pages with higher revision counts 4839 * to users with the 'bigdelete' permission. (Default given to sysops.) 4840 */ 4841 $wgDeleteRevisionsLimit = 0; 4842 4843 /** 4844 * The maximum number of edits a user can have and 4845 * can still be hidden by users with the hideuser permission. 4846 * This is limited for performance reason. 4847 * Set to false to disable the limit. 4848 * @since 1.23 4849 */ 4850 $wgHideUserContribLimit = 1000; 4851 4852 /** 4853 * Number of accounts each IP address may create, 0 to disable. 4854 * 4855 * @warning Requires memcached 4856 */ 4857 $wgAccountCreationThrottle = 0; 4858 4859 /** 4860 * Edits matching these regular expressions in body text 4861 * will be recognised as spam and rejected automatically. 4862 * 4863 * There's no administrator override on-wiki, so be careful what you set. :) 4864 * May be an array of regexes or a single string for backwards compatibility. 4865 * 4866 * @see http://en.wikipedia.org/wiki/Regular_expression 4867 * 4868 * @note Each regex needs a beginning/end delimiter, eg: # or / 4869 */ 4870 $wgSpamRegex = array(); 4871 4872 /** 4873 * Same as the above except for edit summaries 4874 */ 4875 $wgSummarySpamRegex = array(); 4876 4877 /** 4878 * Whether to use DNS blacklists in $wgDnsBlacklistUrls to check for open 4879 * proxies 4880 * @since 1.16 4881 */ 4882 $wgEnableDnsBlacklist = false; 4883 4884 /** 4885 * List of DNS blacklists to use, if $wgEnableDnsBlacklist is true. 4886 * 4887 * This is an array of either a URL or an array with the URL and a key (should 4888 * the blacklist require a key). 4889 * 4890 * @par Example: 4891 * @code 4892 * $wgDnsBlacklistUrls = array( 4893 * // String containing URL 4894 * 'http.dnsbl.sorbs.net.', 4895 * // Array with URL and key, for services that require a key 4896 * array( 'dnsbl.httpbl.net.', 'mykey' ), 4897 * // Array with just the URL. While this works, it is recommended that you 4898 * // just use a string as shown above 4899 * array( 'opm.tornevall.org.' ) 4900 * ); 4901 * @endcode 4902 * 4903 * @note You should end the domain name with a . to avoid searching your 4904 * eventual domain search suffixes. 4905 * @since 1.16 4906 */ 4907 $wgDnsBlacklistUrls = array( 'http.dnsbl.sorbs.net.' ); 4908 4909 /** 4910 * Proxy whitelist, list of addresses that are assumed to be non-proxy despite 4911 * what the other methods might say. 4912 */ 4913 $wgProxyWhitelist = array(); 4914 4915 /** 4916 * Whether to look at the X-Forwarded-For header's list of (potentially spoofed) 4917 * IPs and apply IP blocks to them. This allows for IP blocks to work with correctly-configured 4918 * (transparent) proxies without needing to block the proxies themselves. 4919 */ 4920 $wgApplyIpBlocksToXff = false; 4921 4922 /** 4923 * Simple rate limiter options to brake edit floods. 4924 * 4925 * Maximum number actions allowed in the given number of seconds; after that 4926 * the violating client receives HTTP 500 error pages until the period 4927 * elapses. 4928 * 4929 * @par Example: 4930 * To set a generic maximum of 4 hits in 60 seconds: 4931 * @code 4932 * $wgRateLimits = array( 4, 60 ); 4933 * @endcode 4934 * 4935 * You could also limit per action and then type of users. See the inline 4936 * code for a template to use. 4937 * 4938 * This option set is experimental and likely to change. 4939 * 4940 * @warning Requires memcached. 4941 */ 4942 $wgRateLimits = array( 4943 'edit' => array( 4944 'anon' => null, // for any and all anonymous edits (aggregate) 4945 'user' => null, // for each logged-in user 4946 'newbie' => null, // for each recent (autoconfirmed) account; overrides 'user' 4947 'ip' => null, // for each anon and recent account 4948 'subnet' => null, // ... within a /24 subnet in IPv4 or /64 in IPv6 4949 ), 4950 'move' => array( 4951 'user' => null, 4952 'newbie' => null, 4953 'ip' => null, 4954 'subnet' => null, 4955 ), 4956 'mailpassword' => array( // triggering password resets emails 4957 'anon' => null, 4958 ), 4959 'emailuser' => array( // emailing other users using MediaWiki 4960 'user' => null, 4961 ), 4962 'linkpurge' => array( // purges of link tables 4963 'anon' => null, 4964 'user' => null, 4965 'newbie' => null, 4966 'ip' => null, 4967 'subnet' => null, 4968 ), 4969 'renderfile' => array( // files rendered via thumb.php or thumb_handler.php 4970 'anon' => null, 4971 'user' => null, 4972 'newbie' => null, 4973 'ip' => null, 4974 'subnet' => null, 4975 ), 4976 'renderfile-nonstandard' => array( // same as above but for non-standard thumbnails 4977 'anon' => null, 4978 'user' => null, 4979 'newbie' => null, 4980 'ip' => null, 4981 'subnet' => null, 4982 ), 4983 ); 4984 4985 /** 4986 * Set to a filename to log rate limiter hits. 4987 * 4988 * @deprecated since 1.23, use $wgDebugLogGroups['ratelimit'] instead 4989 */ 4990 $wgRateLimitLog = null; 4991 4992 /** 4993 * Array of IPs which should be excluded from rate limits. 4994 * This may be useful for whitelisting NAT gateways for conferences, etc. 4995 */ 4996 $wgRateLimitsExcludedIPs = array(); 4997 4998 /** 4999 * Log IP addresses in the recentchanges table; can be accessed only by 5000 * extensions (e.g. CheckUser) or a DB admin 5001 * Used for retroactive autoblocks 5002 */ 5003 $wgPutIPinRC = true; 5004 5005 /** 5006 * Integer defining default number of entries to show on 5007 * special pages which are query-pages such as Special:Whatlinkshere. 5008 */ 5009 $wgQueryPageDefaultLimit = 50; 5010 5011 /** 5012 * Limit password attempts to X attempts per Y seconds per IP per account. 5013 * 5014 * @warning Requires memcached. 5015 */ 5016 $wgPasswordAttemptThrottle = array( 'count' => 5, 'seconds' => 300 ); 5017 5018 /** @} */ # end of user rights settings 5019 5020 /************************************************************************//** 5021 * @name Proxy scanner settings 5022 * @{ 5023 */ 5024 5025 /** 5026 * This should always be customised in LocalSettings.php 5027 */ 5028 $wgSecretKey = false; 5029 5030 /** 5031 * Big list of banned IP addresses. 5032 * 5033 * This can have the following formats: 5034 * - An array of addresses, either in the values 5035 * or the keys (for backward compatibility) 5036 * - A string, in that case this is the path to a file 5037 * containing the list of IP addresses, one per line 5038 */ 5039 $wgProxyList = array(); 5040 5041 /** @} */ # end of proxy scanner settings 5042 5043 /************************************************************************//** 5044 * @name Cookie settings 5045 * @{ 5046 */ 5047 5048 /** 5049 * Default cookie lifetime, in seconds. Setting to 0 makes all cookies session-only. 5050 */ 5051 $wgCookieExpiration = 180 * 86400; 5052 5053 /** 5054 * Set to set an explicit domain on the login cookies eg, "justthis.domain.org" 5055 * or ".any.subdomain.net" 5056 */ 5057 $wgCookieDomain = ''; 5058 5059 /** 5060 * Set this variable if you want to restrict cookies to a certain path within 5061 * the domain specified by $wgCookieDomain. 5062 */ 5063 $wgCookiePath = '/'; 5064 5065 /** 5066 * Whether the "secure" flag should be set on the cookie. This can be: 5067 * - true: Set secure flag 5068 * - false: Don't set secure flag 5069 * - "detect": Set the secure flag if $wgServer is set to an HTTPS URL 5070 */ 5071 $wgCookieSecure = 'detect'; 5072 5073 /** 5074 * By default, MediaWiki checks if the client supports cookies during the 5075 * login process, so that it can display an informative error message if 5076 * cookies are disabled. Set this to true if you want to disable this cookie 5077 * check. 5078 */ 5079 $wgDisableCookieCheck = false; 5080 5081 /** 5082 * Cookies generated by MediaWiki have names starting with this prefix. Set it 5083 * to a string to use a custom prefix. Setting it to false causes the database 5084 * name to be used as a prefix. 5085 */ 5086 $wgCookiePrefix = false; 5087 5088 /** 5089 * Set authentication cookies to HttpOnly to prevent access by JavaScript, 5090 * in browsers that support this feature. This can mitigates some classes of 5091 * XSS attack. 5092 */ 5093 $wgCookieHttpOnly = true; 5094 5095 /** 5096 * A list of cookies that vary the cache (for use by extensions) 5097 */ 5098 $wgCacheVaryCookies = array(); 5099 5100 /** 5101 * Override to customise the session name 5102 */ 5103 $wgSessionName = false; 5104 5105 /** @} */ # end of cookie settings } 5106 5107 /************************************************************************//** 5108 * @name LaTeX (mathematical formulas) 5109 * @{ 5110 */ 5111 5112 /** 5113 * To use inline TeX, you need to compile 'texvc' (in the 'math' subdirectory of 5114 * the MediaWiki package and have latex, dvips, gs (ghostscript), andconvert 5115 * (ImageMagick) installed and available in the PATH. 5116 * Please see math/README for more information. 5117 */ 5118 $wgUseTeX = false; 5119 5120 /** @} */ # end LaTeX } 5121 5122 /************************************************************************//** 5123 * @name Profiling, testing and debugging 5124 * 5125 * To enable profiling, edit StartProfiler.php 5126 * 5127 * @{ 5128 */ 5129 5130 /** 5131 * Filename for debug logging. See https://www.mediawiki.org/wiki/How_to_debug 5132 * The debug log file should be not be publicly accessible if it is used, as it 5133 * may contain private data. 5134 */ 5135 $wgDebugLogFile = ''; 5136 5137 /** 5138 * Prefix for debug log lines 5139 */ 5140 $wgDebugLogPrefix = ''; 5141 5142 /** 5143 * If true, instead of redirecting, show a page with a link to the redirect 5144 * destination. This allows for the inspection of PHP error messages, and easy 5145 * resubmission of form data. For developer use only. 5146 */ 5147 $wgDebugRedirects = false; 5148 5149 /** 5150 * If true, log debugging data from action=raw and load.php. 5151 * This is normally false to avoid overlapping debug entries due to gen=css 5152 * and gen=js requests. 5153 */ 5154 $wgDebugRawPage = false; 5155 5156 /** 5157 * Send debug data to an HTML comment in the output. 5158 * 5159 * This may occasionally be useful when supporting a non-technical end-user. 5160 * It's more secure than exposing the debug log file to the web, since the 5161 * output only contains private data for the current user. But it's not ideal 5162 * for development use since data is lost on fatal errors and redirects. 5163 */ 5164 $wgDebugComments = false; 5165 5166 /** 5167 * Extensive database transaction state debugging 5168 * 5169 * @since 1.20 5170 */ 5171 $wgDebugDBTransactions = false; 5172 5173 /** 5174 * Write SQL queries to the debug log. 5175 * 5176 * This setting is only used $wgLBFactoryConf['class'] is set to 5177 * 'LBFactorySimple' and $wgDBservers is an empty array; otherwise 5178 * the DBO_DEBUG flag must be set in the 'flags' option of the database 5179 * connection to achieve the same functionality. 5180 */ 5181 $wgDebugDumpSql = false; 5182 5183 /** 5184 * Trim logged SQL queries to this many bytes. Set 0/false/null to do no 5185 * trimming. 5186 * @since 1.24 5187 */ 5188 $wgDebugDumpSqlLength = 500; 5189 5190 /** 5191 * Map of string log group names to log destinations. 5192 * 5193 * If set, wfDebugLog() output for that group will go to that file instead 5194 * of the regular $wgDebugLogFile. Useful for enabling selective logging 5195 * in production. 5196 * 5197 * Log destinations may be one of the following: 5198 * - false to completely remove from the output, including from $wgDebugLogFile. 5199 * - string values specifying a filename or URI. 5200 * - associative array mapping 'destination' key to the desired filename or URI. 5201 * The associative array may also contain a 'sample' key with an integer value, 5202 * specifying a sampling factor. 5203 * 5204 * @par Example: 5205 * @code 5206 * $wgDebugLogGroups['redis'] = '/var/log/mediawiki/redis.log'; 5207 * @endcode 5208 * 5209 * @par Advanced example: 5210 * @code 5211 * $wgDebugLogGroups['memcached'] = ( 5212 * 'destination' => '/var/log/mediawiki/memcached.log', 5213 * 'sample' => 1000, // log 1 message out of every 1,000. 5214 * ); 5215 * @endcode 5216 */ 5217 $wgDebugLogGroups = array(); 5218 5219 /** 5220 * Display debug data at the bottom of the main content area. 5221 * 5222 * Useful for developers and technical users trying to working on a closed wiki. 5223 */ 5224 $wgShowDebug = false; 5225 5226 /** 5227 * Prefix debug messages with relative timestamp. Very-poor man's profiler. 5228 * Since 1.19 also includes memory usage. 5229 */ 5230 $wgDebugTimestamps = false; 5231 5232 /** 5233 * Print HTTP headers for every request in the debug information. 5234 */ 5235 $wgDebugPrintHttpHeaders = true; 5236 5237 /** 5238 * Show the contents of $wgHooks in Special:Version 5239 */ 5240 $wgSpecialVersionShowHooks = false; 5241 5242 /** 5243 * Whether to show "we're sorry, but there has been a database error" pages. 5244 * Displaying errors aids in debugging, but may display information useful 5245 * to an attacker. 5246 */ 5247 $wgShowSQLErrors = false; 5248 5249 /** 5250 * If set to true, uncaught exceptions will print a complete stack trace 5251 * to output. This should only be used for debugging, as it may reveal 5252 * private information in function parameters due to PHP's backtrace 5253 * formatting. 5254 */ 5255 $wgShowExceptionDetails = false; 5256 5257 /** 5258 * If true, show a backtrace for database errors 5259 * 5260 * @note This setting only applies when connection errors and query errors are 5261 * reported in the normal manner. $wgShowExceptionDetails applies in other cases, 5262 * including those in which an uncaught exception is thrown from within the 5263 * exception handler. 5264 */ 5265 $wgShowDBErrorBacktrace = false; 5266 5267 /** 5268 * If true, send the exception backtrace to the error log 5269 */ 5270 $wgLogExceptionBacktrace = true; 5271 5272 /** 5273 * Expose backend server host names through the API and various HTML comments 5274 */ 5275 $wgShowHostnames = false; 5276 5277 /** 5278 * Override server hostname detection with a hardcoded value. 5279 * Should be a string, default false. 5280 * @since 1.20 5281 */ 5282 $wgOverrideHostname = false; 5283 5284 /** 5285 * If set to true MediaWiki will throw notices for some possible error 5286 * conditions and for deprecated functions. 5287 */ 5288 $wgDevelopmentWarnings = false; 5289 5290 /** 5291 * Release limitation to wfDeprecated warnings, if set to a release number 5292 * development warnings will not be generated for deprecations added in releases 5293 * after the limit. 5294 */ 5295 $wgDeprecationReleaseLimit = false; 5296 5297 /** 5298 * Only record profiling info for pages that took longer than this 5299 */ 5300 $wgProfileLimit = 0.0; 5301 5302 /** 5303 * Don't put non-profiling info into log file 5304 * 5305 * @deprecated since 1.23, set the log file in 5306 * $wgDebugLogGroups['profileoutput'] instead. 5307 */ 5308 $wgProfileOnly = false; 5309 5310 /** 5311 * If true, print a raw call tree instead of per-function report 5312 */ 5313 $wgProfileCallTree = false; 5314 5315 /** 5316 * Should application server host be put into profiling table 5317 */ 5318 $wgProfilePerHost = false; 5319 5320 /** 5321 * Host for UDP profiler. 5322 * 5323 * The host should be running a daemon which can be obtained from MediaWiki 5324 * Git at: 5325 * http://git.wikimedia.org/tree/operations%2Fsoftware.git/master/udpprofile 5326 */ 5327 $wgUDPProfilerHost = '127.0.0.1'; 5328 5329 /** 5330 * Port for UDP profiler. 5331 * @see $wgUDPProfilerHost 5332 */ 5333 $wgUDPProfilerPort = '3811'; 5334 5335 /** 5336 * Format string for the UDP profiler. The UDP profiler invokes sprintf() with 5337 * (profile id, count, cpu, cpu_sq, real, real_sq, entry name, memory) as 5338 * arguments. You can use sprintf's argument numbering/swapping capability to 5339 * repeat, re-order or omit fields. 5340 * 5341 * @see $wgStatsFormatString 5342 * @since 1.22 5343 */ 5344 $wgUDPProfilerFormatString = "%s - %d %f %f %f %f %s\n"; 5345 5346 /** 5347 * Output debug message on every wfProfileIn/wfProfileOut 5348 */ 5349 $wgDebugFunctionEntry = false; 5350 5351 /** 5352 * Destination for wfIncrStats() data... 5353 * 'cache' to go into the system cache, if enabled (memcached) 5354 * 'udp' to be sent to the UDP profiler (see $wgUDPProfilerHost) 5355 * false to disable 5356 */ 5357 $wgStatsMethod = 'cache'; 5358 5359 /** 5360 * When $wgStatsMethod is 'udp', setting this to a string allows statistics to 5361 * be aggregated over more than one wiki. The string will be used in place of 5362 * the DB name in outgoing UDP packets. If this is set to false, the DB name 5363 * will be used. 5364 */ 5365 $wgAggregateStatsID = false; 5366 5367 /** 5368 * When $wgStatsMethod is 'udp', this variable specifies how stats should be 5369 * formatted. Its value should be a format string suitable for a sprintf() 5370 * invocation with (id, count, key) arguments, where 'id' is either 5371 * $wgAggregateStatsID or the DB name, 'count' is the value by which the metric 5372 * is being incremented, and 'key' is the metric name. 5373 * 5374 * @see $wgUDPProfilerFormatString 5375 * @see $wgAggregateStatsID 5376 * @since 1.22 5377 */ 5378 $wgStatsFormatString = "stats/%s - %s 1 1 1 1 %s\n"; 5379 5380 /** 5381 * Whereas to count the number of time an article is viewed. 5382 * Does not work if pages are cached (for example with squid). 5383 */ 5384 $wgDisableCounters = false; 5385 5386 /** 5387 * InfoAction retrieves a list of transclusion links (both to and from). 5388 * This number puts a limit on that query in the case of highly transcluded 5389 * templates. 5390 */ 5391 $wgPageInfoTransclusionLimit = 50; 5392 5393 /** 5394 * Set this to an integer to only do synchronous site_stats updates 5395 * one every *this many* updates. The other requests go into pending 5396 * delta values in $wgMemc. Make sure that $wgMemc is a global cache. 5397 * If set to -1, updates *only* go to $wgMemc (useful for daemons). 5398 */ 5399 $wgSiteStatsAsyncFactor = false; 5400 5401 /** 5402 * Parser test suite files to be run by parserTests.php when no specific 5403 * filename is passed to it. 5404 * 5405 * Extensions may add their own tests to this array, or site-local tests 5406 * may be added via LocalSettings.php 5407 * 5408 * Use full paths. 5409 */ 5410 $wgParserTestFiles = array( 5411 "$IP/tests/parser/parserTests.txt", 5412 "$IP/tests/parser/extraParserTests.txt" 5413 ); 5414 5415 /** 5416 * Allow running of javascript test suites via [[Special:JavaScriptTest]] (such as QUnit). 5417 */ 5418 $wgEnableJavaScriptTest = false; 5419 5420 /** 5421 * Configuration for javascript testing. 5422 */ 5423 $wgJavaScriptTestConfig = array( 5424 'qunit' => array( 5425 // Page where documentation can be found relevant to the QUnit test suite being ran. 5426 // Used in the intro paragraph on [[Special:JavaScriptTest/qunit]] for the 5427 // documentation link in the "javascripttest-qunit-intro" message. 5428 'documentation' => '//www.mediawiki.org/wiki/Manual:JavaScript_unit_testing', 5429 // If you are submitting the QUnit test suite to a TestSwarm instance, 5430 // point this to the "inject.js" script of that instance. This is was registers 5431 // the QUnit hooks to extract the test results and push them back up into the 5432 // TestSwarm database. 5433 // @example 'http://localhost/testswarm/js/inject.js' 5434 // @example '//integration.mediawiki.org/testswarm/js/inject.js' 5435 'testswarm-injectjs' => false, 5436 ), 5437 ); 5438 5439 /** 5440 * Overwrite the caching key prefix with custom value. 5441 * @since 1.19 5442 */ 5443 $wgCachePrefix = false; 5444 5445 /** 5446 * Display the new debugging toolbar. This also enables profiling on database 5447 * queries and other useful output. 5448 * Will disable file cache. 5449 * 5450 * @since 1.19 5451 */ 5452 $wgDebugToolbar = false; 5453 5454 /** @} */ # end of profiling, testing and debugging } 5455 5456 /************************************************************************//** 5457 * @name Search 5458 * @{ 5459 */ 5460 5461 /** 5462 * Set this to true to disable the full text search feature. 5463 */ 5464 $wgDisableTextSearch = false; 5465 5466 /** 5467 * Set to true to have nicer highlighted text in search results, 5468 * by default off due to execution overhead 5469 */ 5470 $wgAdvancedSearchHighlighting = false; 5471 5472 /** 5473 * Regexp to match word boundaries, defaults for non-CJK languages 5474 * should be empty for CJK since the words are not separate 5475 */ 5476 $wgSearchHighlightBoundaries = '[\p{Z}\p{P}\p{C}]'; 5477 5478 /** 5479 * Template for OpenSearch suggestions, defaults to API action=opensearch 5480 * 5481 * Sites with heavy load would typically have these point to a custom 5482 * PHP wrapper to avoid firing up mediawiki for every keystroke 5483 * 5484 * Placeholders: {searchTerms} 5485 */ 5486 $wgOpenSearchTemplate = false; 5487 5488 /** 5489 * Enable OpenSearch suggestions requested by MediaWiki. Set this to 5490 * false if you've disabled scripts that use api?action=opensearch and 5491 * want reduce load caused by cached scripts still pulling suggestions. 5492 * It will let the API fallback by responding with an empty array. 5493 */ 5494 $wgEnableOpenSearchSuggest = true; 5495 5496 /** 5497 * Integer defining default number of entries to show on 5498 * OpenSearch call. 5499 */ 5500 $wgOpenSearchDefaultLimit = 10; 5501 5502 /** 5503 * Expiry time for search suggestion responses 5504 */ 5505 $wgSearchSuggestCacheExpiry = 1200; 5506 5507 /** 5508 * If you've disabled search semi-permanently, this also disables updates to the 5509 * table. If you ever re-enable, be sure to rebuild the search table. 5510 */ 5511 $wgDisableSearchUpdate = false; 5512 5513 /** 5514 * List of namespaces which are searched by default. 5515 * 5516 * @par Example: 5517 * @code 5518 * $wgNamespacesToBeSearchedDefault[NS_MAIN] = true; 5519 * $wgNamespacesToBeSearchedDefault[NS_PROJECT] = true; 5520 * @endcode 5521 */ 5522 $wgNamespacesToBeSearchedDefault = array( 5523 NS_MAIN => true, 5524 ); 5525 5526 /** 5527 * Disable the internal MySQL-based search, to allow it to be 5528 * implemented by an extension instead. 5529 */ 5530 $wgDisableInternalSearch = false; 5531 5532 /** 5533 * Set this to a URL to forward search requests to some external location. 5534 * If the URL includes '$1', this will be replaced with the URL-encoded 5535 * search term. 5536 * 5537 * @par Example: 5538 * To forward to Google you'd have something like: 5539 * @code 5540 * $wgSearchForwardUrl = 5541 * 'http://www.google.com/search?q=$1' . 5542 * '&domains=http://example.com' . 5543 * '&sitesearch=http://example.com' . 5544 * '&ie=utf-8&oe=utf-8'; 5545 * @endcode 5546 */ 5547 $wgSearchForwardUrl = null; 5548 5549 /** 5550 * Search form behavior. 5551 * - true = use Go & Search buttons 5552 * - false = use Go button & Advanced search link 5553 */ 5554 $wgUseTwoButtonsSearchForm = true; 5555 5556 /** 5557 * Array of namespaces to generate a Google sitemap for when the 5558 * maintenance/generateSitemap.php script is run, or false if one is to be 5559 * generated for all namespaces. 5560 */ 5561 $wgSitemapNamespaces = false; 5562 5563 /** 5564 * Custom namespace priorities for sitemaps. Setting this will allow you to 5565 * set custom priorities to namespaces when sitemaps are generated using the 5566 * maintenance/generateSitemap.php script. 5567 * 5568 * This should be a map of namespace IDs to priority 5569 * @par Example: 5570 * @code 5571 * $wgSitemapNamespacesPriorities = array( 5572 * NS_USER => '0.9', 5573 * NS_HELP => '0.0', 5574 * ); 5575 * @endcode 5576 */ 5577 $wgSitemapNamespacesPriorities = false; 5578 5579 /** 5580 * If true, searches for IP addresses will be redirected to that IP's 5581 * contributions page. E.g. searching for "1.2.3.4" will redirect to 5582 * [[Special:Contributions/1.2.3.4]] 5583 */ 5584 $wgEnableSearchContributorsByIP = true; 5585 5586 /** @} */ # end of search settings 5587 5588 /************************************************************************//** 5589 * @name Edit user interface 5590 * @{ 5591 */ 5592 5593 /** 5594 * Path to the GNU diff3 utility. If the file doesn't exist, edit conflicts will 5595 * fall back to the old behavior (no merging). 5596 */ 5597 $wgDiff3 = '/usr/bin/diff3'; 5598 5599 /** 5600 * Path to the GNU diff utility. 5601 */ 5602 $wgDiff = '/usr/bin/diff'; 5603 5604 /** 5605 * Which namespaces have special treatment where they should be preview-on-open 5606 * Internally only Category: pages apply, but using this extensions (e.g. Semantic MediaWiki) 5607 * can specify namespaces of pages they have special treatment for 5608 */ 5609 $wgPreviewOnOpenNamespaces = array( 5610 NS_CATEGORY => true 5611 ); 5612 5613 /** 5614 * Enable the UniversalEditButton for browsers that support it 5615 * (currently only Firefox with an extension) 5616 * See http://universaleditbutton.org for more background information 5617 */ 5618 $wgUniversalEditButton = true; 5619 5620 /** 5621 * If user doesn't specify any edit summary when making a an edit, MediaWiki 5622 * will try to automatically create one. This feature can be disabled by set- 5623 * ting this variable false. 5624 */ 5625 $wgUseAutomaticEditSummaries = true; 5626 5627 /** @} */ # end edit UI } 5628 5629 /************************************************************************//** 5630 * @name Maintenance 5631 * See also $wgSiteNotice 5632 * @{ 5633 */ 5634 5635 /** 5636 * @cond file_level_code 5637 * Set $wgCommandLineMode if it's not set already, to avoid notices 5638 */ 5639 if ( !isset( $wgCommandLineMode ) ) { 5640 $wgCommandLineMode = false; 5641 } 5642 /** @endcond */ 5643 5644 /** 5645 * For colorized maintenance script output, is your terminal background dark ? 5646 */ 5647 $wgCommandLineDarkBg = false; 5648 5649 /** 5650 * Set this to a string to put the wiki into read-only mode. The text will be 5651 * used as an explanation to users. 5652 * 5653 * This prevents most write operations via the web interface. Cache updates may 5654 * still be possible. To prevent database writes completely, use the read_only 5655 * option in MySQL. 5656 */ 5657 $wgReadOnly = null; 5658 5659 /** 5660 * If this lock file exists (size > 0), the wiki will be forced into read-only mode. 5661 * Its contents will be shown to users as part of the read-only warning 5662 * message. 5663 * 5664 * Will default to "{$wgUploadDirectory}/lock_yBgMBwiR" in Setup.php 5665 */ 5666 $wgReadOnlyFile = false; 5667 5668 /** 5669 * When you run the web-based upgrade utility, it will tell you what to set 5670 * this to in order to authorize the upgrade process. It will subsequently be 5671 * used as a password, to authorize further upgrades. 5672 * 5673 * For security, do not set this to a guessable string. Use the value supplied 5674 * by the install/upgrade process. To cause the upgrader to generate a new key, 5675 * delete the old key from LocalSettings.php. 5676 */ 5677 $wgUpgradeKey = false; 5678 5679 /** 5680 * Fully specified path to git binary 5681 */ 5682 $wgGitBin = '/usr/bin/git'; 5683 5684 /** 5685 * Map GIT repository URLs to viewer URLs to provide links in Special:Version 5686 * 5687 * Key is a pattern passed to preg_match() and preg_replace(), 5688 * without the delimiters (which are #) and must match the whole URL. 5689 * The value is the replacement for the key (it can contain $1, etc.) 5690 * %h will be replaced by the short SHA-1 (7 first chars) and %H by the 5691 * full SHA-1 of the HEAD revision. 5692 * %r will be replaced with a URL-encoded version of $1. 5693 * 5694 * @since 1.20 5695 */ 5696 $wgGitRepositoryViewers = array( 5697 'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' => 5698 'https://git.wikimedia.org/tree/%r/%H', 5699 'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' => 5700 'https://git.wikimedia.org/tree/%r/%H', 5701 ); 5702 5703 /** @} */ # End of maintenance } 5704 5705 /************************************************************************//** 5706 * @name Recent changes, new pages, watchlist and history 5707 * @{ 5708 */ 5709 5710 /** 5711 * Recentchanges items are periodically purged; entries older than this many 5712 * seconds will go. 5713 * Default: 13 weeks = about three months 5714 */ 5715 $wgRCMaxAge = 13 * 7 * 24 * 3600; 5716 5717 /** 5718 * Filter $wgRCLinkDays by $wgRCMaxAge to avoid showing links for numbers 5719 * higher than what will be stored. Note that this is disabled by default 5720 * because we sometimes do have RC data which is beyond the limit for some 5721 * reason, and some users may use the high numbers to display that data which 5722 * is still there. 5723 */ 5724 $wgRCFilterByAge = false; 5725 5726 /** 5727 * List of Limits options to list in the Special:Recentchanges and 5728 * Special:Recentchangeslinked pages. 5729 */ 5730 $wgRCLinkLimits = array( 50, 100, 250, 500 ); 5731 5732 /** 5733 * List of Days options to list in the Special:Recentchanges and 5734 * Special:Recentchangeslinked pages. 5735 */ 5736 $wgRCLinkDays = array( 1, 3, 7, 14, 30 ); 5737 5738 /** 5739 * Destinations to which notifications about recent changes 5740 * should be sent. 5741 * 5742 * As of MediaWiki 1.22, there are 2 supported 'engine' parameter option in core: 5743 * * 'UDPRCFeedEngine', which is used to send recent changes over UDP to the 5744 * specified server. 5745 * * 'RedisPubSubFeedEngine', which is used to send recent changes to Redis. 5746 * 5747 * The common options are: 5748 * * 'uri' -- the address to which the notices are to be sent. 5749 * * 'formatter' -- the class name (implementing RCFeedFormatter) which will 5750 * produce the text to send. This can also be an object of the class. 5751 * * 'omit_bots' -- whether the bot edits should be in the feed 5752 * * 'omit_anon' -- whether anonymous edits should be in the feed 5753 * * 'omit_user' -- whether edits by registered users should be in the feed 5754 * * 'omit_minor' -- whether minor edits should be in the feed 5755 * * 'omit_patrolled' -- whether patrolled edits should be in the feed 5756 * 5757 * The IRC-specific options are: 5758 * * 'add_interwiki_prefix' -- whether the titles should be prefixed with 5759 * the first entry in the $wgLocalInterwikis array (or the value of 5760 * $wgLocalInterwiki, if set) 5761 * 5762 * The JSON-specific options are: 5763 * * 'channel' -- if set, the 'channel' parameter is also set in JSON values. 5764 * 5765 * @example $wgRCFeeds['example'] = array( 5766 * 'formatter' => 'JSONRCFeedFormatter', 5767 * 'uri' => "udp://localhost:1336", 5768 * 'add_interwiki_prefix' => false, 5769 * 'omit_bots' => true, 5770 * ); 5771 * @example $wgRCFeeds['exampleirc'] = array( 5772 * 'formatter' => 'IRCColourfulRCFeedFormatter', 5773 * 'uri' => "udp://localhost:1338", 5774 * 'add_interwiki_prefix' => false, 5775 * 'omit_bots' => true, 5776 * ); 5777 * @since 1.22 5778 */ 5779 $wgRCFeeds = array(); 5780 5781 /** 5782 * Used by RecentChange::getEngine to find the correct engine to use for a given URI scheme. 5783 * Keys are scheme names, values are names of engine classes. 5784 */ 5785 $wgRCEngines = array( 5786 'redis' => 'RedisPubSubFeedEngine', 5787 'udp' => 'UDPRCFeedEngine', 5788 ); 5789 5790 /** 5791 * Use RC Patrolling to check for vandalism 5792 */ 5793 $wgUseRCPatrol = true; 5794 5795 /** 5796 * Use new page patrolling to check new pages on Special:Newpages 5797 */ 5798 $wgUseNPPatrol = true; 5799 5800 /** 5801 * Log autopatrol actions to the log table 5802 */ 5803 $wgLogAutopatrol = true; 5804 5805 /** 5806 * Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages 5807 */ 5808 $wgFeed = true; 5809 5810 /** 5811 * Set maximum number of results to return in syndication feeds (RSS, Atom) for 5812 * eg Recentchanges, Newpages. 5813 */ 5814 $wgFeedLimit = 50; 5815 5816 /** 5817 * _Minimum_ timeout for cached Recentchanges feed, in seconds. 5818 * A cached version will continue to be served out even if changes 5819 * are made, until this many seconds runs out since the last render. 5820 * 5821 * If set to 0, feed caching is disabled. Use this for debugging only; 5822 * feed generation can be pretty slow with diffs. 5823 */ 5824 $wgFeedCacheTimeout = 60; 5825 5826 /** 5827 * When generating Recentchanges RSS/Atom feed, diffs will not be generated for 5828 * pages larger than this size. 5829 */ 5830 $wgFeedDiffCutoff = 32768; 5831 5832 /** 5833 * Override the site's default RSS/ATOM feed for recentchanges that appears on 5834 * every page. Some sites might have a different feed they'd like to promote 5835 * instead of the RC feed (maybe like a "Recent New Articles" or "Breaking news" one). 5836 * Should be a format as key (either 'rss' or 'atom') and an URL to the feed 5837 * as value. 5838 * @par Example: 5839 * Configure the 'atom' feed to http://example.com/somefeed.xml 5840 * @code 5841 * $wgSiteFeed['atom'] = "http://example.com/somefeed.xml"; 5842 * @endcode 5843 */ 5844 $wgOverrideSiteFeed = array(); 5845 5846 /** 5847 * Available feeds objects. 5848 * Should probably only be defined when a page is syndicated ie when 5849 * $wgOut->isSyndicated() is true. 5850 */ 5851 $wgFeedClasses = array( 5852 'rss' => 'RSSFeed', 5853 'atom' => 'AtomFeed', 5854 ); 5855 5856 /** 5857 * Which feed types should we provide by default? This can include 'rss', 5858 * 'atom', neither, or both. 5859 */ 5860 $wgAdvertisedFeedTypes = array( 'atom' ); 5861 5862 /** 5863 * Show watching users in recent changes, watchlist and page history views 5864 */ 5865 $wgRCShowWatchingUsers = false; # UPO 5866 5867 /** 5868 * Show watching users in Page views 5869 */ 5870 $wgPageShowWatchingUsers = false; 5871 5872 /** 5873 * Show the amount of changed characters in recent changes 5874 */ 5875 $wgRCShowChangedSize = true; 5876 5877 /** 5878 * If the difference between the character counts of the text 5879 * before and after the edit is below that value, the value will be 5880 * highlighted on the RC page. 5881 */ 5882 $wgRCChangedSizeThreshold = 500; 5883 5884 /** 5885 * Show "Updated (since my last visit)" marker in RC view, watchlist and history 5886 * view for watched pages with new changes 5887 */ 5888 $wgShowUpdatedMarker = true; 5889 5890 /** 5891 * Disable links to talk pages of anonymous users (IPs) in listings on special 5892 * pages like page history, Special:Recentchanges, etc. 5893 */ 5894 $wgDisableAnonTalk = false; 5895 5896 /** 5897 * Enable filtering of categories in Recentchanges 5898 */ 5899 $wgAllowCategorizedRecentChanges = false; 5900 5901 /** 5902 * Allow filtering by change tag in recentchanges, history, etc 5903 * Has no effect if no tags are defined in valid_tag. 5904 */ 5905 $wgUseTagFilter = true; 5906 5907 /** 5908 * If set to an integer, pages that are watched by this many users or more 5909 * will not require the unwatchedpages permission to view the number of 5910 * watchers. 5911 * 5912 * @since 1.21 5913 */ 5914 $wgUnwatchedPageThreshold = false; 5915 5916 /** 5917 * Flags (letter symbols) shown in recent changes and watchlist to indicate 5918 * certain types of edits. 5919 * 5920 * To register a new one: 5921 * @code 5922 * $wgRecentChangesFlags['flag'] => array( 5923 * // message for the letter displayed next to rows on changes lists 5924 * 'letter' => 'letter-msg', 5925 * // message for the tooltip of the letter 5926 * 'title' => 'tooltip-msg', 5927 * // optional (defaults to 'tooltip-msg'), message to use in the legend box 5928 * 'legend' => 'legend-msg', 5929 * // optional (defaults to 'flag'), CSS class to put on changes lists rows 5930 * 'class' => 'css-class', 5931 * ); 5932 * @endcode 5933 * 5934 * @since 1.22 5935 */ 5936 $wgRecentChangesFlags = array( 5937 'newpage' => array( 5938 'letter' => 'newpageletter', 5939 'title' => 'recentchanges-label-newpage', 5940 'legend' => 'recentchanges-legend-newpage', 5941 ), 5942 'minor' => array( 5943 'letter' => 'minoreditletter', 5944 'title' => 'recentchanges-label-minor', 5945 'legend' => 'recentchanges-legend-minor', 5946 'class' => 'minoredit', 5947 ), 5948 'bot' => array( 5949 'letter' => 'boteditletter', 5950 'title' => 'recentchanges-label-bot', 5951 'legend' => 'recentchanges-legend-bot', 5952 'class' => 'botedit', 5953 ), 5954 'unpatrolled' => array( 5955 'letter' => 'unpatrolledletter', 5956 'title' => 'recentchanges-label-unpatrolled', 5957 'legend' => 'recentchanges-legend-unpatrolled', 5958 ), 5959 ); 5960 5961 /** @} */ # end RC/watchlist } 5962 5963 /************************************************************************//** 5964 * @name Copyright and credits settings 5965 * @{ 5966 */ 5967 5968 /** 5969 * Override for copyright metadata. 5970 * 5971 * This is the name of the page containing information about the wiki's copyright status, 5972 * which will be added as a link in the footer if it is specified. It overrides 5973 * $wgRightsUrl if both are specified. 5974 */ 5975 $wgRightsPage = null; 5976 5977 /** 5978 * Set this to specify an external URL containing details about the content license used on your 5979 * wiki. 5980 * If $wgRightsPage is set then this setting is ignored. 5981 */ 5982 $wgRightsUrl = null; 5983 5984 /** 5985 * If either $wgRightsUrl or $wgRightsPage is specified then this variable gives the text for the 5986 * link. 5987 * If using $wgRightsUrl then this value must be specified. If using $wgRightsPage then the name 5988 * of the page will also be used as the link if this variable is not set. 5989 */ 5990 $wgRightsText = null; 5991 5992 /** 5993 * Override for copyright metadata. 5994 */ 5995 $wgRightsIcon = null; 5996 5997 /** 5998 * Set this to some HTML to override the rights icon with an arbitrary logo 5999 * @deprecated since 1.18 Use $wgFooterIcons['copyright']['copyright'] 6000 */ 6001 $wgCopyrightIcon = null; 6002 6003 /** 6004 * Set this to true if you want detailed copyright information forms on Upload. 6005 */ 6006 $wgUseCopyrightUpload = false; 6007 6008 /** 6009 * Set this to the number of authors that you want to be credited below an 6010 * article text. Set it to zero to hide the attribution block, and a negative 6011 * number (like -1) to show all authors. Note that this will require 2-3 extra 6012 * database hits, which can have a not insignificant impact on performance for 6013 * large wikis. 6014 */ 6015 $wgMaxCredits = 0; 6016 6017 /** 6018 * If there are more than $wgMaxCredits authors, show $wgMaxCredits of them. 6019 * Otherwise, link to a separate credits page. 6020 */ 6021 $wgShowCreditsIfMax = true; 6022 6023 /** @} */ # end of copyright and credits settings } 6024 6025 /************************************************************************//** 6026 * @name Import / Export 6027 * @{ 6028 */ 6029 6030 /** 6031 * List of interwiki prefixes for wikis we'll accept as sources for 6032 * Special:Import (for sysops). Since complete page history can be imported, 6033 * these should be 'trusted'. 6034 * 6035 * This can either be a regular array, or an associative map specifying 6036 * subprojects on the interwiki map of the target wiki, or a mix of the two, 6037 * e.g. 6038 * @code 6039 * $wgImportSources = array( 6040 * 'wikipedia' => array( 'cs', 'en', 'fr', 'zh' ), 6041 * 'wikispecies', 6042 * 'wikia' => array( 'animanga', 'brickipedia', 'desserts' ), 6043 * ); 6044 * @endcode 6045 * 6046 * If a user has the 'import' permission but not the 'importupload' permission, 6047 * they will only be able to run imports through this transwiki interface. 6048 */ 6049 $wgImportSources = array(); 6050 6051 /** 6052 * Optional default target namespace for interwiki imports. 6053 * Can use this to create an incoming "transwiki"-style queue. 6054 * Set to numeric key, not the name. 6055 * 6056 * Users may override this in the Special:Import dialog. 6057 */ 6058 $wgImportTargetNamespace = null; 6059 6060 /** 6061 * If set to false, disables the full-history option on Special:Export. 6062 * This is currently poorly optimized for long edit histories, so is 6063 * disabled on Wikimedia's sites. 6064 */ 6065 $wgExportAllowHistory = true; 6066 6067 /** 6068 * If set nonzero, Special:Export requests for history of pages with 6069 * more revisions than this will be rejected. On some big sites things 6070 * could get bogged down by very very long pages. 6071 */ 6072 $wgExportMaxHistory = 0; 6073 6074 /** 6075 * Return distinct author list (when not returning full history) 6076 */ 6077 $wgExportAllowListContributors = false; 6078 6079 /** 6080 * If non-zero, Special:Export accepts a "pagelink-depth" parameter 6081 * up to this specified level, which will cause it to include all 6082 * pages linked to from the pages you specify. Since this number 6083 * can become *insanely large* and could easily break your wiki, 6084 * it's disabled by default for now. 6085 * 6086 * @warning There's a HARD CODED limit of 5 levels of recursion to prevent a 6087 * crazy-big export from being done by someone setting the depth number too 6088 * high. In other words, last resort safety net. 6089 */ 6090 $wgExportMaxLinkDepth = 0; 6091 6092 /** 6093 * Whether to allow the "export all pages in namespace" option 6094 */ 6095 $wgExportFromNamespaces = false; 6096 6097 /** 6098 * Whether to allow exporting the entire wiki into a single file 6099 */ 6100 $wgExportAllowAll = false; 6101 6102 /** @} */ # end of import/export } 6103 6104 /*************************************************************************//** 6105 * @name Extensions 6106 * @{ 6107 */ 6108 6109 /** 6110 * A list of callback functions which are called once MediaWiki is fully 6111 * initialised 6112 */ 6113 $wgExtensionFunctions = array(); 6114 6115 /** 6116 * Extension messages files. 6117 * 6118 * Associative array mapping extension name to the filename where messages can be 6119 * found. The file should contain variable assignments. Any of the variables 6120 * present in languages/messages/MessagesEn.php may be defined, but $messages 6121 * is the most common. 6122 * 6123 * Variables defined in extensions will override conflicting variables defined 6124 * in the core. 6125 * 6126 * Since MediaWiki 1.23, use of this variable to define messages is discouraged; instead, store 6127 * messages in JSON format and use $wgMessagesDirs. For setting other variables than 6128 * $messages, $wgExtensionMessagesFiles should still be used. Use a DIFFERENT key because 6129 * any entry having a key that also exists in $wgMessagesDirs will be ignored. 6130 * 6131 * Extensions using the JSON message format can preserve backward compatibility with 6132 * earlier versions of MediaWiki by using a compatibility shim, such as one generated 6133 * by the generateJsonI18n.php maintenance script, listing it under the SAME key 6134 * as for the $wgMessagesDirs entry. 6135 * 6136 * @par Example: 6137 * @code 6138 * $wgExtensionMessagesFiles['ConfirmEdit'] = __DIR__.'/ConfirmEdit.i18n.php'; 6139 * @endcode 6140 */ 6141 $wgExtensionMessagesFiles = array(); 6142 6143 /** 6144 * Extension messages directories. 6145 * 6146 * Associative array mapping extension name to the path of the directory where message files can 6147 * be found. The message files are expected to be JSON files named for their language code, e.g. 6148 * en.json, de.json, etc. Extensions with messages in multiple places may specify an array of 6149 * message directories. 6150 * 6151 * @par Simple example: 6152 * @code 6153 * $wgMessagesDirs['Example'] = __DIR__ . '/i18n'; 6154 * @endcode 6155 * 6156 * @par Complex example: 6157 * @code 6158 * $wgMessagesDirs['Example'] = array( 6159 * __DIR__ . '/lib/ve/i18n', 6160 * __DIR__ . '/lib/oojs-ui/i18n', 6161 * __DIR__ . '/i18n', 6162 * ) 6163 * @endcode 6164 * @since 1.23 6165 */ 6166 $wgMessagesDirs = array( 6167 'core' => "$IP/languages/i18n", 6168 'oojs-ui' => "$IP/resources/lib/oojs-ui/i18n", 6169 ); 6170 6171 /** 6172 * Array of files with list(s) of extension entry points to be used in 6173 * maintenance/mergeMessageFileList.php 6174 * @since 1.22 6175 */ 6176 $wgExtensionEntryPointListFiles = array(); 6177 6178 /** 6179 * Parser output hooks. 6180 * This is an associative array where the key is an extension-defined tag 6181 * (typically the extension name), and the value is a PHP callback. 6182 * These will be called as an OutputPageParserOutput hook, if the relevant 6183 * tag has been registered with the parser output object. 6184 * 6185 * Registration is done with $pout->addOutputHook( $tag, $data ). 6186 * 6187 * The callback has the form: 6188 * @code 6189 * function outputHook( $outputPage, $parserOutput, $data ) { ... } 6190 * @endcode 6191 */ 6192 $wgParserOutputHooks = array(); 6193 6194 /** 6195 * Whether to include the NewPP limit report as a HTML comment 6196 */ 6197 $wgEnableParserLimitReporting = true; 6198 6199 /** 6200 * List of valid skin names 6201 * 6202 * The key should be the name in all lower case, the value should be a properly 6203 * cased name for the skin. This value will be prefixed with "Skin" to create 6204 * the class name of the skin to load. Use Skin::getSkinNames() as an accessor 6205 * if you wish to have access to the full list. 6206 */ 6207 $wgValidSkinNames = array(); 6208 6209 /** 6210 * Special page list. This is an associative array mapping the (canonical) names of 6211 * special pages to either a class name to be instantiated, or a callback to use for 6212 * creating the special page object. In both cases, the result must be an instance of 6213 * SpecialPage. 6214 */ 6215 $wgSpecialPages = array(); 6216 6217 /** 6218 * Array mapping class names to filenames, for autoloading. 6219 */ 6220 $wgAutoloadClasses = array(); 6221 6222 /** 6223 * Switch controlling legacy case-insensitive classloading. 6224 * Do not disable if your wiki must support data created by PHP4, or by 6225 * MediaWiki 1.4 or earlier. 6226 */ 6227 $wgAutoloadAttemptLowercase = true; 6228 6229 /** 6230 * An array of information about installed extensions keyed by their type. 6231 * 6232 * All but 'name', 'path' and 'author' can be omitted. 6233 * 6234 * @code 6235 * $wgExtensionCredits[$type][] = array( 6236 * 'path' => __FILE__, 6237 * 'name' => 'Example extension', 6238 * 'namemsg' => 'exampleextension-name', 6239 * 'author' => array( 6240 * 'Foo Barstein', 6241 * ), 6242 * 'version' => '1.9.0', 6243 * 'url' => 'http://example.org/example-extension/', 6244 * 'descriptionmsg' => 'exampleextension-desc', 6245 * 'license-name' => 'GPL-2.0', 6246 * ); 6247 * @endcode 6248 * 6249 * The extensions are listed on Special:Version. This page also looks for a file 6250 * named COPYING or LICENSE (optional .txt extension) and provides a link to 6251 * view said file. When the 'license-name' key is specified, this file is 6252 * interpreted as wikitext. 6253 * 6254 * - $type: One of 'specialpage', 'parserhook', 'variable', 'media', 'antispam', 6255 * 'skin', 'api', or 'other', or any additional types as specified through the 6256 * ExtensionTypes hook as used in SpecialVersion::getExtensionTypes(). 6257 * 6258 * - name: Name of extension as an inline string instead of localizable message. 6259 * Do not omit this even if 'namemsg' is provided, as it is used to override 6260 * the path Special:Version uses to find extension's license info, and is 6261 * required for backwards-compatibility with MediaWiki 1.23 and older. 6262 * 6263 * - namemsg (since MW 1.24): A message key for a message containing the 6264 * extension's name, if the name is localizable. (For example, skin names 6265 * usually are.) 6266 * 6267 * - author: A string or an array of strings. Authors can be linked using 6268 * the regular wikitext link syntax. To have an internationalized version of 6269 * "and others" show, add an element "...". This element can also be linked, 6270 * for instance "[http://example ...]". 6271 * 6272 * - descriptionmsg: A message key or an an array with message key and parameters: 6273 * `'descriptionmsg' => 'exampleextension-desc',` 6274 * 6275 * - description: Description of extension as an inline string instead of 6276 * localizable message (omit in favour of 'descriptionmsg'). 6277 * 6278 * - license-name: Short name of the license (used as label for the link), such 6279 * as "GPL-2.0" or "MIT" (https://spdx.org/licenses/ for a list of identifiers). 6280 */ 6281 $wgExtensionCredits = array(); 6282 6283 /** 6284 * Authentication plugin. 6285 * @var $wgAuth AuthPlugin 6286 */ 6287 $wgAuth = null; 6288 6289 /** 6290 * Global list of hooks. 6291 * 6292 * The key is one of the events made available by MediaWiki, you can find 6293 * a description for most of them in docs/hooks.txt. The array is used 6294 * internally by Hook:run(). 6295 * 6296 * The value can be one of: 6297 * 6298 * - A function name: 6299 * @code 6300 * $wgHooks['event_name'][] = $function; 6301 * @endcode 6302 * - A function with some data: 6303 * @code 6304 * $wgHooks['event_name'][] = array( $function, $data ); 6305 * @endcode 6306 * - A an object method: 6307 * @code 6308 * $wgHooks['event_name'][] = array( $object, 'method' ); 6309 * @endcode 6310 * - A closure: 6311 * @code 6312 * $wgHooks['event_name'][] = function ( $hookParam ) { 6313 * // Handler code goes here. 6314 * }; 6315 * @endcode 6316 * 6317 * @warning You should always append to an event array or you will end up 6318 * deleting a previous registered hook. 6319 * 6320 * @warning Hook handlers should be registered at file scope. Registering 6321 * handlers after file scope can lead to unexpected results due to caching. 6322 */ 6323 $wgHooks = array(); 6324 6325 /** 6326 * Maps jobs to their handling classes; extensions 6327 * can add to this to provide custom jobs 6328 */ 6329 $wgJobClasses = array( 6330 'refreshLinks' => 'RefreshLinksJob', 6331 'refreshLinks2' => 'RefreshLinksJob2', // b/c 6332 'htmlCacheUpdate' => 'HTMLCacheUpdateJob', 6333 'sendMail' => 'EmaillingJob', 6334 'enotifNotify' => 'EnotifNotifyJob', 6335 'fixDoubleRedirect' => 'DoubleRedirectJob', 6336 'uploadFromUrl' => 'UploadFromUrlJob', 6337 'AssembleUploadChunks' => 'AssembleUploadChunksJob', 6338 'PublishStashedFile' => 'PublishStashedFileJob', 6339 'null' => 'NullJob' 6340 ); 6341 6342 /** 6343 * Jobs that must be explicitly requested, i.e. aren't run by job runners unless 6344 * special flags are set. The values here are keys of $wgJobClasses. 6345 * 6346 * These can be: 6347 * - Very long-running jobs. 6348 * - Jobs that you would never want to run as part of a page rendering request. 6349 * - Jobs that you want to run on specialized machines ( like transcoding, or a particular 6350 * machine on your cluster has 'outside' web access you could restrict uploadFromUrl ) 6351 * These settings should be global to all wikis. 6352 */ 6353 $wgJobTypesExcludedFromDefaultQueue = array( 'AssembleUploadChunks', 'PublishStashedFile' ); 6354 6355 /** 6356 * Map of job types to how many job "work items" should be run per second 6357 * on each job runner process. The meaning of "work items" varies per job, 6358 * but typically would be something like "pages to update". A single job 6359 * may have a variable number of work items, as is the case with batch jobs. 6360 * This is used by runJobs.php and not jobs run via $wgJobRunRate. 6361 * These settings should be global to all wikis. 6362 * @var float[] 6363 */ 6364 $wgJobBackoffThrottling = array(); 6365 6366 /** 6367 * Map of job types to configuration arrays. 6368 * This determines which queue class and storage system is used for each job type. 6369 * Job types that do not have explicit configuration will use the 'default' config. 6370 * These settings should be global to all wikis. 6371 */ 6372 $wgJobTypeConf = array( 6373 'default' => array( 'class' => 'JobQueueDB', 'order' => 'random' ), 6374 ); 6375 6376 /** 6377 * Which aggregator to use for tracking which queues have jobs. 6378 * These settings should be global to all wikis. 6379 */ 6380 $wgJobQueueAggregator = array( 6381 'class' => 'JobQueueAggregatorMemc' 6382 ); 6383 6384 /** 6385 * Additional functions to be performed with updateSpecialPages. 6386 * Expensive Querypages are already updated. 6387 */ 6388 $wgSpecialPageCacheUpdates = array( 6389 'Statistics' => array( 'SiteStatsUpdate', 'cacheUpdate' ), 6390 'Activeusers' => array( 'SpecialActiveUsers', 'cacheUpdate' ), 6391 ); 6392 6393 /** 6394 * Hooks that are used for outputting exceptions. Format is: 6395 * $wgExceptionHooks[] = $funcname 6396 * or: 6397 * $wgExceptionHooks[] = array( $class, $funcname ) 6398 * Hooks should return strings or false 6399 */ 6400 $wgExceptionHooks = array(); 6401 6402 /** 6403 * Page property link table invalidation lists. When a page property 6404 * changes, this may require other link tables to be updated (eg 6405 * adding __HIDDENCAT__ means the hiddencat tracking category will 6406 * have been added, so the categorylinks table needs to be rebuilt). 6407 * This array can be added to by extensions. 6408 */ 6409 $wgPagePropLinkInvalidations = array( 6410 'hiddencat' => 'categorylinks', 6411 ); 6412 6413 /** @} */ # End extensions } 6414 6415 /*************************************************************************//** 6416 * @name Categories 6417 * @{ 6418 */ 6419 6420 /** 6421 * Use experimental, DMOZ-like category browser 6422 */ 6423 $wgUseCategoryBrowser = false; 6424 6425 /** 6426 * On category pages, show thumbnail gallery for images belonging to that 6427 * category instead of listing them as articles. 6428 */ 6429 $wgCategoryMagicGallery = true; 6430 6431 /** 6432 * Paging limit for categories 6433 */ 6434 $wgCategoryPagingLimit = 200; 6435 6436 /** 6437 * Specify how category names should be sorted, when listed on a category page. 6438 * A sorting scheme is also known as a collation. 6439 * 6440 * Available values are: 6441 * 6442 * - uppercase: Converts the category name to upper case, and sorts by that. 6443 * 6444 * - identity: Does no conversion. Sorts by binary value of the string. 6445 * 6446 * - uca-default: Provides access to the Unicode Collation Algorithm with 6447 * the default element table. This is a compromise collation which sorts 6448 * all languages in a mediocre way. However, it is better than "uppercase". 6449 * 6450 * To use the uca-default collation, you must have PHP's intl extension 6451 * installed. See http://php.net/manual/en/intl.setup.php . The details of the 6452 * resulting collation will depend on the version of ICU installed on the 6453 * server. 6454 * 6455 * After you change this, you must run maintenance/updateCollation.php to fix 6456 * the sort keys in the database. 6457 * 6458 * Extensions can define there own collations by subclassing Collation 6459 * and using the Collation::factory hook. 6460 */ 6461 $wgCategoryCollation = 'uppercase'; 6462 6463 /** @} */ # End categories } 6464 6465 /*************************************************************************//** 6466 * @name Logging 6467 * @{ 6468 */ 6469 6470 /** 6471 * The logging system has two levels: an event type, which describes the 6472 * general category and can be viewed as a named subset of all logs; and 6473 * an action, which is a specific kind of event that can exist in that 6474 * log type. 6475 */ 6476 $wgLogTypes = array( 6477 '', 6478 'block', 6479 'protect', 6480 'rights', 6481 'delete', 6482 'upload', 6483 'move', 6484 'import', 6485 'patrol', 6486 'merge', 6487 'suppress', 6488 ); 6489 6490 /** 6491 * This restricts log access to those who have a certain right 6492 * Users without this will not see it in the option menu and can not view it 6493 * Restricted logs are not added to recent changes 6494 * Logs should remain non-transcludable 6495 * Format: logtype => permissiontype 6496 */ 6497 $wgLogRestrictions = array( 6498 'suppress' => 'suppressionlog' 6499 ); 6500 6501 /** 6502 * Show/hide links on Special:Log will be shown for these log types. 6503 * 6504 * This is associative array of log type => boolean "hide by default" 6505 * 6506 * See $wgLogTypes for a list of available log types. 6507 * 6508 * @par Example: 6509 * @code 6510 * $wgFilterLogTypes = array( 6511 * 'move' => true, 6512 * 'import' => false, 6513 * ); 6514 * @endcode 6515 * 6516 * Will display show/hide links for the move and import logs. Move logs will be 6517 * hidden by default unless the link is clicked. Import logs will be shown by 6518 * default, and hidden when the link is clicked. 6519 * 6520 * A message of the form log-show-hide-[type] should be added, and will be used 6521 * for the link text. 6522 */ 6523 $wgFilterLogTypes = array( 6524 'patrol' => true 6525 ); 6526 6527 /** 6528 * Lists the message key string for each log type. The localized messages 6529 * will be listed in the user interface. 6530 * 6531 * Extensions with custom log types may add to this array. 6532 * 6533 * @since 1.19, if you follow the naming convention log-name-TYPE, 6534 * where TYPE is your log type, yoy don't need to use this array. 6535 */ 6536 $wgLogNames = array( 6537 '' => 'all-logs-page', 6538 'block' => 'blocklogpage', 6539 'protect' => 'protectlogpage', 6540 'rights' => 'rightslog', 6541 'delete' => 'dellogpage', 6542 'upload' => 'uploadlogpage', 6543 'move' => 'movelogpage', 6544 'import' => 'importlogpage', 6545 'patrol' => 'patrol-log-page', 6546 'merge' => 'mergelog', 6547 'suppress' => 'suppressionlog', 6548 ); 6549 6550 /** 6551 * Lists the message key string for descriptive text to be shown at the 6552 * top of each log type. 6553 * 6554 * Extensions with custom log types may add to this array. 6555 * 6556 * @since 1.19, if you follow the naming convention log-description-TYPE, 6557 * where TYPE is your log type, yoy don't need to use this array. 6558 */ 6559 $wgLogHeaders = array( 6560 '' => 'alllogstext', 6561 'block' => 'blocklogtext', 6562 'protect' => 'protectlogtext', 6563 'rights' => 'rightslogtext', 6564 'delete' => 'dellogpagetext', 6565 'upload' => 'uploadlogpagetext', 6566 'move' => 'movelogpagetext', 6567 'import' => 'importlogpagetext', 6568 'patrol' => 'patrol-log-header', 6569 'merge' => 'mergelogpagetext', 6570 'suppress' => 'suppressionlogtext', 6571 ); 6572 6573 /** 6574 * Lists the message key string for formatting individual events of each 6575 * type and action when listed in the logs. 6576 * 6577 * Extensions with custom log types may add to this array. 6578 */ 6579 $wgLogActions = array( 6580 'block/block' => 'blocklogentry', 6581 'block/unblock' => 'unblocklogentry', 6582 'block/reblock' => 'reblock-logentry', 6583 'protect/protect' => 'protectedarticle', 6584 'protect/modify' => 'modifiedarticleprotection', 6585 'protect/unprotect' => 'unprotectedarticle', 6586 'protect/move_prot' => 'movedarticleprotection', 6587 'import/upload' => 'import-logentry-upload', 6588 'import/interwiki' => 'import-logentry-interwiki', 6589 'merge/merge' => 'pagemerge-logentry', 6590 'suppress/block' => 'blocklogentry', 6591 'suppress/reblock' => 'reblock-logentry', 6592 ); 6593 6594 /** 6595 * The same as above, but here values are names of functions, 6596 * not messages. 6597 * @see LogPage::actionText 6598 * @see LogFormatter 6599 */ 6600 $wgLogActionsHandlers = array( 6601 'move/move' => 'MoveLogFormatter', 6602 'move/move_redir' => 'MoveLogFormatter', 6603 'delete/delete' => 'DeleteLogFormatter', 6604 'delete/restore' => 'DeleteLogFormatter', 6605 'delete/revision' => 'DeleteLogFormatter', 6606 'delete/event' => 'DeleteLogFormatter', 6607 'suppress/revision' => 'DeleteLogFormatter', 6608 'suppress/event' => 'DeleteLogFormatter', 6609 'suppress/delete' => 'DeleteLogFormatter', 6610 'patrol/patrol' => 'PatrolLogFormatter', 6611 'rights/rights' => 'RightsLogFormatter', 6612 'rights/autopromote' => 'RightsLogFormatter', 6613 'upload/upload' => 'LogFormatter', 6614 'upload/overwrite' => 'LogFormatter', 6615 'upload/revert' => 'LogFormatter', 6616 ); 6617 6618 /** 6619 * Maintain a log of newusers at Log/newusers? 6620 */ 6621 $wgNewUserLog = true; 6622 6623 /** @} */ # end logging } 6624 6625 /*************************************************************************//** 6626 * @name Special pages (general and miscellaneous) 6627 * @{ 6628 */ 6629 6630 /** 6631 * Allow special page inclusions such as {{Special:Allpages}} 6632 */ 6633 $wgAllowSpecialInclusion = true; 6634 6635 /** 6636 * Set this to an array of special page names to prevent 6637 * maintenance/updateSpecialPages.php from updating those pages. 6638 */ 6639 $wgDisableQueryPageUpdate = false; 6640 6641 /** 6642 * List of special pages, followed by what subtitle they should go under 6643 * at Special:SpecialPages 6644 * 6645 * @deprecated since 1.21 Override SpecialPage::getGroupName instead 6646 */ 6647 $wgSpecialPageGroups = array(); 6648 6649 /** 6650 * On Special:Unusedimages, consider images "used", if they are put 6651 * into a category. Default (false) is not to count those as used. 6652 */ 6653 $wgCountCategorizedImagesAsUsed = false; 6654 6655 /** 6656 * Maximum number of links to a redirect page listed on 6657 * Special:Whatlinkshere/RedirectDestination 6658 */ 6659 $wgMaxRedirectLinksRetrieved = 500; 6660 6661 /** @} */ # end special pages } 6662 6663 /*************************************************************************//** 6664 * @name Actions 6665 * @{ 6666 */ 6667 6668 /** 6669 * Array of allowed values for the "title=foo&action=<action>" parameter. Syntax is: 6670 * 'foo' => 'ClassName' Load the specified class which subclasses Action 6671 * 'foo' => true Load the class FooAction which subclasses Action 6672 * If something is specified in the getActionOverrides() 6673 * of the relevant Page object it will be used 6674 * instead of the default class. 6675 * 'foo' => false The action is disabled; show an error message 6676 * Unsetting core actions will probably cause things to complain loudly. 6677 */ 6678 $wgActions = array( 6679 'credits' => true, 6680 'delete' => true, 6681 'edit' => true, 6682 'history' => true, 6683 'info' => true, 6684 'markpatrolled' => true, 6685 'protect' => true, 6686 'purge' => true, 6687 'raw' => true, 6688 'render' => true, 6689 'revert' => true, 6690 'revisiondelete' => true, 6691 'rollback' => true, 6692 'submit' => true, 6693 'unprotect' => true, 6694 'unwatch' => true, 6695 'view' => true, 6696 'watch' => true, 6697 ); 6698 6699 /** @} */ # end actions } 6700 6701 /*************************************************************************//** 6702 * @name Robot (search engine crawler) policy 6703 * See also $wgNoFollowLinks. 6704 * @{ 6705 */ 6706 6707 /** 6708 * Default robot policy. The default policy is to encourage indexing and fol- 6709 * lowing of links. It may be overridden on a per-namespace and/or per-page 6710 * basis. 6711 */ 6712 $wgDefaultRobotPolicy = 'index,follow'; 6713 6714 /** 6715 * Robot policies per namespaces. The default policy is given above, the array 6716 * is made of namespace constants as defined in includes/Defines.php. You can- 6717 * not specify a different default policy for NS_SPECIAL: it is always noindex, 6718 * nofollow. This is because a number of special pages (e.g., ListPages) have 6719 * many permutations of options that display the same data under redundant 6720 * URLs, so search engine spiders risk getting lost in a maze of twisty special 6721 * pages, all alike, and never reaching your actual content. 6722 * 6723 * @par Example: 6724 * @code 6725 * $wgNamespaceRobotPolicies = array( NS_TALK => 'noindex' ); 6726 * @endcode 6727 */ 6728 $wgNamespaceRobotPolicies = array(); 6729 6730 /** 6731 * Robot policies per article. These override the per-namespace robot policies. 6732 * Must be in the form of an array where the key part is a properly canonicalised 6733 * text form title and the value is a robot policy. 6734 * 6735 * @par Example: 6736 * @code 6737 * $wgArticleRobotPolicies = array( 6738 * 'Main Page' => 'noindex,follow', 6739 * 'User:Bob' => 'index,follow', 6740 * ); 6741 * @endcode 6742 * 6743 * @par Example that DOES NOT WORK because the names are not canonical text 6744 * forms: 6745 * @code 6746 * $wgArticleRobotPolicies = array( 6747 * # Underscore, not space! 6748 * 'Main_Page' => 'noindex,follow', 6749 * # "Project", not the actual project name! 6750 * 'Project:X' => 'index,follow', 6751 * # Needs to be "Abc", not "abc" (unless $wgCapitalLinks is false for that namespace)! 6752 * 'abc' => 'noindex,nofollow' 6753 * ); 6754 * @endcode 6755 */ 6756 $wgArticleRobotPolicies = array(); 6757 6758 /** 6759 * An array of namespace keys in which the __INDEX__/__NOINDEX__ magic words 6760 * will not function, so users can't decide whether pages in that namespace are 6761 * indexed by search engines. If set to null, default to $wgContentNamespaces. 6762 * 6763 * @par Example: 6764 * @code 6765 * $wgExemptFromUserRobotsControl = array( NS_MAIN, NS_TALK, NS_PROJECT ); 6766 * @endcode 6767 */ 6768 $wgExemptFromUserRobotsControl = null; 6769 6770 /** @} */ # End robot policy } 6771 6772 /************************************************************************//** 6773 * @name AJAX and API 6774 * Note: The AJAX entry point which this section refers to is gradually being 6775 * replaced by the API entry point, api.php. They are essentially equivalent. 6776 * Both of them are used for dynamic client-side features, via XHR. 6777 * @{ 6778 */ 6779 6780 /** 6781 * Enable the MediaWiki API for convenient access to 6782 * machine-readable data via api.php 6783 * 6784 * See https://www.mediawiki.org/wiki/API 6785 */ 6786 $wgEnableAPI = true; 6787 6788 /** 6789 * Allow the API to be used to perform write operations 6790 * (page edits, rollback, etc.) when an authorised user 6791 * accesses it 6792 */ 6793 $wgEnableWriteAPI = true; 6794 6795 /** 6796 * 6797 * WARNING: SECURITY THREAT - debug use only 6798 * 6799 * Disables many security checks in the API for debugging purposes. 6800 * This flag should never be used on the production servers, as it introduces 6801 * a number of potential security holes. Even when enabled, the validation 6802 * will still be performed, but instead of failing, API will return a warning. 6803 * Also, there will always be a warning notifying that this flag is set. 6804 * At this point, the flag allows GET requests to go through for modules 6805 * requiring POST. 6806 * 6807 * @since 1.21 6808 */ 6809 $wgDebugAPI = false; 6810 6811 /** 6812 * API module extensions. 6813 * 6814 * Associative array mapping module name to modules specs; 6815 * Each module spec is an associative array containing at least 6816 * the 'class' key for the module's class, and optionally a 6817 * 'factory' key for the factory function to use for the module. 6818 * 6819 * That factory function will be called with two parameters, 6820 * the parent module (an instance of ApiBase, usually ApiMain) 6821 * and the name the module was registered under. The return 6822 * value must be an instance of the class given in the 'class' 6823 * field. 6824 * 6825 * For backward compatibility, the module spec may also be a 6826 * simple string containing the module's class name. In that 6827 * case, the class' constructor will be called with the parent 6828 * module and module name as parameters, as described above. 6829 * 6830 * Examples for registering API modules: 6831 * 6832 * @code 6833 * $wgAPIModules['foo'] = 'ApiFoo'; 6834 * $wgAPIModules['bar'] = array( 6835 * 'class' => 'ApiBar', 6836 * 'factory' => function( $main, $name ) { ... } 6837 * ); 6838 * $wgAPIModules['xyzzy'] = array( 6839 * 'class' => 'ApiXyzzy', 6840 * 'factory' => array( 'XyzzyFactory', 'newApiModule' ) 6841 * ); 6842 * @endcode 6843 * 6844 * Extension modules may override the core modules. 6845 * See ApiMain::$Modules for a list of the core modules. 6846 */ 6847 $wgAPIModules = array(); 6848 6849 /** 6850 * API format module extensions. 6851 * Associative array mapping format module name to module specs (see $wgAPIModules). 6852 * Extension modules may override the core modules. 6853 * 6854 * See ApiMain::$Formats for a list of the core format modules. 6855 */ 6856 $wgAPIFormatModules = array(); 6857 6858 /** 6859 * API Query meta module extensions. 6860 * Associative array mapping meta module name to module specs (see $wgAPIModules). 6861 * Extension modules may override the core modules. 6862 * 6863 * See ApiQuery::$QueryMetaModules for a list of the core meta modules. 6864 */ 6865 $wgAPIMetaModules = array(); 6866 6867 /** 6868 * API Query prop module extensions. 6869 * Associative array mapping prop module name to module specs (see $wgAPIModules). 6870 * Extension modules may override the core modules. 6871 * 6872 * See ApiQuery::$QueryPropModules for a list of the core prop modules. 6873 */ 6874 $wgAPIPropModules = array(); 6875 6876 /** 6877 * API Query list module extensions. 6878 * Associative array mapping list module name to module specs (see $wgAPIModules). 6879 * Extension modules may override the core modules. 6880 * 6881 * See ApiQuery::$QueryListModules for a list of the core list modules. 6882 */ 6883 $wgAPIListModules = array(); 6884 6885 /** 6886 * This variable is ignored. To add your module to the API, please add it to $wgAPI*Modules 6887 * @deprecated since 1.21 6888 */ 6889 $wgAPIGeneratorModules = array(); 6890 6891 /** 6892 * Maximum amount of rows to scan in a DB query in the API 6893 * The default value is generally fine 6894 */ 6895 $wgAPIMaxDBRows = 5000; 6896 6897 /** 6898 * The maximum size (in bytes) of an API result. 6899 * @warning Do not set this lower than $wgMaxArticleSize*1024 6900 */ 6901 $wgAPIMaxResultSize = 8388608; 6902 6903 /** 6904 * The maximum number of uncached diffs that can be retrieved in one API 6905 * request. Set this to 0 to disable API diffs altogether 6906 */ 6907 $wgAPIMaxUncachedDiffs = 1; 6908 6909 /** 6910 * Log file or URL (TCP or UDP) to log API requests to, or false to disable 6911 * API request logging 6912 */ 6913 $wgAPIRequestLog = false; 6914 6915 /** 6916 * Set the timeout for the API help text cache. If set to 0, caching disabled 6917 */ 6918 $wgAPICacheHelpTimeout = 60 * 60; 6919 6920 /** 6921 * The ApiQueryQueryPages module should skip pages that are redundant to true 6922 * API queries. 6923 */ 6924 $wgAPIUselessQueryPages = array( 6925 'MIMEsearch', // aiprop=mime 6926 'LinkSearch', // list=exturlusage 6927 'FileDuplicateSearch', // prop=duplicatefiles 6928 ); 6929 6930 /** 6931 * Enable AJAX framework 6932 */ 6933 $wgUseAjax = true; 6934 6935 /** 6936 * List of Ajax-callable functions. 6937 * Extensions acting as Ajax callbacks must register here 6938 */ 6939 $wgAjaxExportList = array(); 6940 6941 /** 6942 * Enable watching/unwatching pages using AJAX. 6943 * Requires $wgUseAjax to be true too. 6944 */ 6945 $wgAjaxWatch = true; 6946 6947 /** 6948 * Enable AJAX check for file overwrite, pre-upload 6949 */ 6950 $wgAjaxUploadDestCheck = true; 6951 6952 /** 6953 * Enable previewing licences via AJAX. Also requires $wgEnableAPI to be true. 6954 */ 6955 $wgAjaxLicensePreview = true; 6956 6957 /** 6958 * Settings for incoming cross-site AJAX requests: 6959 * Newer browsers support cross-site AJAX when the target resource allows requests 6960 * from the origin domain by the Access-Control-Allow-Origin header. 6961 * This is currently only used by the API (requests to api.php) 6962 * $wgCrossSiteAJAXdomains can be set using a wildcard syntax: 6963 * 6964 * - '*' matches any number of characters 6965 * - '?' matches any 1 character 6966 * 6967 * @par Example: 6968 * @code 6969 * $wgCrossSiteAJAXdomains = array( 6970 * 'www.mediawiki.org', 6971 * '*.wikipedia.org', 6972 * '*.wikimedia.org', 6973 * '*.wiktionary.org', 6974 * ); 6975 * @endcode 6976 */ 6977 $wgCrossSiteAJAXdomains = array(); 6978 6979 /** 6980 * Domains that should not be allowed to make AJAX requests, 6981 * even if they match one of the domains allowed by $wgCrossSiteAJAXdomains 6982 * Uses the same syntax as $wgCrossSiteAJAXdomains 6983 */ 6984 $wgCrossSiteAJAXdomainExceptions = array(); 6985 6986 /** @} */ # End AJAX and API } 6987 6988 /************************************************************************//** 6989 * @name Shell and process control 6990 * @{ 6991 */ 6992 6993 /** 6994 * Maximum amount of virtual memory available to shell processes under linux, in KB. 6995 */ 6996 $wgMaxShellMemory = 307200; 6997 6998 /** 6999 * Maximum file size created by shell processes under linux, in KB 7000 * ImageMagick convert for example can be fairly hungry for scratch space 7001 */ 7002 $wgMaxShellFileSize = 102400; 7003 7004 /** 7005 * Maximum CPU time in seconds for shell processes under Linux 7006 */ 7007 $wgMaxShellTime = 180; 7008 7009 /** 7010 * Maximum wall clock time (i.e. real time, of the kind the clock on the wall 7011 * would measure) in seconds for shell processes under Linux 7012 */ 7013 $wgMaxShellWallClockTime = 180; 7014 7015 /** 7016 * Under Linux: a cgroup directory used to constrain memory usage of shell 7017 * commands. The directory must be writable by the user which runs MediaWiki. 7018 * 7019 * If specified, this is used instead of ulimit, which is inaccurate, and 7020 * causes malloc() to return NULL, which exposes bugs in C applications, making 7021 * them segfault or deadlock. 7022 * 7023 * A wrapper script will create a cgroup for each shell command that runs, as 7024 * a subgroup of the specified cgroup. If the memory limit is exceeded, the 7025 * kernel will send a SIGKILL signal to a process in the subgroup. 7026 * 7027 * @par Example: 7028 * @code 7029 * mkdir -p /sys/fs/cgroup/memory/mediawiki 7030 * mkdir -m 0777 /sys/fs/cgroup/memory/mediawiki/job 7031 * echo '$wgShellCgroup = "/sys/fs/cgroup/memory/mediawiki/job";' >> LocalSettings.php 7032 * @endcode 7033 * 7034 * The reliability of cgroup cleanup can be improved by installing a 7035 * notify_on_release script in the root cgroup, see e.g. 7036 * https://gerrit.wikimedia.org/r/#/c/40784 7037 */ 7038 $wgShellCgroup = false; 7039 7040 /** 7041 * Executable path of the PHP cli binary (php/php5). Should be set up on install. 7042 */ 7043 $wgPhpCli = '/usr/bin/php'; 7044 7045 /** 7046 * Locale for LC_CTYPE, to work around http://bugs.php.net/bug.php?id=45132 7047 * For Unix-like operating systems, set this to to a locale that has a UTF-8 7048 * character set. Only the character set is relevant. 7049 */ 7050 $wgShellLocale = 'en_US.utf8'; 7051 7052 /** @} */ # End shell } 7053 7054 /************************************************************************//** 7055 * @name HTTP client 7056 * @{ 7057 */ 7058 7059 /** 7060 * Timeout for HTTP requests done internally, in seconds. 7061 */ 7062 $wgHTTPTimeout = 25; 7063 7064 /** 7065 * Timeout for Asynchronous (background) HTTP requests, in seconds. 7066 */ 7067 $wgAsyncHTTPTimeout = 25; 7068 7069 /** 7070 * Proxy to use for CURL requests. 7071 */ 7072 $wgHTTPProxy = false; 7073 7074 /** 7075 * Timeout for connections done internally (in seconds) 7076 * Only works for curl 7077 */ 7078 $wgHTTPConnectTimeout = 5e0; 7079 7080 /** @} */ # End HTTP client } 7081 7082 /************************************************************************//** 7083 * @name Job queue 7084 * See also $wgEnotifUseJobQ. 7085 * @{ 7086 */ 7087 7088 /** 7089 * Number of jobs to perform per request. May be less than one in which case 7090 * jobs are performed probabalistically. If this is zero, jobs will not be done 7091 * during ordinary apache requests. In this case, maintenance/runJobs.php should 7092 * be run periodically. 7093 */ 7094 $wgJobRunRate = 1; 7095 7096 /** 7097 * When $wgJobRunRate > 0, try to run jobs asynchronously, spawning a new process 7098 * to handle the job execution, instead of blocking the request until the job 7099 * execution finishes. 7100 * @since 1.23 7101 */ 7102 $wgRunJobsAsync = true; 7103 7104 /** 7105 * Number of rows to update per job 7106 */ 7107 $wgUpdateRowsPerJob = 500; 7108 7109 /** 7110 * Number of rows to update per query 7111 */ 7112 $wgUpdateRowsPerQuery = 100; 7113 7114 /** @} */ # End job queue } 7115 7116 /************************************************************************//** 7117 * @name Miscellaneous 7118 * @{ 7119 */ 7120 7121 /** 7122 * Name of the external diff engine to use 7123 */ 7124 $wgExternalDiffEngine = false; 7125 7126 /** 7127 * Disable redirects to special pages and interwiki redirects, which use a 302 7128 * and have no "redirected from" link. 7129 * 7130 * @note This is only for articles with #REDIRECT in them. URL's containing a 7131 * local interwiki prefix (or a non-canonical special page name) are still hard 7132 * redirected regardless of this setting. 7133 */ 7134 $wgDisableHardRedirects = false; 7135 7136 /** 7137 * LinkHolderArray batch size 7138 * For debugging 7139 */ 7140 $wgLinkHolderBatchSize = 1000; 7141 7142 /** 7143 * By default MediaWiki does not register links pointing to same server in 7144 * externallinks dataset, use this value to override: 7145 */ 7146 $wgRegisterInternalExternals = false; 7147 7148 /** 7149 * Maximum number of pages to move at once when moving subpages with a page. 7150 */ 7151 $wgMaximumMovedPages = 100; 7152 7153 /** 7154 * Fix double redirects after a page move. 7155 * Tends to conflict with page move vandalism, use only on a private wiki. 7156 */ 7157 $wgFixDoubleRedirects = false; 7158 7159 /** 7160 * Allow redirection to another page when a user logs in. 7161 * To enable, set to a string like 'Main Page' 7162 */ 7163 $wgRedirectOnLogin = null; 7164 7165 /** 7166 * Configuration for processing pool control, for use in high-traffic wikis. 7167 * An implementation is provided in the PoolCounter extension. 7168 * 7169 * This configuration array maps pool types to an associative array. The only 7170 * defined key in the associative array is "class", which gives the class name. 7171 * The remaining elements are passed through to the class as constructor 7172 * parameters. 7173 * 7174 * @par Example: 7175 * @code 7176 * $wgPoolCounterConf = array( 'ArticleView' => array( 7177 * 'class' => 'PoolCounter_Client', 7178 * 'timeout' => 15, // wait timeout in seconds 7179 * 'workers' => 5, // maximum number of active threads in each pool 7180 * 'maxqueue' => 50, // maximum number of total threads in each pool 7181 * ... any extension-specific options... 7182 * ); 7183 * @endcode 7184 */ 7185 $wgPoolCounterConf = null; 7186 7187 /** 7188 * To disable file delete/restore temporarily 7189 */ 7190 $wgUploadMaintenance = false; 7191 7192 /** 7193 * Associative array mapping namespace IDs to the name of the content model pages in that namespace 7194 * should have by default (use the CONTENT_MODEL_XXX constants). If no special content type is 7195 * defined for a given namespace, pages in that namespace will use the CONTENT_MODEL_WIKITEXT 7196 * (except for the special case of JS and CS pages). 7197 * 7198 * @since 1.21 7199 */ 7200 $wgNamespaceContentModels = array(); 7201 7202 /** 7203 * How to react if a plain text version of a non-text Content object is requested using 7204 * ContentHandler::getContentText(): 7205 * 7206 * * 'ignore': return null 7207 * * 'fail': throw an MWException 7208 * * 'serialize': serialize to default format 7209 * 7210 * @since 1.21 7211 */ 7212 $wgContentHandlerTextFallback = 'ignore'; 7213 7214 /** 7215 * Set to false to disable use of the database fields introduced by the ContentHandler facility. 7216 * This way, the ContentHandler facility can be used without any additional information in the 7217 * database. A page's content model is then derived solely from the page's title. This however 7218 * means that changing a page's default model (e.g. using $wgNamespaceContentModels) will break 7219 * the page and/or make the content inaccessible. This also means that pages can not be moved to 7220 * a title that would default to a different content model. 7221 * 7222 * Overall, with $wgContentHandlerUseDB = false, no database updates are needed, but content 7223 * handling is less robust and less flexible. 7224 * 7225 * @since 1.21 7226 */ 7227 $wgContentHandlerUseDB = true; 7228 7229 /** 7230 * Determines which types of text are parsed as wikitext. This does not imply that these kinds 7231 * of texts are also rendered as wikitext, it only means that links, magic words, etc will have 7232 * the effect on the database they would have on a wikitext page. 7233 * 7234 * @todo On the long run, it would be nice to put categories etc into a separate structure, 7235 * or at least parse only the contents of comments in the scripts. 7236 * 7237 * @since 1.21 7238 */ 7239 $wgTextModelsToParse = array( 7240 CONTENT_MODEL_WIKITEXT, // Just for completeness, wikitext will always be parsed. 7241 CONTENT_MODEL_JAVASCRIPT, // Make categories etc work, people put them into comments. 7242 CONTENT_MODEL_CSS, // Make categories etc work, people put them into comments. 7243 ); 7244 7245 /** 7246 * Whether the user must enter their password to change their e-mail address 7247 * 7248 * @since 1.20 7249 */ 7250 $wgRequirePasswordforEmailChange = true; 7251 7252 /** 7253 * Register handlers for specific types of sites. 7254 * 7255 * @since 1.20 7256 */ 7257 $wgSiteTypes = array( 7258 'mediawiki' => 'MediaWikiSite', 7259 ); 7260 7261 /** 7262 * Whether the page_props table has a pp_sortkey column. Set to false in case 7263 * the respective database schema change was not applied. 7264 * @since 1.23 7265 */ 7266 $wgPagePropsHaveSortkey = true; 7267 7268 /** 7269 * Port where you have HTTPS running 7270 * Supports HTTPS on non-standard ports 7271 * @see bug 65184 7272 * @since 1.24 7273 */ 7274 $wgHttpsPort = 443; 7275 7276 /** 7277 * Secret and algorithm for hmac-based key derivation function (fast, 7278 * cryptographically secure random numbers). 7279 * This should be set in LocalSettings.php, otherwise wgSecretKey will 7280 * be used. 7281 * @since 1.24 7282 */ 7283 $wgHKDFSecret = false; 7284 $wgHKDFAlgorithm = 'sha256'; 7285 7286 /** 7287 * Enable page language feature 7288 * Allows setting page language in database 7289 * @var bool 7290 * @since 1.24 7291 */ 7292 $wgPageLanguageUseDB = false; 7293 7294 /** 7295 * Enable use of the *_namespace fields of the pagelinks, redirect, and templatelinks tables. 7296 * Set this only if the fields are fully populated. This may be removed in 1.25. 7297 * @var bool 7298 * @since 1.24 7299 */ 7300 $wgUseLinkNamespaceDBFields = true; 7301 7302 /** 7303 * For really cool vim folding this needs to be at the end: 7304 * vim: foldmarker=@{,@} foldmethod=marker 7305 * @} 7306 */
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |