merged master
[lhc/web/wiklou.git] / includes / Defines.php
index 7be569a..1fe5798 100644 (file)
@@ -1,15 +1,39 @@
 <?php
 /**
- * A few constants that might be needed during LocalSettings.php
+ * A few constants that might be needed during LocalSettings.php.
+ *
+ * Note: these constants must all be resolvable at compile time by HipHop,
+ * since this file will not be executed during request startup for a compiled
+ * MediaWiki.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
+/**
+ * @defgroup Constants MediaWiki constants
+ */
+
 /**
  * Version constants for the benefit of extensions
  */
 define( 'MW_SPECIALPAGE_VERSION', 2 );
 
-/**#@+
+/**@{
  * Database related constants
  */
 define( 'DBO_DEBUG', 1 );
@@ -19,27 +43,31 @@ define( 'DBO_TRX', 8 );
 define( 'DBO_DEFAULT', 16 );
 define( 'DBO_PERSISTENT', 32 );
 define( 'DBO_SYSDBA', 64 ); //for oracle maintenance
-/**#@-*/
+define( 'DBO_DDLMODE', 128 ); // when using schema files: mostly for Oracle
+/**@}*/
 
-# Valid database indexes
-# Operation-based indexes
+/**@{
+ * Valid database indexes
+ * Operation-based indexes
+ */
 define( 'DB_SLAVE', -1 );     # Read from the slave (or only server)
 define( 'DB_MASTER', -2 );    # Write to master (or only server)
 define( 'DB_LAST', -3 );     # Whatever database was used last
+/**@}*/
 
 # Obsolete aliases
 define( 'DB_READ', -1 );
 define( 'DB_WRITE', -2 );
 
 
-/**#@+
+/**@{
  * Virtual namespaces; don't appear in the page database
  */
-define('NS_MEDIA', -2);
-define('NS_SPECIAL', -1);
-/**#@-*/
+define( 'NS_MEDIA', -2 );
+define( 'NS_SPECIAL', -1 );
+/**@}*/
 
-/**#@+
+/**@{
  * Real namespaces
  *
  * Number 100 and beyond are reserved for custom namespaces;
@@ -47,22 +75,23 @@ define('NS_SPECIAL', -1);
  * DO NOT Change integer values as they are most probably hardcoded everywhere
  * see bug #696 which talked about that.
  */
-define('NS_MAIN', 0);
-define('NS_TALK', 1);
-define('NS_USER', 2);
-define('NS_USER_TALK', 3);
-define('NS_PROJECT', 4);
-define('NS_PROJECT_TALK', 5);
-define('NS_FILE', 6);
-define('NS_FILE_TALK', 7);
-define('NS_MEDIAWIKI', 8);
-define('NS_MEDIAWIKI_TALK', 9);
-define('NS_TEMPLATE', 10);
-define('NS_TEMPLATE_TALK', 11);
-define('NS_HELP', 12);
-define('NS_HELP_TALK', 13);
-define('NS_CATEGORY', 14);
-define('NS_CATEGORY_TALK', 15);
+define( 'NS_MAIN', 0 );
+define( 'NS_TALK', 1 );
+define( 'NS_USER', 2 );
+define( 'NS_USER_TALK', 3 );
+define( 'NS_PROJECT', 4 );
+define( 'NS_PROJECT_TALK', 5 );
+define( 'NS_FILE', 6 );
+define( 'NS_FILE_TALK', 7 );
+define( 'NS_MEDIAWIKI', 8 );
+define( 'NS_MEDIAWIKI_TALK', 9 );
+define( 'NS_TEMPLATE', 10 );
+define( 'NS_TEMPLATE_TALK', 11 );
+define( 'NS_HELP', 12 );
+define( 'NS_HELP_TALK', 13 );
+define( 'NS_CATEGORY', 14 );
+define( 'NS_CATEGORY_TALK', 15 );
+
 /**
  * NS_IMAGE and NS_IMAGE_TALK are the pre-v1.14 names for NS_FILE and
  * NS_FILE_TALK respectively, and are kept for compatibility.
@@ -71,47 +100,24 @@ define('NS_CATEGORY_TALK', 15);
  * versions, either stick to the old names or define the new constants
  * yourself, if they're not defined already.
  */
-define('NS_IMAGE', NS_FILE);
-define('NS_IMAGE_TALK', NS_FILE_TALK);
-/**#@-*/
+define( 'NS_IMAGE', NS_FILE );
+define( 'NS_IMAGE_TALK', NS_FILE_TALK );
+/**@}*/
 
-/**
- * Available feeds objects
- * Should probably only be defined when a page is syndicated ie when
- * $wgOut->isSyndicated() is true
- */
-$wgFeedClasses = array(
-       'rss' => 'RSSFeed',
-       'atom' => 'AtomFeed',
-);
-
-/**#@+
- * Maths constants
- */
-define( 'MW_MATH_PNG',    0 );
-define( 'MW_MATH_SIMPLE', 1 );
-define( 'MW_MATH_HTML',   2 );
-define( 'MW_MATH_SOURCE', 3 );
-define( 'MW_MATH_MODERN', 4 );
-define( 'MW_MATH_MATHML', 5 );
-/**#@-*/
-
-/**#@+
+/**@{
  * Cache type
  */
 define( 'CACHE_ANYTHING', -1 );  // Use anything, as long as it works
 define( 'CACHE_NONE', 0 );       // Do not cache
 define( 'CACHE_DB', 1 );         // Store cache objects in the DB
 define( 'CACHE_MEMCACHED', 2 );  // MemCached, must specify servers in $wgMemCacheServers
-define( 'CACHE_ACCEL', 3 );      // eAccelerator
+define( 'CACHE_ACCEL', 3 );      // APC, XCache or WinCache
 define( 'CACHE_DBA', 4 );        // Use PHP's DBA extension to store in a DBM-style database
-/**#@-*/
-
+/**@}*/
 
-
-/**#@+
+/**@{
  * Media types.
- * This defines constants for the value returned by Image::getMediaType()
+ * This defines constants for the value returned by File::getMediaType()
  */
 define( 'MEDIATYPE_UNKNOWN',    'UNKNOWN' );     // unknown format
 define( 'MEDIATYPE_BITMAP',     'BITMAP' );      // some bitmap image or image source (like psd, etc). Can't scale up.
@@ -123,18 +129,18 @@ define( 'MEDIATYPE_OFFICE',     'OFFICE' );      // Office Documents, Spreadshee
 define( 'MEDIATYPE_TEXT',       'TEXT' );        // Plain text (possibly containing program code or scripts)
 define( 'MEDIATYPE_EXECUTABLE', 'EXECUTABLE' );  // binary executable
 define( 'MEDIATYPE_ARCHIVE',    'ARCHIVE' );     // archive file (zip, tar, etc)
-/**#@-*/
+/**@}*/
 
-/**#@+
+/**@{
  * Antivirus result codes, for use in $wgAntivirusSetup.
  */
 define( 'AV_NO_VIRUS', 0 );  #scan ok, no virus found
 define( 'AV_VIRUS_FOUND', 1 );  #virus found!
 define( 'AV_SCAN_ABORTED', -1 );  #scan aborted, the file is probably imune
 define( 'AV_SCAN_FAILED', false );  #scan failed (scanner not found or error in scanner)
-/**#@-*/
+/**@}*/
 
-/**#@+
+/**@{
  * Anti-lock flags
  * See DefaultSettings.php for a description
  */
@@ -142,9 +148,9 @@ define( 'ALF_PRELOAD_LINKS', 1 );
 define( 'ALF_PRELOAD_EXISTENCE', 2 );
 define( 'ALF_NO_LINK_LOCK', 4 );
 define( 'ALF_NO_BLOCK_LOCK', 8 );
-/**#@-*/
+/**@}*/
 
-/**#@+
+/**@{
  * Date format selectors; used in user preference storage and by
  * Language::date() and co.
  */
@@ -158,20 +164,19 @@ define( 'MW_DATE_MDY', 'mdy' );
 define( 'MW_DATE_DMY', 'dmy' );
 define( 'MW_DATE_YMD', 'ymd' );
 define( 'MW_DATE_ISO', 'ISO 8601' );
-/**#@-*/
+/**@}*/
 
-/**#@+
+/**@{
  * RecentChange type identifiers
- * This may be obsolete; log items are now used for moves?
  */
 define( 'RC_EDIT', 0);
 define( 'RC_NEW', 1);
-define( 'RC_MOVE', 2);
+define( 'RC_MOVE', 2); // obsolete
 define( 'RC_LOG', 3);
-define( 'RC_MOVE_OVER_REDIRECT', 4);
-/**#@-*/
+define( 'RC_MOVE_OVER_REDIRECT', 4); // obsolete
+/**@}*/
 
-/**#@+
+/**@{
  * Article edit flags
  */
 define( 'EDIT_NEW', 1 );
@@ -181,9 +186,9 @@ define( 'EDIT_SUPPRESS_RC', 8 );
 define( 'EDIT_FORCE_BOT', 16 );
 define( 'EDIT_DEFER_UPDATES', 32 );
 define( 'EDIT_AUTOSUMMARY', 64 );
-/**#@-*/
+/**@}*/
 
-/**
+/**@{
  * Flags for Database::makeList()
  * These are also available as Database class constants
  */
@@ -192,36 +197,57 @@ define( 'LIST_AND', 1 );
 define( 'LIST_SET', 2 );
 define( 'LIST_NAMES', 3);
 define( 'LIST_OR', 4);
+define( 'LIST_SET_PREPARED', 8);  // List of (?, ?, ?) for DatabaseIbm_db2
+/**@}*/
 
 /**
  * Unicode and normalisation related
  */
 require_once dirname(__FILE__).'/normal/UtfNormalDefines.php';
 
-# Hook support constants
+/**@{
+ * Hook support constants
+ */
 define( 'MW_SUPPORTS_EDITFILTERMERGED', 1 );
 define( 'MW_SUPPORTS_PARSERFIRSTCALLINIT', 1 );
 define( 'MW_SUPPORTS_LOCALISATIONCACHE', 1 );
+/**@}*/
+
+/** Support for $wgResourceModules */
+define( 'MW_SUPPORTS_RESOURCE_MODULES', 1 );
 
-# Allowed values for Parser::$mOutputType
-# Parameter to Parser::startExternalParse().
+/**@{
+ * Allowed values for Parser::$mOutputType
+ * Parameter to Parser::startExternalParse().
+ */
 define( 'OT_HTML', 1 );
 define( 'OT_WIKI', 2 );
 define( 'OT_PREPROCESS', 3 );
 define( 'OT_MSG' , 3 );  // b/c alias for OT_PREPROCESS
+define( 'OT_PLAIN', 4 );
+/**@}*/
 
-# Flags for Parser::setFunctionHook
+/**@{
+ * Flags for Parser::setFunctionHook
+ */
 define( 'SFH_NO_HASH', 1 );
 define( 'SFH_OBJECT_ARGS', 2 );
+/**@}*/
 
-# Flags for Parser::setLinkHook
+/**
+ * Flags for Parser::setLinkHook
+ */
 define( 'SLH_PATTERN', 1 );
 
-# Flags for Parser::replaceLinkHolders
+/**
+ * Flags for Parser::replaceLinkHolders
+ */
 define( 'RLH_FOR_UPDATE', 1 );
 
-# Autopromote conditions (must be here and not in Autopromote.php, so that
-# they're loaded for DefaultSettings.php before AutoLoader.php)
+/**@{
+ * Autopromote conditions (must be here and not in Autopromote.php, so that
+ * they're loaded for DefaultSettings.php before AutoLoader.php)
+ */
 define( 'APCOND_EDITCOUNT', 1 );
 define( 'APCOND_AGE', 2 );
 define( 'APCOND_EMAILCONFIRMED', 3 );
@@ -230,3 +256,46 @@ define( 'APCOND_ISIP', 5 );
 define( 'APCOND_IPINRANGE', 6 );
 define( 'APCOND_AGE_FROM_EDIT', 7 );
 define( 'APCOND_BLOCKED', 8 );
+define( 'APCOND_ISBOT', 9 );
+/**@}*/
+
+/** @{
+ * Protocol constants for wfExpandUrl()
+ */
+define( 'PROTO_HTTP', 'http://' );
+define( 'PROTO_HTTPS', 'https://' );
+define( 'PROTO_RELATIVE', '//' );
+define( 'PROTO_CURRENT', null );
+define( 'PROTO_CANONICAL', 1 );
+define( 'PROTO_INTERNAL', 2 );
+/**@}*/
+
+/**@{
+ * Content model ids, used by Content and ContentHandler.
+ * These IDs will be exposed in the API and XML dumps.
+ *
+ * Extensions that define their own content model IDs should take
+ * care to avoid conflicts. Using the extension name as a prefix is recommended.
+ */
+define( 'CONTENT_MODEL_WIKITEXT', 'wikitext' );
+define( 'CONTENT_MODEL_JAVASCRIPT', 'javascript' );
+define( 'CONTENT_MODEL_CSS', 'css' );
+define( 'CONTENT_MODEL_TEXT', 'text' );
+/**@}*/
+
+/**@{
+ * Content formats, used by Content and ContentHandler.
+ * These should be MIME types, and will be exposed in the API and XML dumps.
+ *
+ * Extensions are free to use the below formats, or define their own.
+ * It is recommended to stick with the conventions for MIME types.
+ */
+define( 'CONTENT_FORMAT_WIKITEXT', 'text/x-wiki' ); // wikitext
+define( 'CONTENT_FORMAT_JAVASCRIPT', 'text/javascript' ); // for js pages
+define( 'CONTENT_FORMAT_CSS', 'text/css' );  // for css pages
+define( 'CONTENT_FORMAT_TEXT', 'text/plain' ); // for future use, e.g. with some plain-html messages.
+define( 'CONTENT_FORMAT_HTML', 'text/html' ); // for future use, e.g. with some plain-html messages.
+define( 'CONTENT_FORMAT_SERIALIZED', 'application/vnd.php.serialized' ); // for future use with the api, and for use by extensions
+define( 'CONTENT_FORMAT_JSON', 'application/json' ); // for future use with the api, and for use by extensions
+define( 'CONTENT_FORMAT_XML', 'application/xml' ); // for future use with the api, and for use by extensions
+/**@}*/