Allow API modules to be defined in extensions
authorTim Starling <tstarling@users.mediawiki.org>
Fri, 31 Aug 2007 15:23:48 +0000 (15:23 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Fri, 31 Aug 2007 15:23:48 +0000 (15:23 +0000)
includes/DefaultSettings.php
includes/api/ApiMain.php

index e45f8dd..812b75f 100644 (file)
@@ -2699,6 +2699,13 @@ $wgEnableAPI = true;
  */
 $wgEnableWriteAPI = false;
 
+/**
+ * API module extensions
+ * Associative array mapping module name to class name.
+ * Extension modules may override the core modules.
+ */
+$wgAPIModules = array();
+
 /**
  * Parser test suite files to be run by parserTests.php when no specific
  * filename is passed to it.
index b33e762..87e7766 100644 (file)
@@ -106,7 +106,9 @@ class ApiMain extends ApiBase {
                        }
                }
 
-               $this->mModules = self :: $Modules;
+               global $wgAPIModules; // extension modules
+               $this->mModules = $wgAPIModules + self :: $Modules;
+
                $this->mModuleNames = array_keys($this->mModules); // todo: optimize
                $this->mFormats = self :: $Formats;
                $this->mFormatNames = array_keys($this->mFormats); // todo: optimize