dispatchUser() should use a 302 http status code
[lhc/web/wiklou.git] / includes / logging / MoveLogFormatter.php
index 0978f97..43ca0ea 100644 (file)
 class MoveLogFormatter extends LogFormatter {
        public function getPreloadTitles() {
                $params = $this->extractParameters();
-               return array( Title::newFromText( $params[3] ) );
+
+               return [ Title::newFromText( $params[3] ) ];
        }
 
        protected function getMessageKey() {
                $key = parent::getMessageKey();
-               $params = $this->getMessageParameters();
+               $params = $this->extractParameters();
                if ( isset( $params[4] ) && $params[4] === '1' ) {
+                       // Messages: logentry-move-move-noredirect, logentry-move-move_redir-noredirect
                        $key .= '-noredirect';
                }
+
                return $key;
        }
 
        protected function getMessageParameters() {
                $params = parent::getMessageParameters();
-               $oldname = $this->makePageLink( $this->entry->getTarget(), array( 'redirect' => 'no' ) );
+               $oldname = $this->makePageLink( $this->entry->getTarget(), [ 'redirect' => 'no' ] );
                $newname = $this->makePageLink( Title::newFromText( $params[3] ) );
                $params[2] = Message::rawParam( $oldname );
                $params[3] = Message::rawParam( $newname );
+               unset( $params[4] ); // handled in getMessageKey
+
                return $params;
        }
 
        public function getActionLinks() {
                if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) // Action is hidden
                        || $this->entry->getSubtype() !== 'move'
-                       || !$this->context->getUser()->isAllowed( 'move' ) )
-               {
+                       || !$this->context->getUser()->isAllowed( 'move' )
+               {
                        return '';
                }
 
@@ -66,17 +71,43 @@ class MoveLogFormatter extends LogFormatter {
                        return '';
                }
 
-               $revert = Linker::linkKnown(
+               $revert = $this->getLinkRenderer()->makeKnownLink(
                        SpecialPage::getTitleFor( 'Movepage' ),
-                       $this->msg( 'revertmove' )->escaped(),
-                       array(),
-                       array(
+                       $this->msg( 'revertmove' )->text(),
+                       [],
+                       [
                                'wpOldTitle' => $destTitle->getPrefixedDBkey(),
                                'wpNewTitle' => $this->entry->getTarget()->getPrefixedDBkey(),
                                'wpReason' => $this->msg( 'revertmove' )->inContentLanguage()->text(),
                                'wpMovetalk' => 0
-                       )
+                       ]
                );
+
                return $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
        }
+
+       protected function getParametersForApi() {
+               $entry = $this->entry;
+               $params = $entry->getParameters();
+
+               static $map = [
+                       '4:title:target',
+                       '5:bool:suppressredirect',
+                       '4::target' => '4:title:target',
+                       '5::noredir' => '5:bool:suppressredirect',
+               ];
+               foreach ( $map as $index => $key ) {
+                       if ( isset( $params[$index] ) ) {
+                               $params[$key] = $params[$index];
+                               unset( $params[$index] );
+                       }
+               }
+
+               if ( !isset( $params['5:bool:suppressredirect'] ) ) {
+                       $params['5:bool:suppressredirect'] = false;
+               }
+
+               return $params;
+       }
+
 }