check that $wgArticle is an instance of the Article class in Skin::pageStats() per...
[lhc/web/wiklou.git] / includes / Setup.php
index 2ed4a41..859ad00 100644 (file)
@@ -58,6 +58,22 @@ if ( empty( $wgFileStore['deleted']['directory'] ) ) {
        $wgFileStore['deleted']['directory'] = "{$wgUploadDirectory}/deleted";
 }
 
+/**
+ * Unconditional protection for NS_MEDIAWIKI since otherwise it's too easy for a 
+ * sysadmin to set $wgNamespaceProtection incorrectly and leave the wiki insecure. 
+ *
+ * Note that this is the definition of editinterface and it can be granted to 
+ * all users if desired.
+ */
+$wgNamespaceProtection[NS_MEDIAWIKI] = 'editinterface';
+
+/**
+ * The canonical names of namespaces 6 and 7 are, as of v1.14, "File"
+ * and "File_talk".  The old names "Image" and "Image_talk" are
+ * retained as aliases for backwards compatibility.
+ */
+$wgNamespaceAliases['Image'] = NS_FILE;
+$wgNamespaceAliases['Image_talk'] = NS_FILE_TALK;
 
 /**
  * Initialise $wgLocalFileRepo from backwards-compatible settings
@@ -114,8 +130,9 @@ if ( $wgUseSharedUploads ) {
                );
        }
 }
-
-require_once( "$IP/includes/AutoLoader.php" );
+if ( !class_exists( 'AutoLoader' ) ) {
+       require_once( "$IP/includes/AutoLoader.php" );
+}
 
 wfProfileIn( $fname.'-exception' );
 require_once( "$IP/includes/Exception.php" );
@@ -137,12 +154,6 @@ wfProfileIn( $fname.'-misc1' );
 $wgIP = false; # Load on demand
 # Can't stub this one, it sets up $_GET and $_REQUEST in its constructor
 $wgRequest = new WebRequest;
-if ( function_exists( 'posix_uname' ) ) {
-       $wguname = posix_uname();
-       $wgNodeName = $wguname['nodename'];
-} else {
-       $wgNodeName = '';
-}
 
 # Useful debug output
 if ( $wgCommandLineMode ) {
@@ -194,21 +205,29 @@ $messageMemc =& wfGetMessageCacheStorage();
 $parserMemc =& wfGetParserCacheStorage();
 
 wfDebug( 'Main cache: ' . get_class( $wgMemc ) .
-       "\nMessage cache: " . get_class( $messageMemc ) .
-          "\nParser cache: " . get_class( $parserMemc ) . "\n" );
+       "\nMessage cache: " . get_class( $messageMemc ) .
+       "\nParser cache: " . get_class( $parserMemc ) . "\n" );
 
 wfProfileOut( $fname.'-memcached' );
+
+## Most of the config is out, some might want to run hooks here.
+wfRunHooks( 'SetupAfterCache' );
+
 wfProfileIn( $fname.'-SetupSession' );
 
 # Set default shared prefix
 if( $wgSharedPrefix === false ) $wgSharedPrefix = $wgDBprefix;
 
-if ( $wgDBprefix ) {
-       $wgCookiePrefix = $wgDBname . '_' . $wgDBprefix;
-} elseif ( $wgSharedDB ) {
-       $wgCookiePrefix = $wgSharedDB;
-} else {
-       $wgCookiePrefix = $wgDBname;
+if( !$wgCookiePrefix ) {
+       if ( $wgSharedDB && $wgSharedPrefix && in_array('user',$wgSharedTables) ) {
+               $wgCookiePrefix = $wgSharedDB . '_' . $wgSharedPrefix;
+       } elseif ( $wgSharedDB && in_array('user',$wgSharedTables) ) {
+               $wgCookiePrefix = $wgSharedDB;
+       } elseif ( $wgDBprefix ) {
+               $wgCookiePrefix = $wgDBname . '_' . $wgDBprefix;
+       } else {
+               $wgCookiePrefix = $wgDBname;
+       }
 }
 $wgCookiePrefix = strtr($wgCookiePrefix, "=,; +.\"'\\[", "__________");
 
@@ -240,7 +259,7 @@ $wgOut = new StubObject( 'wgOut', 'OutputPage' );
 $wgParser = new StubObject( 'wgParser', $wgParserConf['class'], array( $wgParserConf ) );
 
 $wgMessageCache = new StubObject( 'wgMessageCache', 'MessageCache',
-       array( $parserMemc, $wgUseDatabaseMessages, $wgMsgCacheExpiry, wfWikiID() ) );
+       array( $messageMemc, $wgUseDatabaseMessages, $wgMsgCacheExpiry, wfWikiID() ) );
 
 wfProfileOut( $fname.'-globals' );
 wfProfileIn( $fname.'-User' );
@@ -265,14 +284,11 @@ wfProfileIn( $fname.'-misc2' );
 $wgDeferredUpdateList = array();
 $wgPostCommitUpdateList = array();
 
-if ( $wgAjaxSearch ) $wgAjaxExportList[] = 'wfSajaxSearch';
 if ( $wgAjaxWatch ) $wgAjaxExportList[] = 'wfAjaxWatch';
 if ( $wgAjaxUploadDestCheck ) $wgAjaxExportList[] = 'UploadForm::ajaxGetExistsWarning';
 if( $wgAjaxLicensePreview )
        $wgAjaxExportList[] = 'UploadForm::ajaxGetLicensePreview';
 
-wfSeedRandom();
-
 # Placeholders in case of DB error
 $wgTitle = null;
 $wgArticle = null;
@@ -297,6 +313,16 @@ wfRunHooks( 'LogPageLogName', array( &$wgLogNames ) );
 wfRunHooks( 'LogPageLogHeader', array( &$wgLogHeaders ) );
 wfRunHooks( 'LogPageActionText', array( &$wgLogActions ) );
 
+if( !empty($wgNewUserLog) ) {
+       # Add a new log type
+       $wgLogTypes[]                        = 'newusers';
+       $wgLogNames['newusers']              = 'newuserlogpage';
+       $wgLogHeaders['newusers']            = 'newuserlogpagetext';
+       $wgLogActions['newusers/newusers']   = 'newuserlogentry'; // For compatibility with older log entries
+       $wgLogActions['newusers/create']     = 'newuserlog-create-entry';
+       $wgLogActions['newusers/create2']    = 'newuserlog-create2-entry';
+       $wgLogActions['newusers/autocreate'] = 'newuserlog-autocreate-entry';
+}
 
 wfDebug( "Fully initialised\n" );
 $wgFullyInitialised = true;