bug 20519 Redirects in the stable version showed up wrong
[lhc/web/wiklou.git] / includes / Wiki.php
index a310151..6ecbc39 100644 (file)
@@ -310,8 +310,9 @@ class MediaWiki {
                        wfRunHooks( 'InitializeArticleMaybeRedirect', 
                                array(&$title,&$request,&$ignoreRedirect,&$target,&$article) );
 
-                       // Follow redirects only for... redirects
-                       if( !$ignoreRedirect && $article->isRedirect() ) {
+                       // Follow redirects only for... redirects.
+                       // If $target is set, then a hook wanted to redirect.
+                       if( !$ignoreRedirect && ($target || $article->isRedirect()) ) {
                                # Is the target already set by an extension?
                                $target = $target ? $target : $article->followRedirect();
                                if( is_string( $target ) ) {
@@ -532,9 +533,14 @@ class MediaWiki {
                                if( $request->getFullRequestURL() == $title->getInternalURL( 'action=history' ) ) {
                                        $output->setSquidMaxage( $this->getVal( 'SquidMaxage' ) );
                                }
-                               $history = new PageHistory( $article );
+                               $history = new HistoryPage( $article );
                                $history->history();
                                break;
+                       case 'revisiondelete':
+                               # For show/hide submission from history page
+                               $special = SpecialPage::getPage( 'Revisiondelete' );
+                               $special->execute( '' );
+                               break;
                        default:
                                if( wfRunHooks( 'UnknownAction', array( $action, $article ) ) ) {
                                        $output->showErrorPage( 'nosuchaction', 'nosuchactiontext' );