/**
* 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
*
$self = $maintenance->getName();
# Setup the profiler
+global $IP;
if ( file_exists( "$IP/StartProfiler.php" ) ) {
require_once( "$IP/StartProfiler.php" );
} else {
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;
+ # PHP 5.1 doesn't support "class::method" for call_user_func, so split it
+ 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" ) )
{