* (bug 2421) cleanup $wgNamespacesWithSubpages,
[lhc/web/wiklou.git] / includes / DefaultSettings.php
index 07ef7f3..4911d3e 100644 (file)
  */
 
 # 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" );
+}
 
 /** MediaWiki version number */
-$wgVersion                     = '1.5pre-alpha';
+$wgVersion                     = '1.5alpha2';
 
 /** Name of the site. It must be changed in LocalSettings.php */
 $wgSitename         = 'MediaWiki';
@@ -24,15 +26,19 @@ $wgSitename         = 'MediaWiki';
 /** Will be same as you set @see $wgSitename */
 $wgMetaNamespace    = FALSE;
 
-/** URL of the serve. It will be automaticly build including https mode */
+
+/** URL of the server. It will be automaticly build including https mode */
 $wgServer = '';
 
 if( isset( $_SERVER['SERVER_NAME'] ) ) {
        $wgServerName = $_SERVER['SERVER_NAME'];
 } elseif( isset( $_SERVER['HOSTNAME'] ) ) {
        $wgServerName = $_SERVER['HOSTNAME'];
+} elseif( isset( $_SERVER['HTTP_HOST'] ) ) {
+       $wgServerName = $_SERVER['HTTP_HOST'];
+} elseif( isset( $_SERVER['SERVER_ADDR'] ) ) {
+       $wgServerName = $_SERVER['SERVER_ADDR'];
 } else {
-       # FIXME: Fall back on... something else?
        $wgServerName = 'localhost';
 }
 
@@ -40,7 +46,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);
@@ -90,7 +100,6 @@ $wgStylePath   = "{$wgScriptPath}/skins";
  */
 $wgStyleDirectory = "{$IP}/skins";
 $wgStyleSheetPath = &$wgStylePath;
-$wgStyleSheetDirectory = &$wgStyleDirectory;
 $wgArticlePath      = "{$wgScript}?title=$1";
 $wgUploadPath       = "{$wgScriptPath}/upload";
 $wgUploadDirectory     = "{$IP}/upload";
@@ -102,6 +111,127 @@ $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.
+* @global string $wgMimeTypeFile
+*/
+$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;
+
+/**
+ * To set 'pretty' URL paths for actions other than
+ * plain page views, add to this array. For instance:
+ *   'edit' => "$wgScriptPath/edit/$1"
+ *
+ * There must be an appropriate script or rewrite rule
+ * in place to handle these URLs.
+ */
+$wgActionPaths = array();
+
 /**
  * If you operate multiple wikis, you can define a shared upload path here.
  * Uploads to this wiki will NOT be put there - they will be put into
@@ -114,8 +244,31 @@ $wgUploadBaseUrl    = "";
 $wgUseSharedUploads = false;
 /** Full path on the web server where shared uploads can be found */
 $wgSharedUploadPath = "http://commons.wikimedia.org/shared/images";
-/** Path on the file system where shared uploads can be found */
+/** Path on the file system where shared uploads can be found. */
 $wgSharedUploadDirectory = "/var/www/wiki3/images";
+/** DB name with metadata about shared directory. Set this to false if the uploads do not come from a wiki. */
+$wgSharedUploadDBname = false;
+/** Cache shared metadata in memcached. Don't do this if the commons wiki is in a different memcached domain */
+$wgCacheSharedUploads = true;
+
+/**
+ * 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: 
+ *   $wgThumbnailScriptPath = "{$wgScriptPath}/thumb.php";
+ */
+$wgThumbnailScriptPath = false;
+$wgSharedThumbnailScriptPath = false;
 
 /**
  * Set the following to false especially if you have a set of files that need to
@@ -124,9 +277,6 @@ $wgSharedUploadDirectory = "/var/www/wiki3/images";
  */
 $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.
@@ -214,10 +364,11 @@ $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         = ''; 
 /** Database schema
@@ -240,18 +391,21 @@ $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)
+#   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; 
@@ -259,77 +413,65 @@ $wgDBservers              = false;
 /** How long to wait for a slave to catch up to the master */ 
 $wgMasterWaitTimeout = 10;
 
-# Sysop SQL queries
-#   The sql user shouldn't have too many rights other the database, restrict
-#   it to SELECT only on 'cur' table for example
-#
-$wgAllowSysopQueries = false; # Dangerous if not configured properly.
-$wgDBsqluser           = 'sqluser';
-$wgDBsqlpassword       = 'sqlpass';
-$wgDBpassword       = 'userpass';
-$wgSqlLogFile           = "{$wgUploadDirectory}/sqllog_mFhyRe6";
-$wgDBerrorLog          = false; # File to log MySQL errors to
-
-# wgDBminWordLen :
-#  MySQL 3.x : used to discard words that MySQL will not return any results for
-#  shorter values configure mysql directly
-#  MySQL 4.x : ignore it and configure mySQL
-# See: http://dev.mysql.com/doc/mysql/en/Fulltext_Fine-tuning.html
-$wgDBminWordLen     = 4;
-$wgDBtransactions      = false; # Set to true if using InnoDB tables
-$wgDBmysql4                    = false; # Set to true to use enhanced fulltext search
-$wgSqlTimeout          = 30;
+/** File to log MySQL errors to */
+$wgDBerrorLog          = false;
 
-$wgBufferSQLResults     = true; # use buffered queries by default
+/**
+ * wgDBminWordLen :
+ * MySQL 3.x : used to discard words that MySQL will not return any results for
+ * shorter values configure mysql directly.
+ * MySQL 4.x : ignore it and configure mySQL
+ * See: http://dev.mysql.com/doc/mysql/en/Fulltext_Fine-tuning.html
+ */
+$wgDBminWordLen     = 4;
+/** Set to true if using InnoDB tables */
+$wgDBtransactions      = false;
+/** Set to true to use enhanced fulltext search */
+$wgDBmysql4                    = false;
 
-# Other wikis on this site, can be administered from a single developer account
-# Array, interwiki prefix => database name
+/**
+ * Other wikis on this site, can be administered from a single developer
+ * account.
+ * Array, interwiki prefix => database name
+ */ 
 $wgLocalDatabases   = array();
 
+/**
+ * Object cache settings
+ * See Defines.php for types
+ */
+$wgMainCacheType = CACHE_NONE;
+$wgMessageCacheType = CACHE_ANYTHING;
+$wgParserCacheType = CACHE_ANYTHING;
 
-# Memcached settings
-# See docs/memcached.doc
-#
-$wgMemCachedDebug   = false; # Will be set to false in Setup.php, if the server isn't working
-$wgUseMemCached     = false;
-$wgMemCachedServers = array( '127.0.0.1:11000' );
-$wgMemCachedDebug   = false;
 $wgSessionsInMemcached = false;
 $wgLinkCacheMemcached = false; # Not fully tested
 
 /**
- * Turck MMCache shared memory
- * You can use this for persistent caching where your wiki runs on a single 
- * server. Enabled by default if Turck is installed. Mutually exclusive with
- * memcached, memcached is used if both are specified.
- *
- * @global bool $wgUseTurckShm Enable or disabled Turck MMCache
+ * Memcached-specific settings
+ * See docs/memcached.txt
  */
-$wgUseTurckShm      = false;
+$wgMemCachedDebug   = false; # Will be set to false in Setup.php, if the server isn't working
+$wgMemCachedServers = array( '127.0.0.1:11000' );
+$wgMemCachedDebug   = false;
+
 
 
 # Language settings
 #
-/**
- * Site language code
- * Default to 'en'. Should be one of ./language/Language(.*).php
- * @global string $wgLanguageCode
- */
+/** Site language code, should be one of ./languages/Language(.*).php */
 $wgLanguageCode     = 'en';
 
-/**
- * Filename of a language file generated by dumpMessages.php
- * @global string|false $wgLanguageFile (default:false)
- */
-$wgLanguageFile     = false;
-/**
- * Treat language links as magic connectors, not inline links
- * @global bool $wgInterwikiMagic (default:true)
- */
+/** Treat language links as magic connectors, not inline links */
 $wgInterwikiMagic      = true;
-$wgInputEncoding       = 'ISO-8859-1'; # LanguageUtf8.php normally overrides this
-$wgOutputEncoding      = 'ISO-8859-1'; # unless you set the next option to true:
-$wgUseLatin1           = false; # Enable ISO-8859-1 compatibility mode
+
+/** 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'; 
 $wgEditEncoding                = '';
 
 # Set this to eg 'ISO-8859-1' to perform character set
@@ -342,15 +484,40 @@ $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';
-$wgUseDynamicDates  = false; # Enable to allow rewriting dates in page text
-                                                        # DOES NOT FORMAT CORRECTLY FOR MOST LANGUAGES
-$wgAmericanDates    = false; # Enable for English module to print dates
-                                                        # as eg 'May 12' instead of '12 May'
-$wgTranslateNumerals = true; # For Hindi and Arabic use local numerals instead
-                             # of Western style (0-9) numerals in interface.
+
+/** Enable to allow rewriting dates in page text.
+ * DOES NOT FORMAT CORRECTLY FOR MOST LANGUAGES */
+$wgUseDynamicDates  = false; 
+/** Enable dates like 'May 12' instead of '12 May', this only takes effect if
+ * the interface is set to English
+ */
+$wgAmericanDates    = false; 
+/**
+ * For Hindi and Arabic use local numerals instead of Western style (0-9)
+ * numerals in interface.
+ */
+$wgTranslateNumerals = true;
 
 
 # Translation using MediaWiki: namespace
@@ -358,7 +525,6 @@ $wgTranslateNumerals = true; # For Hindi and Arabic use local numerals instead
 # Interface messages will be get 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
@@ -366,6 +532,10 @@ $wgPartialMessageCache = false;
 # code, so that if it breaks, only zh will be affected
 $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
 # use it unless for testing
@@ -373,12 +543,36 @@ $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
 #
 
 $wgLocalInterwiki   = 'w';
 $wgInterwikiExpiry = 10800; # Expiry time for cache of interwiki table
 
+/**
+ * If local interwikis are set up which allow redirects,
+ * set this regexp to restrict URLs which will be displayed
+ * as 'redirected from' links.
+ *
+ * It might look something like this:
+ * $wgRedirectSources = '!^https?://[a-z-]+\.wikipedia\.org/!';
+ *
+ * Leave at false to avoid displaying any incoming redirect markers.
+ * This does not affect intra-wiki redirects, which don't change
+ * the URL.
+ */
+$wgRedirectSources = false;
+
+
 $wgShowIPinHeader      = true; # For non-logged in users
 $wgMaxNameChars     = 32; # Maximum number of bytes in username
 
@@ -386,7 +580,6 @@ $wgExtraSubtitle    = '';
 $wgSiteSupportPage     = ''; # A page where you users can receive donations
 
 $wgReadOnlyFile         = "{$wgUploadDirectory}/lock_yBgMBwiR";
-$wgUseData = false ;
 
 /**
  * The debug log file should be not be publicly accessible if it is used, as it
@@ -404,9 +597,12 @@ $wgReadOnly             = false;
 $wgLogQueries           = false;
 $wgDebugDumpSql         = false;
 
-/** Whether to disable automatic generation of "we're sorry, but there has been
- * a database error" pages. */
-$wgIgnoreSQLErrors      = false;
+/**
+ * Whether to show "we're sorry, but there has been a database error" pages.
+ * Displaying errors aids in debugging, but may display information useful
+ * to an attacker.
+ */
+$wgShowSQLErrors        = false;
 
 # Should [[Category:Dog]] on a page associate it with the
 # category "Dog"? (a link to that category page will be
@@ -420,10 +616,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
@@ -434,6 +626,18 @@ $wgUseOldExistenceCheck = false;  # use old prefill link method, for debugging o
  */
 $wgEnableParserCache = true;
 
+/**
+ * Under which condition should a page in the main namespace be counted
+ * as a valid article? If $wgUseCommaCount is set to true, it will be
+ * counted if it contains at least one comma. If it is set to false
+ * (default), it will only be counted if it contains at least one [[wiki
+ * link]]. See http://meta.wikimedia.org/wiki/Help:Article_count
+ *
+ * Retroactively changing this variable will not affect
+ * the existing count (cf. maintenance/recount.sql).
+*/
+$wgUseCommaCount = false;
+
 /**#@-*/
 
 /**
@@ -451,235 +655,369 @@ $wgHitcounterUpdateFreq = 1;
 # 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        = false; # Allow sysops to ban logged-in users
-$wgSysopRangeBans              = false; # Allow sysops to ban IP ranges
-$wgDefaultBlockExpiry  = '24 hours'; # default expiry time
-                                # strtotime format, or "infinite" for an infinite block
+$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.
+ */
+$wgGroupPermissions = array(
+       '*'          => array( 'read', 'createaccount' ),
+       'user'       => array( 'read', 'move' ),
+       
+       'bot'        => array( 'bot' ),
+       'sysop'      => array( 'createaccount', 'patrol', 'protect', 'delete',
+                              'rollback', 'block', 'editinterface' ),
+       'bureaucrat' => array( 'userrights' ),
+       'developer'  => array( 'siteadmin' ),
+);
+
+
+
 # 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; # Automatic open proxy test on edit
+
+/**
+ * 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;
+/** Port we want to scan for a proxy */
 $wgProxyPorts = array( 80, 81, 1080, 3128, 6588, 8000, 8080, 8888, 65506 );
+/** Script used to scan */
 $wgProxyScriptPath = "$IP/proxy_check.php";
+/** */
 $wgProxyMemcExpiry = 86400;
-$wgProxyKey = 'W1svekXc5u6lZllTZOwnzEk1nbs';
-$wgProxyList = array();  # big list of banned IP addresses, in the keys not the values
-
-# Number of accounts each IP address may create, 0 to disable.
-# Requires memcached
+/** This should always be customised in LocalSettings.php */
+$wgSecretKey = false;
+/** big list of banned IP addresses, in the keys not the values */
+$wgProxyList = array();
+/** deprecated */
+$wgProxyKey = false;
+
+/** Number of accounts each IP address may create, 0 to disable.
+ * Requires memcached */
 $wgAccountCreationThrottle = 0;
 
-
 # Client-side caching:
-$wgCachePages       = true; # Allow client-side caching of pages
 
-# Set this to current time to invalidate all prior cached pages.
-# Affects both client- and server-side caching.
+/** Allow client-side caching of pages */
+$wgCachePages       = true;
+
+/**
+ * Set this to current time to invalidate all prior cached pages. Affects both
+ * client- and server-side caching.
+ */
 $wgCacheEpoch = '20030516000000';
 
 
 # Server-side caching:
-#  This will cache static pages for non-logged-in users
-#  to reduce database traffic on public sites.
-#  Must set $wgShowIPinHeader = false
+
+/**
+ * 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";
 
-# When using the file cache, we can store the cached HTML gzipped to save disk
-# 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.
+/**
+ * When using the file cache, we can store the cached HTML gzipped to save disk
+ * 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;
 
-
 # Email notification settings
 #
 
-# Program to run when the email is actually sent out. You might want to make
-# your server beep for example with:
-#
-#  $wgEmailNotificationSystembeep = '/usr/bin/beep -f 4000 -l 20 &';
-#
-# Usermailer.php will make a system() call with exactly that string as parameter
-$wgEmailNotificationSystembeep = '';
-
-# For email notification on page changes
+/** 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)
 
 
-
-# Show watching users in recent changes, watchlist and page history views
+/** Show watching users in recent changes, watchlist and page history views */
 $wgRCShowWatchingUsers                                 = false; # UPO
-# Show watching users in Page views
+/** Show watching users in Page views */
 $wgPageShowWatchingUsers                       = false;
-# Show "Updated (since my last visit)" marker in RC view, watchlist and history view for watched pages with new changes
-$wgShowUpdatedMarker                           = true; # UPO
+/**
+ * Show "Updated (since my last visit)" marker in RC view, watchlist and history
+ * view for watched pages with new changes */
+$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;
+/** Enable/disable Squid */
+$wgUseSquid = false;
  
-# If you run Squid3 with ESI support, enable this (default:false):
- $wgUseESI = false;
+/** If you run Squid3 with ESI support, enable this (default:false): */
+$wgUseESI = false;
  
-# Internal server name as known to Squid, if different
+/** Internal server name as known to Squid, if different */
 # $wgInternalServer = 'http://yourinternal.tld:8000';
- $wgInternalServer = $wgServer;
+$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 the Squid config.
-# 18000 seconds = 5 hours, more cache hits with 2678400 = 31 days
- $wgSquidMaxage = 18000;
+/**
+ * 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
+ * the Squid config. 18000 seconds = 5 hours, more cache hits with 2678400 = 31
+ * days
+ */
+$wgSquidMaxage = 18000;
  
-# A list of proxy servers (ips if possible) to purge on changes
-# don't specify ports here (80 is default)
+/**
+ * A list of proxy servers (ips if possible) to purge on changes don't specify
+ * ports here (80 is default)
+ */
 # $wgSquidServers = array('127.0.0.1');
+$wgSquidServers = array();
 $wgSquidServersNoPurge = array();
 
-# Maximum number of titles to purge in any one client operation
+/** Maximum number of titles to purge in any one client operation */
 $wgMaxSquidPurgeTitles = 400;
 
+/** HTCP multicast purging */
+$wgHTCPPort = 4827;
+$wgHTCPMulticastTTL = 1;
+# $wgHTCPMulticastAddress = "224.0.0.85";
 
 # Cookie settings:
-#   Set to set an explicit domain on the login cookies
-#   eg, "justthis.domain.org" or ".any.subdomain.net"
+#
+/**
+ * Set to set an explicit domain on the login cookies eg, "justthis.domain. org"
+ * or ".any.subdomain.net"
+ */
 $wgCookieDomain = '';
 $wgCookiePath = '/';
 $wgDisableCookieCheck = false;
 
-# Whether to allow inline image pointing to other websites
+/**  Whether to allow inline image pointing to other websites */
 $wgAllowExternalImages = true;
 
-$wgMiserMode = false; # Disable database-intensive features
-$wgDisableQueryPages = false; # Disable all query pages if miser mode is on, not just some
-$wgUseWatchlistCache = false; # Generate a watchlist once every hour or so
-$wgWLCacheTimeout = 3600;     # The hour or so mentioned above
+/** Disable database-intensive features */
+$wgMiserMode = false;
+/** Disable all query pages if miser mode is on, not just some */
+$wgDisableQueryPages = false;
+/** Generate a watchlist once every hour or so */
+$wgUseWatchlistCache = false;
+/** The hour or so mentioned above */
+$wgWLCacheTimeout = 3600;
 
-# To use inline TeX, you need to compile 'texvc' (in the 'math' subdirectory
-# of the MediaWiki package and have latex, dvips, gs (ghostscript), and
-# convert (ImageMagick) installed and available in the PATH.
-# Please see math/README for more information.
+/**
+ * To use inline TeX, you need to compile 'texvc' (in the 'math' subdirectory of
+ * the MediaWiki package and have latex, dvips, gs (ghostscript), andconvert
+ * (ImageMagick) installed and available in the PATH.
+ * Please see math/README for more information.
+ */
 $wgUseTeX = false;
-$wgTexvc = './math/texvc'; # Location of the texvc binary
+/** Location of the texvc binary */
+$wgTexvc = './math/texvc';
 
+#
 # Profiling / debugging
-$wgProfiling = false; # Enable for more detailed by-function times in debug log
-$wgProfileLimit = 0.0; # Only record profiling info for pages that took longer than this
-$wgProfileOnly = false; # Don't put non-profiling info into log file
-$wgProfileToDatabase = false; # Log sums from profiling into "profiling" table in db.
-$wgProfileSampleRate = 1; # Only profile every n requests when profiling is turned on
-$wgProfileCallTree = false; # If true, print a raw call tree instead of per-function report
+#
 
-$wgDebugProfiling = false; # Detects non-matching wfProfileIn/wfProfileOut calls
-$wgDebugFunctionEntry = 0; # Output debug message on every wfProfileIn/wfProfileOut
-$wgDebugSquid = false; # Lots of debugging output from SquidUpdate.php
+/** Enable for more detailed by-function times in debug log */
+$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; 
+/** 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; 
+
+/** Detects non-matching wfProfileIn/wfProfileOut calls */
+$wgDebugProfiling = false;
+/** Output debug message on every wfProfileIn/wfProfileOut */
+$wgDebugFunctionEntry = 0;
+/** Lots of debugging output from SquidUpdate.php */
+$wgDebugSquid = false;
 
 $wgDisableCounters = false;
 $wgDisableTextSearch = false;
-$wgDisableSearchUpdate = false; # If you've disabled search semi-permanently, this also disables updates to the table. If you ever re-enable, be sure to rebuild the search table.
-$wgDisableUploads = true; # Uploads have to be specially set up to be secure
-$wgRemoteUploads = false; # 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.
+/**
+ * If you've disabled search semi-permanently, this also disables updates to the
+ * table. If you ever re-enable, be sure to rebuild the search table.
+ */
+$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; 
 $wgDisableAnonTalk = false;
+/**
+ * Do DELETE/INSERT for link updates instead of incremental
+ */
+$wgUseDumbLinkUpdate = false; 
 
-# Path to the GNU diff3 utility. If the file doesn't exist,
-# edit conflicts will fall back to the old behaviour (no merging).
-$wgDiff3 = '/usr/bin/diff3';
+/**
+ * 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
+ * fall back to the old behaviour (no merging).
+ */
+$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 *but will not be readable at all* if zlib support is not available.
+/** 
+ * 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
+ * *but will not be readable at all* if zlib support is not available.
+ */
 $wgCompressRevisions = false;
 
-# This is the list of preferred extensions for uploading files. Uploading
-# files with extensions not in this list will trigger a warning.
-$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ogg' );
+/**
+ * This is the list of preferred extensions for uploading files. Uploading files
+ * with extensions not in this list will trigger a warning.
+ */
+$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' );
 
-# Files with these extensions will never be allowed as uploads.
+/** 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
        'shtml', 'jhtml', 'pl', 'py', 'cgi',
        # 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.
+/** This is a flag to determine whether or not to check file extensions on upload. */
 $wgCheckFileExtensions = true;
 
-# If this is turned off, users may override the warning for files not
-# covered by $wgFileExtensions.
+/**
+ * If this is turned off, users may override the warning for files not covered
+ * by $wgFileExtensions.
+ */
 $wgStrictFileExtensions = true;
 
-# Warn if uploaded files are larger than this
-$wgUploadSizeWarning = 150000;
+/** Warn if uploaded files are larger than this */
+$wgUploadSizeWarning = 150 * 1024;
 
-$wgPasswordSalt = true; # For compatibility with old installations set to false
+/** For compatibility with old installations set to false */
+$wgPasswordSalt = true; 
 
-# Which namespaces should support subpages?
-# See Language.php for a list of namespaces.
-#
-$wgNamespacesWithSubpages = array( -1 => 0, 0 => 0, 1 => 1,
-  2 => 1, 3 => 1, 4 => 0, 5 => 1, 6 => 0, 7 => 1, 8 => 0, 9 => 1, 10 => 0, 11 => 1);
+/** Which namespaces should support subpages?
+ * See Language.php for a list of namespaces.
+ */
+$wgNamespacesWithSubpages = array(
+       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_MAIN           => true,
+);
 
-$wgNamespacesToBeSearchedDefault = array( -1 => 0, 0 => 1, 1 => 0,
-  2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 0, 11 => 1 );
+/** If set, a bold ugly notice will show up at the top of every page. */
+$wgSiteNotice = '';
 
-# If set, a bold ugly notice will show up at the top of every page.
-$wgSiteNotice = "";
 
-## Set $wgUseImageResize to true if you want to enable dynamic
-## server side image resizing ("Thumbnails")
-# 
+#
+# Images settings
+#
+
+/** dynamic server side image resizing ("Thumbnails") */
 $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.
-##
-## Set $wgUseImageMagick to true to use Image Magick instead
-## of the builtin functions
-#
+/**
+ * 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;
+/** The convert command shipped with ImageMagick */
 $wgImageMagickConvertCommand    = '/usr/bin/convert';
 
 # Scalable Vector Graphics (SVG) may be uploaded as images.
@@ -693,22 +1031,35 @@ $wgSVGConverters = array(
        'inkscape' => '$path/inkscape -z -w $width -f $input -e $output',
        'batik' => 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input',
        );
-$wgSVGConverter = 'ImageMagick'; # Pick one of the above
-$wgSVGConverterPath = ''; # If not in the executable PATH, specify
+/** Pick one of the above */
+$wgSVGConverter = 'ImageMagick';
+/** If not in the executable PATH, specify */
+$wgSVGConverterPath = '';
 
+/** Set $wgCommandLineMode if it's not set already, to avoid notices */
 if( !isset( $wgCommandLineMode ) ) {
        $wgCommandLineMode = false;
 }
 
-/** Show seconds in Recent Changes */
-$wgRCSeconds = false;
+
+#
+# Recent changes settings
+#
 
 /** Log IP addresses in the recentchanges table */
 $wgPutIPinRC = false;
 
-# Recentchanges items are periodically purged;
-# entries older than this many seconds will go.
-$wgRCMaxAge = 7 * 24 * 3600; # our one week cutoff
+/**
+ * Recentchanges items are periodically purged; entries older than this many
+ * seconds will go.
+ * For one week : 7 * 24 * 3600
+ */
+$wgRCMaxAge = 7 * 24 * 3600;
+
+
+#
+# Copyright and credits settings
+#
 
 /** RDF metadata toggles */
 $wgEnableDublinCoreRdf = false;
@@ -732,6 +1083,20 @@ $wgUseCopyrightUpload = false;
  * information values are not empty. */
 $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
+ * database hits, which can have a not insignificant impact on performance for
+ * large wikis.
+ */
+$wgMaxCredits = 0;
+
+/** If there are more than $wgMaxCredits authors, show $wgMaxCredits of them.
+ * Otherwise, link to a separate credits page. */
+$wgShowCreditsIfMax = true;
+
+
 
 /**
  * Set this to false to avoid forcing the first letter of links to capitals.
@@ -748,18 +1113,7 @@ $wgCapitalLinks = true;
  */
 $wgImportSources = array();
 
-/**
- * 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
- * database hits, which can have a not insignificant impact on performance for
- * large wikis.
- */
-$wgMaxCredits = 0;
 
-/** If there are more than $wgMaxCredits authors, show $wgMaxCredits of them.
- * Otherwise, link to a separate credits page. */
-$wgShowCreditsIfMax = true;
 
 /** Text matching this regular expression will be recognised as spam
  * See http://en.wikipedia.org/wiki/Regular_expression */
@@ -790,22 +1144,30 @@ $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'; 
 $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';
 
-# Settings added to this array will override the language globals for
-# the user preferences used by anonymous visitors and newly created
-# accounts. (See names and sample values in languages/Language.php)
-#
-# For instance, to disable section editing links:
-#   $wgDefaultUserOptions['editsection'] = 0;
-#
+/**
+ * Settings added to this array will override the language globals for the user
+ * preferences used by anonymous visitors and newly created accounts. (See names
+ * and sample values in languages/Language.php)
+ * For instance, to disable section editing links:
+ *  $wgDefaultUserOptions ['editsection'] = 0;
+ * 
+ */
 $wgDefaultUserOptions = array();
 
 /** Whether or not to allow and use real name fields. Defaults to true. */
@@ -818,11 +1180,19 @@ $wgUseXMLparser = false ;
 $wgSkinExtensionFunctions = array();
 $wgExtensionFunctions = array();
 
-/** Allow user Javascript page? */
-$wgAllowUserJs = true;
+/**
+ * Allow user Javascript page?
+ * This enables a lot of neat customizations, but may
+ * increase security risk to users and server load.
+ */
+$wgAllowUserJs = false;
 
-/** Allow user Cascading Style Sheets (CSS)? */
-$wgAllowUserCss = true;
+/**
+ * Allow user Cascading Style Sheets (CSS)?
+ * This enables a lot of neat customizations, but may
+ * increase security risk to users and server load.
+ */
+$wgAllowUserCss = false;
 
 /** Use the site's Javascript page? */
 $wgUseSiteJs = true;
@@ -839,12 +1209,6 @@ $wgAllowPageInfo = false;
 /** Maximum indent level of toc. */
 $wgMaxTocLevel = 999;
 
-/** Recognise longitude/latitude coordinates */
-$wgUseGeoMode = false;
-
-/** Validation for print or other production versions */
-$wgUseValidation = false;
-
 /** Use external C++ diff engine (module wikidiff from the extensions package) */
 $wgUseExternalDiffEngine = false;
 
@@ -873,8 +1237,8 @@ $wgFeedDiffCutoff = 32768;
  * 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",
@@ -884,16 +1248,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
@@ -907,21 +1261,18 @@ $wgImageLimits = array (
        array(1280,1024),
        array(10000,10000) );
 
-
-/** 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' ),
+/**
+ * Adjust thumbnails on image pages according to a user setting. In order to
+ * reduce disk usage, the values can only be selected from a list. This is the
+ * list of settings the user can choose from:
+ */
+$wgThumbLimits = array(
+       120,
+       150,
+       180,
+       200,
+       250,
+       300
 );
 
 /**
@@ -935,9 +1286,21 @@ $wgCategoryMagicGallery = true;
  * Contains a list of regexps : "/regexp/"  matching problematic browsers
  */
 $wgBrowserBlackList = array(
-       "/Mozilla\/4\.78 \[en\] \(X11; U; Linux/"
-       // FIXME: Add some accurate, true things here
-       );
+       "/Mozilla\/4\.78 \[en\] \(X11; U; Linux/",
+       /**
+        * MSIE on Mac OS 9 is teh sux0r, converts þ to <thorn>, ð to <eth>, Þ to <THORN> and Ð to <ETH>
+        *
+        * Known useragents:
+        * - Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC)
+        * - Mozilla/4.0 (compatible; MSIE 5.15; Mac_PowerPC)
+        * - Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)
+        * - [...]
+        *
+        * @link http://en.wikipedia.org/w/index.php?title=User%3A%C6var_Arnfj%F6r%F0_Bjarmason%2Ftestme&diff=12356041&oldid=12355864
+        * @link http://en.wikipedia.org/wiki/Template%3AOS9
+        */
+       "/Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/"
+);
 
 /**
  * Fake out the timezone that the server thinks it's in. This will be used for
@@ -950,15 +1313,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
@@ -1029,7 +1383,130 @@ $wgSearchForwardUrl = null;
  */
 $wgNoFollowLinks = true;
 
-} else {
-       die();
-}
+/**
+ * Specifies the minimal length of a user password. If set to
+ * 0, empty passwords are allowed.
+ */
+$wgMinimalPasswordLength = 0;
+
+/**
+ * Activate external editor interface for files and pages
+ * See http://meta.wikimedia.org/wiki/Help:External_editors
+ */
+$wgUseExternalEditor = true;
+
+/** Whether or not to sort special pages in Special:Specialpages */
+
+$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 = 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
+ * into a category. Default (false) is not to count those as used.
+ */
+$wgCountCategorizedImagesAsUsed = false;
+
+/** 
+ * 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;
+
+
 ?>