Bump to 1.5beta3
[lhc/web/wiklou.git] / includes / DefaultSettings.php
index 549f2aa..c598379 100644 (file)
@@ -9,14 +9,26 @@
  * like $wgScriptPath, you must also localize everything that
  * depends on it.
  *
+ * Documentation is in the source and on:
+ * http://meta.wikimedia.org/wiki/Help:Configuration_settings_index
+ *
  * @package MediaWiki
  */
 
 # This is not a valid entry point, perform no further processing unless MEDIAWIKI is defined
-if( defined( 'MEDIAWIKI' ) ) {
+if( !defined( 'MEDIAWIKI' ) ) {
+       die( "This file is part of MediaWiki and is not a valid entry point\n" );
+}
+
+/**
+ * Create a site configuration object
+ * Not used for much in a default install
+ */
+require_once( 'includes/SiteConfiguration.php' );
+$wgConf = new SiteConfiguration;
 
 /** MediaWiki version number */
-$wgVersion                     = '1.5pre-alpha';
+$wgVersion                     = '1.5beta3';
 
 /** Name of the site. It must be changed in LocalSettings.php */
 $wgSitename         = 'MediaWiki';
@@ -24,6 +36,7 @@ $wgSitename         = 'MediaWiki';
 /** Will be same as you set @see $wgSitename */
 $wgMetaNamespace    = FALSE;
 
+
 /** URL of the server. It will be automaticly build including https mode */
 $wgServer = '';
 
@@ -43,7 +56,11 @@ if( isset( $_SERVER['SERVER_NAME'] ) ) {
 $wgProto = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
 
 $wgServer = $wgProto.'://' . $wgServerName;
-if( isset( $_SERVER['SERVER_PORT'] ) && $_SERVER['SERVER_PORT'] != 80 ) {
+# If the port is a non-standard one, add it to the URL
+if(    isset( $_SERVER['SERVER_PORT'] )
+    && (    ( $wgProto == 'http' && $_SERVER['SERVER_PORT'] != 80 )
+         || ( $wgProto == 'https' && $_SERVER['SERVER_PORT'] != 443 ) ) ) {
+
        $wgServer .= ":" . $_SERVER['SERVER_PORT'];
 }
 unset($wgProto);
@@ -68,7 +85,7 @@ $wgUsePathInfo                = ( strpos( php_sapi_name(), 'cgi' ) === false );
  * make sure that LocalSettings.php is correctly set!
  * @deprecated
  */
-/** 
+/**
  *     @global string $wgScript
  */
 $wgScript           = "{$wgScriptPath}/index.php";
@@ -93,7 +110,6 @@ $wgStylePath   = "{$wgScriptPath}/skins";
  */
 $wgStyleDirectory = "{$IP}/skins";
 $wgStyleSheetPath = &$wgStylePath;
-$wgStyleSheetDirectory = &$wgStyleDirectory;
 $wgArticlePath      = "{$wgScript}?title=$1";
 $wgUploadPath       = "{$wgScriptPath}/upload";
 $wgUploadDirectory     = "{$IP}/upload";
@@ -105,9 +121,114 @@ $wgTmpDirectory     = "{$wgUploadDirectory}/tmp";
 $wgUploadBaseUrl    = "";
 /**#@-*/
 
+/** internal name of virus scanner. This servers as a key to the $wgAntivirusSetup array.
+ * Set this to NULL to disable virus scanning. If not null, every file uploaded will be scanned for viruses.
+ * @global string $wgAntivirus
+ */
+$wgAntivirus= NULL;
+
+/** Configuration for different virus scanners. This an associative array of associative arrays:
+ * it contains on setup array per known scanner type. The entry is selected by $wgAntivirus, i.e.
+ * valid values for $wgAntivirus are the keys defined in this array.
+ *
+ * The configuration array for each scanner contains the following keys: "command", "codemap", "messagepattern";
+ *
+ * "command" is the full command to call the virus scanner - %f will be replaced with the name of the
+ * file to scan. If not present, the filename will be appended to the command. Note that this must be
+ * overwritten if the scanner is not in the system path; in that case, plase set
+ * $wgAntivirusSetup[$wgAntivirus]['command'] to the desired command with full path.
+ *
+ * "codemap" is a mapping of exit code to return codes of the detectVirus function in SpecialUpload.
+ * An exit code mapped to AV_SCAN_FAILED causes the function to consider the scan to be failed. This will pass
+ * the file if $wgAntivirusRequired is not set.
+ * An exit code mapped to AV_SCAN_ABORTED causes the function to consider the file to have an usupported format,
+ * which is probably imune to virusses. This causes the file to pass.
+ * An exit code mapped to AV_NO_VIRUS will cause the file to pass, meaning no virus was found.
+ * All other codes (like AV_VIRUS_FOUND) will cause the function to report a virus.
+ * You may use "*" as a key in the array to catch all exit codes not mapped otherwise.
+ *
+ * "messagepattern" is a perl regular expression to extract the meaningful part of the scanners
+ * output. The relevant part should be matched as group one (\1).
+ * If not defined or the pattern does not match, the full message is shown to the user.
+ *
+ * @global array $wgAntivirusSetup
+ */
+$wgAntivirusSetup= array(
+
+       #setup for clamav
+       'clamav' => array (
+               'command' => "clamscan --no-summary ",
+
+               'codemap'=> array (
+                       "0"=>  AV_NO_VIRUS, #no virus
+                       "1"=>  AV_VIRUS_FOUND, #virus found
+                       "52"=> AV_SCAN_ABORTED, #unsupported file format (probably imune)
+                       "*"=>  AV_SCAN_FAILED, #else scan failed
+               ),
+
+               'messagepattern'=> '/.*?:(.*)/sim',
+       ),
+
+       #setup for f-prot
+       'f-prot' => array (
+               'command' => "f-prot ",
+
+               'codemap'=> array (
+                       "0"=> AV_NO_VIRUS, #no virus
+                       "3"=> AV_VIRUS_FOUND, #virus found
+                       "6"=> AV_VIRUS_FOUND, #virus found
+                       "*"=> AV_SCAN_FAILED, #else scan failed
+               ),
+
+               'messagepattern'=> '/.*?Infection:(.*)$/m',
+       ),
+);
+
+
+/** Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected.
+ * @global boolean $wgAntivirusRequired
+*/
+$wgAntivirusRequired= true;
+
+/** Determines if the mime type of uploaded files should be checked
+ * @global boolean $wgVerifyMimeType
+*/
+$wgVerifyMimeType= true;
+
+/** Sets the mime type definition file to use by MimeMagic.php.
+* @global string $wgMimeTypeFile
+*/
+#$wgMimeTypeFile= "/etc/mime.types";
+$wgMimeTypeFile= "includes/mime.types";
+#$wgMimeTypeFile= NULL; #use build in defaults only.
+
+/** Sets the mime type info file to use by MimeMagic.php.
+* @global string $wgMimeInfoFile
+*/
+$wgMimeInfoFile= "includes/mime.info";
+#$wgMimeInfoFile= NULL; #use build in defaults only.
+
+/** Switch for loading the FileInfo extension by PECL at runtime.
+* This should be used only if fileinfo is installed as a shared object / dynamic libary
+* @global string $wgLoadFileinfoExtension
+*/
+$wgLoadFileinfoExtension= false;
+
+/** Sets an external mime detector program. The command must print only the mime type to standard output.
+* the name of the file to process will be appended to the command given here.
+* If not set or NULL, mime_content_type will be used if available.
+*/
+$wgMimeDetectorCommand= NULL; # use internal mime_content_type function, available since php 4.3.0
+#$wgMimeDetectorCommand= "file -bi" #use external mime detector (linux)
+
+/** Switch for trivial mime detection. Used by thumb.php to disable all fance things,
+* because only a few types of images are needed and file extensions can be trusted.
+*/
+$wgTrivialMimeDetection= false;
+
 /**
  * Produce hashed HTML article paths. Used internally, do not set.
- */ 
+ */
 $wgMakeDumpLinks = false;
 
 /**
@@ -132,6 +253,8 @@ $wgActionPaths = array();
 $wgUseSharedUploads = false;
 /** Full path on the web server where shared uploads can be found */
 $wgSharedUploadPath = "http://commons.wikimedia.org/shared/images";
+/** Fetch commons image description pages and display them on the local wiki? */
+$wgFetchCommonsDescriptions = false;
 /** Path on the file system where shared uploads can be found. */
 $wgSharedUploadDirectory = "/var/www/wiki3/images";
 /** DB name with metadata about shared directory. Set this to false if the uploads do not come from a wiki. */
@@ -139,18 +262,25 @@ $wgSharedUploadDBname = false;
 /** Cache shared metadata in memcached. Don't do this if the commons wiki is in a different memcached domain */
 $wgCacheSharedUploads = true;
 
-/** 
- * Give a path here to use thumb.php for thumbnail generation on client request, instead of 
- * generating them on render and outputting a static URL. This is necessary if some of your 
+/**
+ * Point the upload navigation link to an external URL
+ * Useful if you want to use a shared repository by default
+ * without disabling local uploads
+ * e.g. $wgUploadNavigationUrl = 'http://commons.wikimedia.org/wiki/Special:Upload';
+*/
+$wgUploadNavigationUrl = false;
+
+/**
+ * Give a path here to use thumb.php for thumbnail generation on client request, instead of
+ * generating them on render and outputting a static URL. This is necessary if some of your
  * apache servers don't have read/write access to the thumbnail path.
- * 
- * Example: 
- *   $wgThumnailScriptPath = "{$wgScriptPath}/thumb.php";
+ *
+ * Example:
+ *   $wgThumbnailScriptPath = "{$wgScriptPath}/thumb.php";
  */
 $wgThumbnailScriptPath = false;
 $wgSharedThumbnailScriptPath = false;
 
-
 /**
  * Set the following to false especially if you have a set of files that need to
  * be accessible by all wikis, and you do not want to use the hash (path/a/aa/)
@@ -158,9 +288,6 @@ $wgSharedThumbnailScriptPath = false;
  */
 $wgHashedSharedUploadDirectory = true;
 
-/** set true if the repository uses latin1 filenames */
-$wgSharedLatin1=false;
-
 /**
  * Base URL for a repository wiki. Leave this blank if uploads are just stored
  * in a shared directory and not meant to be accessible through a separate wiki.
@@ -216,7 +343,7 @@ $wgEnableUserEmail = true;
 
 /**
  * SMTP Mode
- * For using a direct (authenticated) SMTP server connection. 
+ * For using a direct (authenticated) SMTP server connection.
  * Default to false or fill an array :
  * <code>
  * "host" => 'SMTP domain',
@@ -248,14 +375,15 @@ $wgDBuser           = 'wikiuser';
  */
 $wgDBtype           = "mysql";
 /** Search type
- * "MyISAM" for MySQL native full text search, "Tsearch2" for PostgreSQL
- * based search engine
+ * Leave as null to select the default search engine for the
+ * selected database type (eg SearchMySQL4), or set to a class
+ * name to override to a custom search engine.
  */
-$wgSearchType      = "MyISAM";
+$wgSearchType      = null;
 /** Table name prefix */
-$wgDBprefix         = ''; 
+$wgDBprefix         = '';
 /** Database schema
- * on some databases this allows separate 
+ * on some databases this allows separate
  * logical namespace for application data
  */
 $wgDBschema        = 'mediawiki';
@@ -273,29 +401,35 @@ $wgSharedDB = null;
 
 # Database load balancer
 # This is a two-dimensional array, an array of server info structures
-# Fields are: 
-#   host:      Host name
-#   dbname:    Default database name
-#   user:      DB user
-#   password:  DB password
-#   type:      "mysql" or "pgsql"
-#   load:      ratio of DB_SLAVE load, must be >=0, the sum of all loads must be >0
-#   flags:     bit field
-#                 DBO_DEFAULT -- turns on DBO_TRX only if !$wgCommandLineMode (recommended)
-#                 DBO_DEBUG -- equivalent of $wgDebugDumpSql
-#                 DBO_TRX -- wrap entire request in a transaction
-#                 DBO_IGNORE -- ignore errors (not useful in LocalSettings.php)
-#                 DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php)
+# Fields are:
+#   host:        Host name
+#   dbname:      Default database name
+#   user:        DB user
+#   password:    DB password
+#   type:        "mysql" or "pgsql"
+#   load:        ratio of DB_SLAVE load, must be >=0, the sum of all loads must be >0
+#   groupLoads:  array of load ratios, the key is the query group name. A query may belong
+#                to several groups, the most specific group defined here is used.
+#
+#   flags:       bit field
+#                   DBO_DEFAULT -- turns on DBO_TRX only if !$wgCommandLineMode (recommended)
+#                   DBO_DEBUG -- equivalent of $wgDebugDumpSql
+#                   DBO_TRX -- wrap entire request in a transaction
+#                   DBO_IGNORE -- ignore errors (not useful in LocalSettings.php)
+#                   DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php)
 #
 # Leave at false to use the single-server variables above
-$wgDBservers           = false; 
+$wgDBservers           = false;
 
-/** How long to wait for a slave to catch up to the master */ 
+/** How long to wait for a slave to catch up to the master */
 $wgMasterWaitTimeout = 10;
 
 /** File to log MySQL errors to */
 $wgDBerrorLog          = false;
 
+/** When to give an error message */
+$wgDBClusterTimeout = 10;
+
 /**
  * wgDBminWordLen :
  * MySQL 3.x : used to discard words that MySQL will not return any results for
@@ -308,13 +442,12 @@ $wgDBminWordLen     = 4;
 $wgDBtransactions      = false;
 /** Set to true to use enhanced fulltext search */
 $wgDBmysql4                    = false;
-$wgSqlTimeout          = 30;
 
 /**
  * Other wikis on this site, can be administered from a single developer
  * account.
  * Array, interwiki prefix => database name
- */ 
+ */
 $wgLocalDatabases   = array();
 
 /**
@@ -340,18 +473,19 @@ $wgMemCachedDebug   = false;
 
 # Language settings
 #
-/** Site language code, should be one of ./language/Language(.*).php */
+/** Site language code, should be one of ./languages/Language(.*).php */
 $wgLanguageCode     = 'en';
 
-/** Filename of a language file generated by dumpMessages.php */
-$wgLanguageFile     = false;
-
 /** Treat language links as magic connectors, not inline links */
 $wgInterwikiMagic      = true;
 
+/** Hide interlanguage links from the sidebar */
+$wgHideInterlanguageLinks = false;
+
+
 /** We speak UTF-8 all the time now, unless some oddities happen */
 $wgInputEncoding       = 'UTF-8';
-$wgOutputEncoding      = 'UTF-8'; 
+$wgOutputEncoding      = 'UTF-8';
 $wgEditEncoding                = '';
 
 # Set this to eg 'ISO-8859-1' to perform character set
@@ -364,17 +498,35 @@ $wgEditEncoding           = '';
 # en masse in the database before continuing as a UTF-8 wiki.
 $wgLegacyEncoding   = false;
 
+/**
+ * If set to true, the MediaWiki 1.4 to 1.5 schema conversion will
+ * create stub reference rows in the text table instead of copying
+ * the full text of all current entries from 'cur' to 'text'.
+ *
+ * This will speed up the conversion step for large sites, but
+ * requires that the cur table be kept around for those revisions
+ * to remain viewable.
+ *
+ * maintenance/migrateCurStubs.php can be used to complete the
+ * migration in the background once the wiki is back online.
+ *
+ * This option affects the updaters *only*. Any present cur stub
+ * revisions will be readable at runtime regardless of this setting.
+ */
+$wgLegacySchemaConversion = false;
+
 $wgMimeType                    = 'text/html';
+$wgJsMimeType                  = 'text/javascript';
 $wgDocType                     = '-//W3C//DTD XHTML 1.0 Transitional//EN';
 $wgDTD                         = 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd';
 
 /** Enable to allow rewriting dates in page text.
  * DOES NOT FORMAT CORRECTLY FOR MOST LANGUAGES */
-$wgUseDynamicDates  = false; 
+$wgUseDynamicDates  = false;
 /** Enable dates like 'May 12' instead of '12 May', this only takes effect if
  * the interface is set to English
  */
-$wgAmericanDates    = false; 
+$wgAmericanDates    = false;
 /**
  * For Hindi and Arabic use local numerals instead of Western style (0-9)
  * numerals in interface.
@@ -384,19 +536,16 @@ $wgTranslateNumerals = true;
 
 # Translation using MediaWiki: namespace
 # This will increase load times by 25-60% unless memcached is installed
-# Interface messages will be get from the database.
+# Interface messages will be loaded from the database.
 $wgUseDatabaseMessages = true;
 $wgMsgCacheExpiry      = 86400;
-$wgPartialMessageCache = false;
 
-# Whether to enable language variant conversion. Currently only zh 
-# supports this function, to convert between Traditional and Simplified
-# Chinese. This flag is meant to isolate the (untested) conversion 
-# code, so that if it breaks, only zh will be affected
+# Whether to enable language variant conversion.
 $wgDisableLangConversion = false;
 
 # Use article validation feature; turned off by default
 $wgUseValidation = false;
+$wgValidationForAnons = true ;
 
 # Whether to use zhdaemon to perform Chinese text processing
 # zhdaemon is under developement, so normally you don't want to
@@ -405,6 +554,15 @@ $wgUseZhdaemon = false;
 $wgZhdaemonHost="localhost";
 $wgZhdaemonPort=2004;
 
+/** Normally you can ignore this and it will be something
+    like $wgMetaNamespace . "_talk". In some languages, you
+    may want to set this manually for grammatical reasons.
+    It is currently only respected by those languages
+    where it might be relevant and where no automatic
+    grammar converter exists.
+*/
+$wgMetaNamespaceTalk = false;
+
 # Miscellaneous configuration settings
 #
 
@@ -427,7 +585,7 @@ $wgRedirectSources = false;
 
 
 $wgShowIPinHeader      = true; # For non-logged in users
-$wgMaxNameChars     = 32; # Maximum number of bytes in username
+$wgMaxNameChars                = 255;  # Maximum number of bytes in username
 
 $wgExtraSubtitle       = '';
 $wgSiteSupportPage     = ''; # A page where you users can receive donations
@@ -469,10 +627,6 @@ $wgUseCategoryMagic                = true;
  */
 $wgUseCategoryBrowser   = false;
 
-$wgEnablePersistentLC  = false;        # Obsolete, do not use
-$wgCompressedPersistentLC = true; # use gzcompressed blobs
-$wgUseOldExistenceCheck = false;  # use old prefill link method, for debugging only
-
 /**
  * Keep parsed pages in a cache (objectcache table, turck, or memcached)
  * to speed up output of the same page viewed by another user with the
@@ -511,32 +665,73 @@ $wgHitcounterUpdateFreq = 1;
 #  It's not 100% safe, there could be security hole using that one. Use at your
 # own risks.
 
-$wgWhitelistEdit = false;   # true = user must login to edit.
-$wgWhitelistRead = false;      # Pages anonymous user may see, like: = array ( ":Main_Page", "Special:Userlogin", "Wikipedia:Help");
-$wgWhitelistAccount = array ( 'user' => 1, 'sysop' => 1, 'developer' => 1 );
+$wgWhitelistRead = false;      # Pages anonymous user may see, like: = array ( "Main Page", "Special:Userlogin", "Wikipedia:Help");
 
 $wgAllowAnonymousMinor = false; # Allow anonymous users to mark changes as 'minor'
 
 $wgSysopUserBans        = true; # Allow sysops to ban logged-in users
 $wgSysopRangeBans              = true; # Allow sysops to ban IP ranges
 
-/** Comma-separated list of options to show on the IP block form. 
-  * Use strtotime() format, or "infinite" for an infinite block 
-  */
-$wgBlockExpiryOptions = "2 hours,1 day,3 days,1 week,2 weeks,1 month,3 months,6 months,1 year,infinite";
-
 $wgAutoblockExpiry             = 86400; # Number of seconds before autoblock entries expire
 
+/**
+ * Permission keys given to users in each group.
+ * All users are implicitly in the '*' group including anonymous visitors;
+ * logged-in users are all implicitly in the 'user' group. These will be
+ * combined with the permissions of all groups that a given user is listed
+ * in in the user_groups table.
+ *
+ * This replaces wgWhitelistAccount and wgWhitelistEdit
+ */
+$wgGroupPermissions = array();
+
+$wgGroupPermissions['*'    ]['createaccount']   = true;
+$wgGroupPermissions['*'    ]['read']            = true;
+$wgGroupPermissions['*'    ]['edit']            = true;
+
+$wgGroupPermissions['user' ]['move']            = true;
+$wgGroupPermissions['user' ]['read']            = true;
+$wgGroupPermissions['user' ]['edit']            = true;
+$wgGroupPermissions['user' ]['upload']          = true;
+
+$wgGroupPermissions['bot'  ]['bot']             = true;
+
+$wgGroupPermissions['sysop']['block']           = true;
+$wgGroupPermissions['sysop']['createaccount']   = true;
+$wgGroupPermissions['sysop']['delete']          = true;
+$wgGroupPermissions['sysop']['editinterface']   = true;
+$wgGroupPermissions['sysop']['import']          = true;
+$wgGroupPermissions['sysop']['importupload']    = true;
+$wgGroupPermissions['sysop']['move']            = true;
+$wgGroupPermissions['sysop']['patrol']          = true;
+$wgGroupPermissions['sysop']['protect']         = true;
+$wgGroupPermissions['sysop']['rollback']        = true;
+$wgGroupPermissions['sysop']['upload']          = true;
+
+$wgGroupPermissions['bureaucrat']['userrights'] = true;
+// Used by the Special:Renameuser extension
+$wgGroupPermissions['bureaucrat']['renameuser'] = true;
+
+/**
+ * The developer group is deprecated, but can be activated if need be
+ * to use the 'lockdb' and 'unlockdb' special pages. Those require
+ * that a lock file be defined and creatable/removable by the web
+ * server.
+ */
+# $wgGroupPermissions['developer']['siteadmin'] = true;
+
+
+
 # Proxy scanner settings
 #
 
 /**
  * If you enable this, every editor's IP address will be scanned for open HTTP
  * proxies.
- * 
+ *
  * Don't enable this. Many sysops will report "hostile TCP port scans" to your
  * ISP and ask for your server to be shut down.
- * 
+ *
  * You have been warned.
  */
 $wgBlockOpenProxies = false;
@@ -575,7 +770,7 @@ $wgCacheEpoch = '20030516000000';
  * This will cache static pages for non-logged-in users to reduce
  * database traffic on public sites.
  * Must set $wgShowIPinHeader = false
- */  
+ */
 $wgUseFileCache = false;
 /** Directory where the cached page will be saved */
 $wgFileCacheDirectory = "{$wgUploadDirectory}/cache";
@@ -585,7 +780,7 @@ $wgFileCacheDirectory = "{$wgUploadDirectory}/cache";
  * space. Pages will then also be served compressed to clients that support it.
  * THIS IS NOT COMPATIBLE with ob_gzhandler which is now enabled if supported in
  * the default LocalSettings.php! If you enable this, remove that setting first.
- * 
+ *
  * Requires zlib support enabled in PHP.
  */
 $wgUseGzip = false;
@@ -593,30 +788,22 @@ $wgUseGzip = false;
 # Email notification settings
 #
 
-/** 
- * Program to run when the email is actually sent out. You might want to make
- * your server beep for example. Usermailer.php will make a system() call with
- * exactly that string as parameter.
- */
-# $wgEmailNotificationSystembeep = '/usr/bin/beep -f 4000 -l 20 &';
-$wgEmailNotificationSystembeep = '';
-
 /** For email notification on page changes */
 $wgPasswordSender = $wgEmergencyContact;
 
-# true: from PageEditor if s/he opted-in
+# true: from page editor if s/he opted-in
 # false: Enotif mails appear to come from $wgEmergencyContact
-$wgEmailNotificationMailsSentFromPageEditor    = false; 
+$wgEnotifFromEditor    = false;
 
 // TODO move UPO to preferences probably ?
 # If set to true, users get a corresponding option in their preferences and can choose to enable or disable at their discretion
 # If set to false, the corresponding input form on the user preference page is suppressed
 # It call this to be a "user-preferences-option (UPO)"
 $wgEmailAuthentication                         = true; # UPO (if this is set to false, texts referring to authentication are suppressed)
-$wgEmailNotificationForWatchlistPages          = false; # UPO
-$wgEmailNotificationForUserTalkPages           = false;        # UPO
-$wgEmailNotificationRevealPageEditorAddress    = false;        # UPO; reply-to address may be filled with page editor's address (if user allowed this in the preferences)
-$wgEmailNotificationForMinorEdits              = true; # UPO; false: "minor edits" on pages do not trigger notification mails.
+$wgEnotifWatchlist             = false; # UPO
+$wgEnotifUserTalk              = false;        # UPO
+$wgEnotifRevealEditorAddress   = false;        # UPO; reply-to address may be filled with page editor's address (if user allowed this in the preferences)
+$wgEnotifMinorEdits            = true; # UPO; false: "minor edits" on pages do not trigger notification mails.
 #                                                      # Attention: _every_ change on a user_talk page trigger a notification mail (if the user is not yet notified)
 
 
@@ -627,23 +814,30 @@ $wgPageShowWatchingUsers                  = false;
 /**
  * Show "Updated (since my last visit)" marker in RC view, watchlist and history
  * view for watched pages with new changes */
-$wgShowUpdatedMarker                           = true; # UPO
+$wgShowUpdatedMarker                           = true;
 
 $wgCookieExpiration = 2592000;
 
+/** Clock skew or the one-second resolution of time() can occasionally cause cache
+ * problems when the user requests two pages within a short period of time. This
+ * variable adds a given number of seconds to vulnerable timestamps, thereby giving
+ * a grace period.
+ */
+$wgClockSkewFudge = 5;
+
 # Squid-related settings
 #
 
 /** Enable/disable Squid */
 $wgUseSquid = false;
+
 /** If you run Squid3 with ESI support, enable this (default:false): */
 $wgUseESI = false;
+
 /** Internal server name as known to Squid, if different */
 # $wgInternalServer = 'http://yourinternal.tld:8000';
 $wgInternalServer = $wgServer;
+
 /**
  * Cache timeout for the squid, will be sent as s-maxage (without ESI) or
  * Surrogate-Control (with ESI). Without ESI, you should strip out s-maxage in
@@ -651,7 +845,7 @@ $wgInternalServer = $wgServer;
  * days
  */
 $wgSquidMaxage = 18000;
+
 /**
  * A list of proxy servers (ips if possible) to purge on changes don't specify
  * ports here (80 is default)
@@ -705,17 +899,17 @@ $wgTexvc = './math/texvc';
 #
 
 /** Enable for more detailed by-function times in debug log */
-$wgProfiling = false; 
+$wgProfiling = false;
 /** Only record profiling info for pages that took longer than this */
 $wgProfileLimit = 0.0;
 /** Don't put non-profiling info into log file */
-$wgProfileOnly = false; 
+$wgProfileOnly = false;
 /** Log sums from profiling into "profiling" table in db. */
 $wgProfileToDatabase = false;
 /** Only profile every n requests when profiling is turned on */
 $wgProfileSampleRate = 1;
 /** If true, print a raw call tree instead of per-function report */
-$wgProfileCallTree = false; 
+$wgProfileCallTree = false;
 
 /** Detects non-matching wfProfileIn/wfProfileOut calls */
 $wgDebugProfiling = false;
@@ -733,13 +927,32 @@ $wgDisableTextSearch = false;
 $wgDisableSearchUpdate = false;
 /** Uploads have to be specially set up to be secure */
 $wgEnableUploads = false;
+/**
+ * Show EXIF data, on by default if available.
+ * Requires PHP's EXIF extension: http://www.php.net/manual/en/ref.exif.php
+ */
+$wgShowEXIF = function_exists( 'exif_read_data' );
+
 /**
  * Set to true to enable the upload _link_ while local uploads are disabled.
  * Assumes that the special page link will be bounced to another server where
  * uploads do work.
  */
-$wgRemoteUploads = false; 
+$wgRemoteUploads = false;
 $wgDisableAnonTalk = false;
+/**
+ * Do DELETE/INSERT for link updates instead of incremental
+ */
+$wgUseDumbLinkUpdate = false;
+
+/**
+ * Anti-lock flags - bitfield
+ *   ALF_PRELOAD_LINKS
+ *       Preload links during link update for save
+ *   ALF_PRELOAD_EXISTENCE
+ *       Preload cur_id during replaceLinkHolders
+ */
+$wgAntiLockFlags = 0;
 
 /**
  * Path to the GNU diff3 utility. If the file doesn't exist, edit conflicts will
@@ -747,7 +960,7 @@ $wgDisableAnonTalk = false;
  */
 $wgDiff3 = '/usr/bin/diff3';
 
-/** 
+/**
  * We can also compress text in the old revisions table. If this is set on, old
  * revisions will be compressed on page save if zlib support is available. Any
  * compressed revisions will be decompressed on load regardless of this setting
@@ -764,7 +977,7 @@ $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' );
 /** Files with these extensions will never be allowed as uploads. */
 $wgFileBlacklist = array(
        # HTML may contain cookie-stealing JavaScript and web bugs
-       'html', 'htm',
+       'html', 'htm', 'js', 'jsb',
        # PHP scripts may execute arbitrary code on the server
        'php', 'phtml', 'php3', 'php4', 'phps',
        # Other types that may be interpreted by some servers
@@ -772,6 +985,18 @@ $wgFileBlacklist = array(
        # May contain harmful executables for Windows victims
        'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' );
 
+/** Files with these mime types will never be allowed as uploads
+ * if $wgVerifyMimeType is enabled.
+ */
+$wgMimeTypeBlacklist= array(
+       # HTML may contain cookie-stealing JavaScript and web bugs
+       'text/html', 'text/javascript', 'text/x-javascript',  'application/x-shellscript',
+       # PHP scripts may execute arbitrary code on the server
+       'application/x-php', 'text/x-php',
+       # Other types that may be interpreted by some servers
+       'text/x-python', 'text/x-perl', 'text/x-bash', 'text/x-sh', 'text/x-csh'
+);
+
 /** This is a flag to determine whether or not to check file extensions on upload. */
 $wgCheckFileExtensions = true;
 
@@ -785,49 +1010,25 @@ $wgStrictFileExtensions = true;
 $wgUploadSizeWarning = 150 * 1024;
 
 /** For compatibility with old installations set to false */
-$wgPasswordSalt = true; 
+$wgPasswordSalt = true;
 
 /** Which namespaces should support subpages?
  * See Language.php for a list of namespaces.
  */
 $wgNamespacesWithSubpages = array(
-       NS_SPECIAL => 0,
-       NS_MAIN => 0,
-       NS_TALK => 1,
-       NS_USER => 1,
-       NS_USER_TALK => 1,
-       NS_PROJECT => 0,
-       NS_PROJECT_TALK => 1,
-       NS_IMAGE => 0,
-       NS_IMAGE_TALK => 1,
-       NS_MEDIAWIKI => 0,
-       NS_MEDIAWIKI_TALK => 1,
-       NS_TEMPLATE => 0,
-       NS_TEMPLATE_TALK => 1,
-       NS_HELP => 0,
-       NS_HELP_TALK => 1,
-       NS_CATEGORY => 0,
-       NS_CATEGORY_TALK => 1
+       NS_TALK           => true,
+       NS_USER           => true,
+       NS_USER_TALK      => true,
+       NS_PROJECT_TALK   => true,
+       NS_IMAGE_TALK     => true,
+       NS_MEDIAWIKI_TALK => true,
+       NS_TEMPLATE_TALK  => true,
+       NS_HELP_TALK      => true,
+       NS_CATEGORY_TALK  => true
  );
 
 $wgNamespacesToBeSearchedDefault = array(
-       NS_SPECIAL => 0,
-       NS_MAIN => 1,
-       NS_TALK => 0,
-       NS_USER => 0,
-       NS_USER_TALK => 0,
-       NS_PROJECT => 0,
-       NS_PROJECT_TALK => 0,
-       NS_IMAGE => 0,
-       NS_IMAGE_TALK => 0,
-       NS_MEDIAWIKI => 0,
-       NS_MEDIAWIKI_TALK => 1,
-       NS_TEMPLATE => 1,
-       NS_TEMPLATE_TALK => 1,
-       NS_HELP => 0,
-       NS_HELP_TALK => 0,
-       NS_CATEGORY => 0,
-       NS_CATEGORY_TALK => 0
+       NS_MAIN           => true,
 );
 
 /** If set, a bold ugly notice will show up at the top of every page. */
@@ -845,7 +1046,7 @@ $wgUseImageResize          = false;
  * Resizing can be done using PHP's internal image libraries or using
  * ImageMagick. The later supports more file formats than PHP, which only
  * supports PNG, GIF, JPG, XBM and WBMP.
- * 
+ *
  * Use Image Magick instead of PHP builtin functions.
  */
 $wgUseImageMagick              = false;
@@ -868,7 +1069,7 @@ $wgSVGConverter = 'ImageMagick';
 /** If not in the executable PATH, specify */
 $wgSVGConverterPath = '';
 
-/** @todo FIXME what does it do here ?? [ashar] */
+/** Set $wgCommandLineMode if it's not set already, to avoid notices */
 if( !isset( $wgCommandLineMode ) ) {
        $wgCommandLineMode = false;
 }
@@ -878,9 +1079,6 @@ if( !isset( $wgCommandLineMode ) ) {
 # Recent changes settings
 #
 
-/** Show seconds in Recent Changes */
-$wgRCSeconds = false;
-
 /** Log IP addresses in the recentchanges table */
 $wgPutIPinRC = false;
 
@@ -892,6 +1090,11 @@ $wgPutIPinRC = false;
 $wgRCMaxAge = 7 * 24 * 3600;
 
 
+# Send RC updates via UDP
+$wgRC2UDPAddress = false;
+$wgRC2UDPPort = false;
+$wgRC2UDPPrefix = '';
+
 #
 # Copyright and credits settings
 #
@@ -911,6 +1114,10 @@ $wgRightsIcon = NULL;
 /** Set this to some HTML to override the rights icon with an arbitrary logo */
 $wgCopyrightIcon = NULL;
 
+/* Set this to true if you want the annoying copyright confirmation
+ *  checkbox at Special:Upload */
+$wgCopyrightAffirmation = false;
+
 /** Set this to true if you want detailed copyright information forms on Upload. */
 $wgUseCopyrightUpload = false;
 
@@ -921,7 +1128,7 @@ $wgCheckCopyrightUpload = true;
 /**
  * Set this to the number of authors that you want to be credited below an
  * article text. Set it to zero to hide the attribution block, and a negative
- * number (like -1) to show all authors. Note that this will# require 2-3 extra
+ * number (like -1) to show all authors. Note that this will require 2-3 extra
  * database hits, which can have a not insignificant impact on performance for
  * large wikis.
  */
@@ -943,8 +1150,11 @@ $wgCapitalLinks = true;
 
 /**
  * List of interwiki prefixes for wikis we'll accept as sources for
- * Special:Import (for sysops). Since complete page history# can be imported,
+ * Special:Import (for sysops). Since complete page history can be imported,
  * these should be 'trusted'.
+ *
+ * If a user has the 'import' permission but not the 'importupload' permission,
+ * they will only be able to run imports through this transwiki interface.
  */
 $wgImportSources = array();
 
@@ -952,7 +1162,7 @@ $wgImportSources = array();
 
 /** Text matching this regular expression will be recognised as spam
  * See http://en.wikipedia.org/wiki/Regular_expression */
-$wgSpamRegex = false; 
+$wgSpamRegex = false;
 /** Similarly if this function returns true */
 $wgFilterCallback = false;
 
@@ -966,8 +1176,8 @@ $wgGoToEdit = false;
 $wgUserHtml = true;
 
 /** Allow raw, unchecked HTML in <html>...</html> sections.
- * THIS IS VERY DANGEROUS on a publically editable site, so you can't enable it
- * unless you've restricted editing to trusted users only with $wgWhitelistEdit.
+ * THIS IS VERY DANGEROUS on a publically editable site, so USE wgGroupPermissions
+ * TO RESTRICT EDITING to only those that you trust
  */
 $wgRawHtml = false;
 
@@ -979,13 +1189,20 @@ $wgRawHtml = false;
  * $wgTidyBin should be set to the path of the binary and
  * $wgTidyConf to the path of the configuration file.
  * $wgTidyOpts can include any number of parameters.
+ *
+ * $wgTidyInternal controls the use of the PECL extension to use an in-
+ *   process tidy library instead of spawning a separate program.
+ *   Normally you shouldn't need to override the setting except for
+ *   debugging. To install, use 'pear install tidy' and add a line
+ *   'extension=tidy.so' to php.ini.
  */
 $wgUseTidy = false;
 $wgTidyBin = 'tidy';
-$wgTidyConf = $IP.'/extensions/tidy/tidy.conf'; 
+$wgTidyConf = $IP.'/extensions/tidy/tidy.conf';
 $wgTidyOpts = '';
+$wgTidyInternal = function_exists( 'tidy_load_config' );
 
-/** See list of skins and their symbolic names in languagel/Language.php */
+/** See list of skins and their symbolic names in languages/Language.php */
 $wgDefaultSkin = 'monobook';
 
 /**
@@ -994,7 +1211,7 @@ $wgDefaultSkin = 'monobook';
  * and sample values in languages/Language.php)
  * For instance, to disable section editing links:
  *  $wgDefaultUserOptions ['editsection'] = 0;
- * 
+ *
  */
 $wgDefaultUserOptions = array();
 
@@ -1027,7 +1244,7 @@ $wgUseSiteJs = true;
 
 /** Use the site's Cascading Style Sheets (CSS)? */
 $wgUseSiteCss = true;
-       
+
 /** Filter for Special:Randompage. Part of a WHERE clause */
 $wgExtraRandompageSQL = false;
 
@@ -1059,14 +1276,14 @@ $wgFeedDiffCutoff = 32768;
 
 /**
  * Additional namespaces. If the namespaces defined in Language.php and
- * Namespace.php are insufficient,# you can create new ones here, for example,
+ * Namespace.php are insufficient, you can create new ones here, for example,
  * to import Help files in other languages.
  * PLEASE  NOTE: Once you delete a namespace, the pages in that namespace will
  * no longer be accessible. If you rename it, then you can access them through
  * the new namespace name.
- * 
- * Custom namespaces should start at 100 and stop at 255 (hard limit set by
- * database).
+ *
+ * Custom namespaces should start at 100 to avoid conflicting with standard
+ * namespaces, and should always follow the even/odd main/talk pattern.
  */
 #$wgExtraNamespaces =
 #      array(100 => "Hilfe",
@@ -1076,16 +1293,6 @@ $wgFeedDiffCutoff = 32768;
 #            );
 $wgExtraNamespaces = NULL;
 
-/**
- * Enable SOAP interface. Off by default
- * SOAP is a protocoll for remote procedure calls (RPC) using http as
- * middleware. This interface can be used by bots or special clients to receive
- * articles from a wiki.
- * Most bots use the normal HTTP interface and don't use SOAP.
- * If unsure, set to false.
- */
-$wgEnableSOAP = false;
-
 /**
  * Limit images on image description pages to a user-selectable limit. In order
  * to reduce disk usage, limits can only be selected from a list. This is the
@@ -1113,22 +1320,6 @@ $wgThumbLimits = array(
        300
 );
 
-/** Navigation links for the user sidebar.
- * 'text' is the name of the MediaWiki message that contains the label of this link
- * 'href' is the name of the MediaWiki message that contains the link target of this link.
- *        Link targets starting with http are considered remote links. Ones not starting with
- *        http are considered as names of local wiki pages.
- */
-$wgNavigationLinks = array (
-       array( 'text'=>'mainpage',      'href'=>'mainpage' ),
-       array( 'text'=>'portal',        'href'=>'portal-url' ),
-       array( 'text'=>'currentevents', 'href'=>'currentevents-url' ),
-       array( 'text'=>'recentchanges', 'href'=>'recentchanges-url' ),
-       array( 'text'=>'randompage',    'href'=>'randompage-url' ),
-       array( 'text'=>'help',          'href'=>'helppage' ),
-       array( 'text'=>'sitesupport',   'href'=>'sitesupport-url' ),
-);
-
 /**
  *  On  category pages, show thumbnail gallery for images belonging to that
  * category instead of listing them as articles.
@@ -1167,15 +1358,6 @@ $wgBrowserBlackList = array(
 # $wgLocaltimezone = 'CET';
 $wgLocaltimezone = null;
 
-/**
- * User level management
- * The number is the database id of a group you want users to be attached by
- * default. A better interface should be coded [av]
- */
-$wgAnonGroupId = 1;
-$wgLoggedInGroupId = 2;
-$wgSysopGroupId = 3;
-$wgBureaucratGroupId = 4;
 
 /**
  * When translating messages with wfMsg(), it is not always clear what should be
@@ -1208,7 +1390,7 @@ $wgAuth = null;
  *     $wgHooks['event_name'][] = array($function, $data);
  * or:
  *     $wgHooks['event_name'][] = array($object, 'method');
- */    
+ */
 $wgHooks = array();
 
 /**
@@ -1229,7 +1411,7 @@ $wgDisableInternalSearch = false;
  * Set this to a URL to forward search requests to some external location.
  * If the URL includes '$1', this will be replaced with the URL-encoded
  * search term.
- * 
+ *
  * For example, to forward to Google you'd have something like:
  * $wgSearchForwardUrl = 'http://www.google.com/search?q=$1' .
  *                       '&domains=http://example.com' .
@@ -1262,15 +1444,73 @@ $wgUseExternalEditor = true;
 
 $wgSortSpecialPages = true;
 
+/**
+ * Specify the name of a skin that should not be presented in the
+ * list of available skins.
+ * Use for blacklisting a skin which you do not want to remove
+ * from the .../skins/ directory
+ */
+$wgSkipSkin = '';
+$wgSkipSkins = array(); # More of the same
+
 /**
  * Array of disabled article actions, e.g. view, edit, dublincore, delete, etc.
  */
 $wgDisabledActions = array();
 
+/**
+ * Disable redirects to special pages and interwiki redirects, which use a 302 and have no "redirected from" link
+ */
+$wgDisableHardRedirects = false;
+
 /**
  * Use http.dnsbl.sorbs.net to check for open proxies
  */
-$wgEnableSorbs = true;
+$wgEnableSorbs = false;
+
+/**
+ * Use opm.blitzed.org to check for open proxies.
+ * Not yet actually used.
+ */
+$wgEnableOpm = false;
+
+/**
+ * Proxy whitelist, list of addresses that are assumed to be non-proxy despite what the other
+ * methods might say
+ */
+$wgProxyWhitelist = array();
+
+/**
+ * Simple rate limiter options to brake edit floods.
+ * Maximum number actions allowed in the given number of seconds;
+ * after that the violating client receives HTTP 500 error pages
+ * until the period elapses.
+ *
+ * array( 4, 60 ) for a maximum of 4 hits in 60 seconds.
+ *
+ * This option set is experimental and likely to change.
+ * Requires memcached.
+ */
+$wgRateLimits = array(
+       'edit' => array(
+               'anon'   => null, // for any and all anonymous edits (aggregate)
+               'user'   => null, // for each logged-in user
+               'newbie' => null, // for each recent account; overrides 'user'
+               'ip'     => null, // for each anon and recent account
+               'subnet' => null, // ... with final octet removed
+               ),
+       'move' => array(
+               'user'   => null,
+               'newbie' => null,
+               'ip'     => null,
+               'subnet' => null,
+               ),
+       );
+
+/**
+ * Set to a filename to log rate limiter hits.
+ */
+$wgRateLimitLog = null;
 
 /**
  * On Special:Unusedimages, consider images "used", if they are put
@@ -1278,19 +1518,54 @@ $wgEnableSorbs = true;
  */
 $wgCountCategorizedImagesAsUsed = false;
 
-/** 
- * External stores allow including content 
+/**
+ * External stores allow including content
  * from non database sources following URL links
- * 
+ *
  * Short names of ExternalStore classes may be specified in an array here:
  * $wgExternalStores = array("http","file","custom")...
- * 
+ *
  * CAUTION: Access to database might lead to code execution
  */
 $wgExternalStores = false;
 
+/**
+* list of trusted media-types and mime types.
+* Use the MEDIATYPE_xxx constants to represent media types.
+* This list is used by Image::isSafeFile
+*
+* Types not listed here will have a warning about unsafe content
+* displayed on the images description page. It would also be possible
+* to use this for further restrictions, like disabling direct
+* [[media:...]] links for non-trusted formats.
+*/
+$wgTrustedMediaFormats= array(
+       MEDIATYPE_BITMAP, //all bitmap formats
+       MEDIATYPE_AUDIO,  //all audio formats
+       MEDIATYPE_VIDEO,  //all plain video formats
+       "image/svg",  //svg (only needed if inline rendering of svg is not supported)
+       "application/pdf",  //PDF files
+       #"application/x-shockwafe-flash", //flash/shockwave movie
+);
+
+/**
+ * Allow special page inclusions such as {{Special:Allpages}}
+ */
+$wgAllowSpecialInclusion = true;
+
+/**
+ * Timeout for HTTP requests done via CURL
+ */
+$wgHTTPTimeout = 3;
+
+/**
+ * Proxy to use for CURL requests.
+ */
+$wgHTTPProxy = false;
+
+/**
+ * Enable interwiki transcluding.  Only when iw_trans=1.
+ */
+$wgEnableScaryTranscluding = false;
 
-} else {
-       die();
-}
 ?>