Duplicate code
[lhc/web/wiklou.git] / includes / DefaultSettings.php
index 77f8cb1..7e704ce 100644 (file)
@@ -31,7 +31,7 @@ require_once( "$IP/includes/SiteConfiguration.php" );
 $wgConf = new SiteConfiguration;
 
 /** MediaWiki version number */
-$wgVersion                     = '1.13alpha';
+$wgVersion                     = '1.14alpha';
 
 /** Name of the site. It must be changed in LocalSettings.php */
 $wgSitename         = 'MediaWiki';
@@ -162,6 +162,11 @@ $wgTmpDirectory     = false; ///< defaults to "{$wgUploadDirectory}/tmp"
 $wgUploadBaseUrl    = "";
 /**@}*/
 
+/**
+ * Default value for chmoding of new directories.
+ */
+$wgDirectoryMode = 0777;
+
 /**
  * New file storage paths; currently used only for deleted files.
  * Set it like this:
@@ -567,6 +572,12 @@ $wgDBts2schema      = 'public';
 /** To override default SQLite data directory ($docroot/../data) */
 $wgSQLiteDataDir    = '';
 
+/** Default directory mode for SQLite data directory on creation.
+ *  Note that this is different from the default directory mode used
+ *  elsewhere.
+ */
+$wgSQLiteDataDirMode = 0700;
+
 /**
  * Make all database connections secretly go to localhost. Fool the load balancer
  * thinking there is an arbitrarily large cluster of servers to connect to.
@@ -648,7 +659,7 @@ $wgDBservers                = false;
  * $wgDBserver, etc., so overriding it may cause those globals to be ignored.
  *
  * The LBFactory_Multi class is provided for this purpose, please see
- * includes/LBFactory_Multi.php for configuration information.
+ * includes/db/LBFactory_Multi.php for configuration information.
  */
 $wgLBFactoryConf    = array( 'class' => 'LBFactory_Simple' );
 
@@ -856,6 +867,9 @@ $wgCheckSerialized = true;
 /** Whether to enable language variant conversion. */
 $wgDisableLangConversion = false;
 
+/** Whether to enable language variant conversion for links. */
+$wgDisableTitleConversion = false;
+
 /** Default variant code, if false, the default will be the language code */
 $wgDefaultLanguageVariant = false;
 
@@ -918,9 +932,11 @@ $wgRedirectSources = false;
 
 
 $wgShowIPinHeader      = true; # For non-logged in users
-$wgMaxNameChars                = 255;  # Maximum number of bytes in username
 $wgMaxSigChars         = 255;  # Maximum number of Unicode characters in signature
 $wgMaxArticleSize      = 2048; # Maximum article size in kilobytes
+# Maximum number of bytes in username. You want to run the maintenance
+# script ./maintenancecheckUsernames.php once you have changed this value
+$wgMaxNameChars                = 255;
 
 $wgMaxPPNodeCount = 1000000;  # A complexity limit on template expansion
 
@@ -933,6 +949,11 @@ $wgMaxPPNodeCount = 1000000;  # A complexity limit on template expansion
 $wgMaxTemplateDepth = 40;
 $wgMaxPPExpandDepth = 40;
 
+/**
+ * If true, removes (substitutes) templates in "~~~~" signatures.
+ */
+$wgCleanSignatures = true;
+
 $wgExtraSubtitle       = '';
 $wgSiteSupportPage     = ''; # A page where you users can receive donations
 
@@ -1015,6 +1036,12 @@ $wgUseCategoryBrowser   = false;
  */
 $wgEnableParserCache = true;
 
+/**
+ * Append a configured value to the parser cache and the sitenotice key so
+ * that they can be kept separate for some class of activity.
+ */
+$wgRenderHashAppend = '';
+
 /**
  * If on, the sidebar navigation links are cached for users with the
  * current language set. This can save a touch of load on a busy site
@@ -1223,9 +1250,10 @@ $wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop' );
  * Set the minimum permissions required to edit pages in each
  * namespace.  If you list more than one permission, a user must
  * have all of them to edit pages in that namespace.
+ *
+ * Note: NS_MEDIAWIKI is implicitly restricted to editinterface.
  */
 $wgNamespaceProtection = array();
-$wgNamespaceProtection[ NS_MEDIAWIKI ] = array( 'editinterface' );
 
 /**
  * Pages in namespaces in this array can not be used as templates.
@@ -1289,8 +1317,8 @@ $wgAutopromote = array(
  * // Sysops can disable other sysops in an emergency, and disable bots
  * $wgRemoveGroups['sysop'] = array( 'sysop', 'bot' );
  */
-$wgAddGroups = $wgRemoveGroups = array();
-
+$wgAddGroups = array();
+$wgRemoveGroups = array();
 
 /**
  * A list of available rights, in addition to the ones defined by the core.
@@ -1361,7 +1389,7 @@ $wgCacheEpoch = '20030516000000';
  * to ensure that client-side caches don't keep obsolete copies of global
  * styles.
  */
-$wgStyleVersion = '162';
+$wgStyleVersion = '177';
 
 
 # Server-side caching:
@@ -1449,7 +1477,10 @@ $wgRCChangedSizeThreshold                        = -500;
  * view for watched pages with new changes */
 $wgShowUpdatedMarker                           = true;
 
-$wgCookieExpiration = 2592000;
+/**
+ * Default cookie expiration time. Setting to 0 makes all cookies session-only.
+ */
+$wgCookieExpiration = 30*86400;
 
 /** 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
@@ -1520,6 +1551,12 @@ $wgCookiePath = '/';
 $wgCookieSecure = ($wgProto == 'https');
 $wgDisableCookieCheck = false;
 
+/**
+ * Set $wgCookiePrefix to use a custom one. Setting to false sets the default of
+ * using the database name.
+ */
+$wgCookiePrefix = false;
+
 /**
  * Set authentication cookies to HttpOnly to prevent access by JavaScript,
  * in browsers that support this feature. This can mitigates some classes of
@@ -1552,12 +1589,24 @@ $wgAllowExternalImages = false;
 /** If the above is false, you can specify an exception here. Image URLs
   * that start with this string are then rendered, while all others are not.
   * You can use this to set up a trusted, simple repository of images.
+  * You may also specify an array of strings to allow multiple sites
   *
-  * Example:
+  * Examples:
   * $wgAllowExternalImagesFrom = 'http://127.0.0.1/';
+  * $wgAllowExternalImagesFrom = array( 'http://127.0.0.1/', 'http://example.com' );
   */
 $wgAllowExternalImagesFrom = '';
 
+/** If $wgAllowExternalImages is false, you can allow an on-wiki
+ * whitelist of regular expression fragments to match the image URL
+ * against. If the image matches one of the regular expression fragments,
+ * The image will be displayed.
+ *
+ * Set this to true to enable the on-wiki whitelist (MediaWiki:External image whitelist)
+ * Or false to disable it
+ */
+$wgEnableImageWhitelist = true;
 /** Allows to move images and other media files. Experemintal, not sure if it always works */
 $wgAllowImageMoving = false;
 
@@ -1578,10 +1627,20 @@ $wgAllowSlowParserFunctions = false;
  */
 $wgJobClasses = array(
        'refreshLinks' => 'RefreshLinksJob',
+       'refreshLinks2' => 'RefreshLinksJob2',
        'htmlCacheUpdate' => 'HTMLCacheUpdateJob',
        'html_cache_update' => 'HTMLCacheUpdateJob', // backwards-compatible
        'sendMail' => 'EmaillingJob',
        'enotifNotify' => 'EnotifNotifyJob',
+       'fixDoubleRedirect' => 'DoubleRedirectJob',
+);
+
+/**
+ * Additional functions to be performed with updateSpecialPages.
+ * Expensive Querypages are already updated.
+ */
+$wgSpecialPageCacheUpdates = array(
+       'Statistics' => array('SiteStatsUpdate','cacheUpdate')
 );
 
 /**
@@ -1733,6 +1792,11 @@ $wgAntiLockFlags = 0;
  */
 $wgDiff3 = '/usr/bin/diff3';
 
+/**
+ * Path to the GNU diff utility.
+ */
+$wgDiff = '/usr/bin/diff';
+
 /**
  * We can also compress text stored in the 'text' table. If this is set on, new
  * revisions will be compressed on page save if zlib support is available. Any
@@ -1769,7 +1833,10 @@ $wgMimeTypeBlacklist= array(
        # Other types that may be interpreted by some servers
        'text/x-python', 'text/x-perl', 'text/x-bash', 'text/x-sh', 'text/x-csh',
        # Windows metafile, client-side vulnerability on some systems
-       'application/x-msmetafile'
+       'application/x-msmetafile',
+       # A ZIP file may be a valid Java archive containing an applet which exploits the
+       # same-origin policy to steal cookies
+       'application/zip',
 );
 
 /** This is a flag to determine whether or not to check file extensions on upload. */
@@ -1966,11 +2033,23 @@ $wgRC2UDPPort = false;
 $wgRC2UDPPrefix = '';
 $wgRC2UDPOmitBots = false;
 
-# Enable user search in Special:Newpages
-# This is really a temporary hack around an index install bug on some Wikipedias.
-# Kill it once fixed.
+/**
+ * Enable user search in Special:Newpages
+ * This is really a temporary hack around an index install bug on some Wikipedias.
+ * Kill it once fixed.
+ */
 $wgEnableNewpagesUserFilter = true;
 
+/**
+ * Whether to use metadata edition
+ * This will put categories, language links and allowed templates in a separate text box
+ * while editing pages
+ * EXPERIMENTAL
+ */
+$wgUseMetadataEdit = false;
+/** Full name (including namespace) of the page containing templates names that will be allowed as metadata */
+$wgMetadataWhitelist = '';
+
 #
 # Copyright and credits settings
 #
@@ -2056,9 +2135,17 @@ $wgExportMaxHistory = 0;
 $wgExportAllowListContributors = false ;
 
 
-/** Text matching this regular expression will be recognised as spam
- * See http://en.wikipedia.org/wiki/Regular_expression */
-$wgSpamRegex = false;
+/**
+ * Edits matching these regular expressions in body text or edit summary
+ * will be recognised as spam and rejected automatically.
+ *
+ * There's no administrator override on-wiki, so be careful what you set. :)
+ * May be an array of regexes or a single string for backwards compatibility.
+ *
+ * See http://en.wikipedia.org/wiki/Regular_expression
+ */
+$wgSpamRegex = array();
+
 /** Similarly you can get a function to do the job. The function will be given
  * the following args:
  *   - a Title object for the article the edit is made on
@@ -2117,6 +2204,32 @@ $wgValidateAllHtml = false;
 /** See list of skins and their symbolic names in languages/Language.php */
 $wgDefaultSkin = 'monobook';
 
+/**
+ * Optionally, we can specify a stylesheet to use for media="handheld".
+ * This is recognized by some, but not all, handheld/mobile/PDA browsers.
+ * If left empty, compliant handheld browsers won't pick up the skin
+ * stylesheet, which is specified for 'screen' media.
+ *
+ * Can be a complete URL, base-relative path, or $wgStylePath-relative path.
+ * Try 'chick/main.css' to apply the Chick styles to the MonoBook HTML.
+ *
+ * Will also be switched in when 'handheld=yes' is added to the URL, like
+ * the 'printable=yes' mode for print media.
+ */
+$wgHandheldStyle = false;
+
+/**
+ * If set, 'screen' and 'handheld' media specifiers for stylesheets are
+ * transformed such that they apply to the iPhone/iPod Touch Mobile Safari,
+ * which doesn't recognize 'handheld' but does support media queries on its
+ * screen size.
+ *
+ * Consider only using this if you have a *really good* handheld stylesheet,
+ * as iPhone users won't have any way to disable it and use the "grown-up"
+ * styles instead.
+ */
+$wgHandheldForIPhone = false;
+
 /**
  * Settings added to this array will override the default globals for the user
  * preferences used by anonymous visitors and newly created accounts.
@@ -2133,7 +2246,6 @@ $wgDefaultUserOptions = array(
        'contextlines'            => 5,
        'contextchars'            => 50,
        'disablesuggest'          => 0,
-       'ajaxsearch'              => 0,
        'skin'                    => false,
        'math'                    => 1,
        'usenewrc'                => 0,
@@ -2176,6 +2288,7 @@ $wgDefaultUserOptions = array(
        'watchdefault'            => 0,
        'watchmoves'              => 0,
        'watchdeletion'           => 0,
+       'noconvertlink'           => 0,
 );
 
 /** Whether or not to allow and use real name fields. Defaults to true. */
@@ -2309,6 +2422,9 @@ $wgMaxTocLevel = 999;
 /** Name of the external diff engine to use */
 $wgExternalDiffEngine = false;
 
+/** Whether to use inline diff */
+$wgEnableHtmlDiff = false;
+
 /** Use RC Patrolling to check for vandalism */
 $wgUseRCPatrol = true;
 
@@ -2335,6 +2451,13 @@ $wgFeedCacheTimeout = 60;
  * pages larger than this size. */
 $wgFeedDiffCutoff = 32768;
 
+/** Override the site's default RSS/ATOM feed for recentchanges that appears on
+ * every page. Some sites might have a different feed they'd like to promote
+ * instead of the RC feed (maybe like a "Recent New Articles" or "Breaking news" one).
+ * Ex: $wgSiteFeed['format'] = "http://example.com/somefeed.xml"; Format can be one
+ * of either 'rss' or 'atom'.
+ */
+$wgOverrideSiteFeed = array();
 
 /**
  * Additional namespaces. If the namespaces defined in Language.php and
@@ -2419,6 +2542,12 @@ $wgCategoryMagicGallery = true;
  */
 $wgCategoryPagingLimit = 200;
 
+/**
+ * Should the default category sortkey be the prefixed title?
+ * Run maintenance/refreshLinks.php after changing this.
+ */
+$wgCategoryPrefixedDefaultSortkey = true;
+
 /**
  * Browser Blacklist for unicode non compliant browsers
  * Contains a list of regexps : "/regexp/"  matching problematic browsers
@@ -2636,6 +2765,11 @@ $wgLogActions = array(
  */
 $wgLogActionsHandlers = array();
 
+/**
+ * Maintain a log of newusers at Log/newusers?
+ */
+$wgNewUserLog = true;
+
 /**
  * List of special pages, followed by what subtitle they should go under
  * at Special:SpecialPages
@@ -2660,6 +2794,7 @@ $wgSpecialPageGroups = array(
        'Deadendpages'              => 'maintenance',
        'Wantedpages'               => 'maintenance',
        'Wantedcategories'          => 'maintenance',
+       'Wantedfiles'               => 'maintenance',
        'Unwatchedpages'            => 'maintenance',
        'Fewestrevisions'           => 'maintenance',
 
@@ -2711,6 +2846,7 @@ $wgSpecialPageGroups = array(
        'Mytalk'                    => 'redirects',
        'Mycontributions'           => 'redirects',
        'Search'                    => 'redirects',
+       'LinkSearch'                => 'redirects',
 
        'Movepage'                  => 'pagetools',
        'MergeHistory'              => 'pagetools',
@@ -2725,6 +2861,7 @@ $wgSpecialPageGroups = array(
        'Lockdb'                    => 'wiki',
        'Unlockdb'                  => 'wiki',
        'Allmessages'               => 'wiki',
+       'Popularpages'              => 'wiki',
 
        'Specialpages'              => 'other',
        'Blockme'                   => 'other',
@@ -2773,34 +2910,57 @@ $wgNoFollowLinks = true;
 $wgNoFollowNsExceptions = array();
 
 /**
- * Default robot policy.
- * The default policy is to encourage indexing and following of links.
- * It may be overridden on a per-namespace and/or per-page basis.
+ * Default robot policy.  The default policy is to encourage indexing and fol-
+ * lowing of links.  It may be overridden on a per-namespace and/or per-page
+ * basis.
  */
 $wgDefaultRobotPolicy = 'index,follow';
 
 /**
- * Robot policies per namespaces.
- * The default policy is given above, the array is made of namespace
- * constants as defined in includes/Defines.php
+ * Robot policies per namespaces. The default policy is given above, the array
+ * is made of namespace constants as defined in includes/Defines.php.  You can-
+ * not specify a different default policy for NS_SPECIAL: it is always noindex,
+ * nofollow.  This is because a number of special pages (e.g., ListPages) have
+ * many permutations of options that display the same data under redundant
+ * URLs, so search engine spiders risk getting lost in a maze of twisty special
+ * pages, all alike, and never reaching your actual content.
+ *
  * Example:
  *   $wgNamespaceRobotPolicies = array( NS_TALK => 'noindex' );
  */
 $wgNamespaceRobotPolicies = array();
 
 /**
- * Robot policies per article.
- * These override the per-namespace robot policies.
- * Must be in the form of an array where the key part is a properly
- * canonicalised text form title and the value is a robot policy.
+ * Robot policies per article. These override the per-namespace robot policies.
+ * Must be in the form of an array where the key part is a properly canonical-
+ * ised text form title and the value is a robot policy.
  * Example:
- *   $wgArticleRobotPolicies = array( 'Main Page' => 'noindex' );
+ *   $wgArticleRobotPolicies = array( 'Main Page' => 'noindex,follow',
+ *     'User:Bob' => 'index,follow' );
+ * Example that DOES NOT WORK because the names are not canonical text forms:
+ *   $wgArticleRobotPolicies = array(
+ *     # Underscore, not space!
+ *     'Main_Page' => 'noindex,follow',
+ *     # "Project", not the actual project name!
+ *     'Project:X' => 'index,follow',
+ *     # Needs to be "Abc", not "abc" (unless $wgCapitalLinks is false)!
+ *     'abc' => 'noindex,nofollow'
+ *   );
  */
 $wgArticleRobotPolicies = array();
 
 /**
- * Specifies the minimal length of a user password. If set to
- * 0, empty passwords are allowed.
+ * An array of namespace keys in which the __INDEX__/__NOINDEX__ magic words
+ * will not function, so users can't decide whether pages in that namespace are
+ * indexed by search engines.  If set to null, default to $wgContentNamespaces.
+ * Example:
+ *   $wgExemptFromUserRobotsControl = array( NS_MAIN, NS_TALK, NS_PROJECT );
+ */
+$wgExemptFromUserRobotsControl = null;
+
+/**
+ * Specifies the minimal length of a user password. If set to 0, empty pass-
+ * words are allowed.
  */
 $wgMinimalPasswordLength = 0;
 
@@ -2815,9 +2975,8 @@ $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
+ * Specify the name of a skin that should not be presented in the list of a-
+ * vailable skins.  Use for blacklisting a skin which you do not want to remove
  * from the .../skins/ directory
  */
 $wgSkipSkin = '';
@@ -2829,7 +2988,8 @@ $wgSkipSkins = array(); # More of the same
 $wgDisabledActions = array();
 
 /**
- * Disable redirects to special pages and interwiki redirects, which use a 302 and have no "redirected from" link
+ * Disable redirects to special pages and interwiki redirects, which use a 302
+ * and have no "redirected from" link.
  */
 $wgDisableHardRedirects = false;
 
@@ -2840,21 +3000,19 @@ $wgEnableSorbs = false;
 $wgSorbsUrl = 'http.dnsbl.sorbs.net.';
 
 /**
- * Proxy whitelist, list of addresses that are assumed to be non-proxy despite what the other
- * methods might say
+ * Proxy whitelist, list of addresses that are assumed to be non-proxy despite
+ * what the other methods might say.
  */
 $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.
+ * Simple rate limiter options to brake edit floods.  Maximum number actions
+ * allowed in the given number of seconds; after that the violating client re-
+ * ceives 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.
+ * This option set is experimental and likely to change. Requires memcached.
  */
 $wgRateLimits = array(
        'edit' => array(
@@ -3015,13 +3173,6 @@ $wgUpdateRowsPerQuery = 10;
  */
 $wgUseAjax = true;
 
-/**
- * Enable auto suggestion for the search bar
- * Requires $wgUseAjax to be true too.
- * Causes wfSajaxSearch to be added to $wgAjaxExportList
- */
-$wgAjaxSearch = false;
-
 /**
  * List of Ajax-callable functions.
  * Extensions acting as Ajax callbacks must register here
@@ -3050,6 +3201,11 @@ $wgAjaxLicensePreview = true;
  */
 $wgAllowDisplayTitle = true;
 
+/**
+ * for consistency, restrict DISPLAYTITLE to titles that normalize to the same canonical DB key
+ */
+$wgRestrictDisplayTitle = true;
+
 /**
  * Array of usernames which may not be registered or logged in from
  * Maintenance scripts can still use these
@@ -3059,6 +3215,7 @@ $wgReservedUsernames = array(
        'Conversion script', // Used for the old Wikipedia software upgrade
        'Maintenance script', // Maintenance scripts which perform editing, image import script
        'Template namespace initialisation script', // Used in 1.2->1.3 upgrade
+       'msg:double-redirect-fixer', // Automatic double redirect fix
 );
 
 /**
@@ -3089,6 +3246,11 @@ $wgMaxShellMemory = 102400;
  */
 $wgMaxShellFileSize = 102400;
 
+/**
+* Executable name of PHP cli client (php/php5)
+*/
+$wgPhpCli = 'php';
+
 /**
  * DJVU settings
  * Path of the djvudump executable
@@ -3203,12 +3365,12 @@ $wgSlaveLagCritical = 30;
  *  class             The class name
  *
  *  preprocessorClass The preprocessor class. Two classes are currently available:
- *                    Preprocessor_Hash, which uses plain PHP arrays for tempoarary 
- *                    storage, and Preprocessor_DOM, which uses the DOM module for 
+ *                    Preprocessor_Hash, which uses plain PHP arrays for tempoarary
+ *                    storage, and Preprocessor_DOM, which uses the DOM module for
  *                    temporary storage. Preprocessor_DOM generally uses less memory;
  *                    the speed of the two is roughly the same.
- *                    
- *                    If this parameter is not given, it uses Preprocessor_DOM if the 
+ *
+ *                    If this parameter is not given, it uses Preprocessor_DOM if the
  *                    DOM module is available, otherwise it uses Preprocessor_Hash.
  *
  *                    Has no effect on Parser_OldPP.
@@ -3225,6 +3387,12 @@ $wgParserConf = array(
        #'preprocessorClass' => 'Preprocessor_Hash',
 );
 
+/**
+ * LinkHolderArray batch size
+ * For debugging
+ */
+$wgLinkHolderBatchSize = 1000;
+
 /**
  * Hooks that are used for outputting exceptions.  Format is:
  *   $wgExceptionHooks[] = $funcname
@@ -3273,3 +3441,9 @@ $wgSitemapNamespaces = false;
  * ting this variable false.
  */
 $wgUseAutomaticEditSummaries = true;
+
+/**
+ * Limit password attempts to X attempts per Y seconds per IP per account.
+ * Requires memcached.
+ */
+$wgPasswordAttemptThrottle = array( 'count' => 5, 'seconds' => 300 );