Fix regression from r36678: we can't use $this->dieUsageMsg() in a static method...
[lhc/web/wiklou.git] / includes / api / ApiMove.php
index 919b7bc..a3801bf 100644 (file)
@@ -29,21 +29,21 @@ if (!defined('MEDIAWIKI')) {
 
 
 /**
- * @addtogroup API
+ * @ingroup API
  */
 class ApiMove extends ApiBase {
 
        public function __construct($main, $action) {
                parent :: __construct($main, $action);
        }
-       
+
        public function execute() {
                global $wgUser;
                $this->getMain()->requestWriteMode();
                $params = $this->extractRequestParams();
                if(is_null($params['reason']))
                        $params['reason'] = '';
-       
+
                $titleObj = NULL;
                if(!isset($params['from']))
                        $this->dieUsageMsg(array('missingparam', 'from'));
@@ -69,7 +69,7 @@ class ApiMove extends ApiBase {
                // Run getUserPermissionsErrors() here so we get message arguments too,
                // rather than just a message key. The latter is troublesome for messages
                // that use arguments.
-               // FIXME: moveTo() should really return an array, requires some 
+               // FIXME: moveTo() should really return an array, requires some
                //        refactoring of other code, though (mainly SpecialMovepage.php)
                $errors = array_merge($fromTitle->getUserPermissionsErrors('move', $wgUser),
                                        $fromTitle->getUserPermissionsErrors('edit', $wgUser),
@@ -79,16 +79,19 @@ class ApiMove extends ApiBase {
                        // We don't care about multiple errors, just report one of them
                        $this->dieUsageMsg(current($errors));
 
-               $dbw = wfGetDB(DB_MASTER);
-               $dbw->begin();          
+               $hookErr = null;
+
                $retval = $fromTitle->moveTo($toTitle, true, $params['reason'], !$params['noredirect']);
                if($retval !== true)
-                       $this->dieUsageMsg(array($retval));
+               {
+                       # FIXME: Title::moveTo() sometimes returns a string
+                       $this->dieUsageMsg(reset($retval));
+               }
 
                $r = array('from' => $fromTitle->getPrefixedText(), 'to' => $toTitle->getPrefixedText(), 'reason' => $params['reason']);
                if(!$params['noredirect'] || !$wgUser->isAllowed('suppressredirect'))
                        $r['redirectcreated'] = '';
-       
+
                if($params['movetalk'] && $fromTalk->exists() && !$fromTitle->isTalkPage())
                {
                        // We need to move the talk page as well
@@ -104,9 +107,9 @@ class ApiMove extends ApiBase {
                        {
                                $r['talkmove-error-code'] = ApiBase::$messageMap[$retval]['code'];
                                $r['talkmove-error-info'] = ApiBase::$messageMap[$retval]['info'];
-                       }       
+                       }
                }
-               
+
                # Watch pages
                if($params['watch'] || $wgUser->getOption('watchmoves'))
                {
@@ -118,12 +121,11 @@ class ApiMove extends ApiBase {
                        $wgUser->removeWatch($fromTitle);
                        $wgUser->removeWatch($toTitle);
                }
-               $dbw->commit(); // Make sure all changes are really written to the DB
                $this->getResult()->addValue(null, $this->getModuleName(), $r);
        }
-       
+
        public function mustBePosted() { return true; }
-       
+
        public function getAllowedParams() {
                return array (
                        'from' => null,