/**
* We want to make this whole thing as seamless as possible to the
* end-user. Unfortunately, we can't do _all_ of the work in the class
- * because A) included files are not in global scope, but in the scope
+ * because A) included files are not in global scope, but in the scope
* of their caller, and B) MediaWiki has way too many globals. So instead
* we'll kinda fake it, and do the requires() inline. <3 PHP
*
require_once( "$IP/includes/AutoLoader.php" );
require_once( "$IP/includes/Defines.php" );
-// Load settings, using wikimedia-mode if needed
-// Fixme: replace this hack with general farm-friendly code
-if ( file_exists( "$IP/wmf-config/wikimedia-mode" ) ) {
+if ( defined( 'MW_CONFIG_CALLBACK' ) ) {
+ # Use a callback function to configure MediaWiki
+ require_once( "$IP/includes/DefaultSettings.php" );
+
+ $callback = MW_CONFIG_CALLBACK;
+ if ( strpos( $callback, '::' ) !== false ) {
+ $callback = explode( '::', $callback, 2);
+ }
+ call_user_func( $callback );
+} elseif ( file_exists( "$IP/wmf-config/wikimedia-mode" ) ) {
+ // Load settings, using wikimedia-mode if needed
+ // Fixme: replace this hack with general farm-friendly code
# TODO FIXME! Wikimedia-specific stuff needs to go away to an ext
# Maybe a hook?
global $cluster;
} else {
require_once( $maintenance->loadSettings() );
}
+
if ( $maintenance->getDbType() === Maintenance::DB_ADMIN &&
is_readable( "$IP/AdminSettings.php" ) )
{