* Add exception hooks to output pretty messages
[lhc/web/wiklou.git] / includes / SpecialMovepage.php
index cfc434a..7a003bb 100644 (file)
@@ -65,7 +65,7 @@ class MovePageForm {
                $this->watch = $wgRequest->getCheck( 'wpWatch' );
        }
 
-       function showForm( $err ) {
+       function showForm( $err, $hookErr = '' ) {
                global $wgOut, $wgUser, $wgContLang;
                
                $start = $wgContLang->isRTL() ? 'right' : 'left';
@@ -78,6 +78,8 @@ class MovePageForm {
                        $wgOut->showErrorPage( 'notargettitle', 'notargettext' );
                        return;
                }
+               $sk = $wgUser->getSkin();
+               $oldTitleLink = $sk->makeLinkObj( $ot );
                $oldTitle = $ot->getPrefixedText();
 
                $encOldTitle = htmlspecialchars( $oldTitle );
@@ -135,7 +137,13 @@ class MovePageForm {
 
                if ( $err != '' ) {
                        $wgOut->setSubtitle( wfMsg( 'formerror' ) );
-                       $wgOut->addWikiText( '<p class="error">' . wfMsg($err) . "</p>\n" );
+                       $errMsg = "";
+                       if( $err == 'hookaborted' ) {
+                               $errMsg = "<p><strong class=\"error\">$hookErr</strong></p>\n";
+                       } else {
+                               $errMsg = '<p><strong class="error">' . wfMsgWikiHtml( $err ) . "</strong></p>\n";
+                       }
+                       $wgOut->addHTML( $errMsg );
                }
 
                $moveTalkChecked = $this->moveTalk ? ' checked="checked"' : '';
@@ -145,7 +153,7 @@ class MovePageForm {
        <table border='0'>
                <tr>
                        <td align='$end'>{$movearticle}</td>
-                       <td align='$start'><strong>{$oldTitle}</strong></td>
+                       <td align='$start'><strong>{$oldTitleLink}</strong></td>
                </tr>
                <tr>
                        <td align='$end'><label for='wpNewTitle'>{$newtitle}</label></td>
@@ -186,7 +194,7 @@ class MovePageForm {
        <input type='hidden' name='wpEditToken' value=\"{$token}\" />
 </form>\n" );
 
-       $this->showLogFragment( $ot, $wgOut );
+               $this->showLogFragment( $ot, $wgOut );
 
        }
 
@@ -216,6 +224,12 @@ class MovePageForm {
                        return;
                }
 
+               $hookErr = null;
+               if( !wfRunHooks( 'AbortMove', array( $ot, $nt, $wgUser, &$hookErr ) ) ) {
+                       $this->showForm( 'hookaborted', $hookErr );
+                       return;
+               }
+
                $error = $ot->moveTo( $nt, true, $this->reason );
                if ( $error !== true ) {
                        $this->showForm( $error );
@@ -281,8 +295,8 @@ class MovePageForm {
                $talkmoved = $wgRequest->getVal( 'talkmoved' );
                $oldUrl = $old->getFullUrl( 'redirect=no' );
                $newUrl = $new->getFullURl();
-               $oldText = $old->getPrefixedText();
-               $newText = $new->getPrefixedText();
+               $oldText = wfEscapeWikiText( $old->getPrefixedText() );
+               $newText = wfEscapeWikiText( $new->getPrefixedText() );
                $oldLink = "<span class='plainlinks'>[$oldUrl $oldText]</span>";
                $newLink = "<span class='plainlinks'>[$newUrl $newText]</span>";