From: Jackmcbarn Date: Thu, 3 Oct 2013 15:09:08 +0000 (-0400) Subject: Allow appending text to redirects from moved pages X-Git-Tag: 1.31.0-rc.0~18609^2 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=528590ccece9d3b539d7c0901f0aedd8c2ca580e;p=lhc%2Fweb%2Fwiklou.git Allow appending text to redirects from moved pages Add message move-redirect-text, which is appended to redirects created by page moves (empty by default). This could be used on enwiki to automatically add {{R from move}} while still allowing non-admins to revert the move, for example. Change-Id: Ic2158897ce46177b695a7fb90c8ed3349df18bde --- diff --git a/includes/Title.php b/includes/Title.php index cdbebf188b..487dd872d4 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -3840,7 +3840,8 @@ class Title { if ( $createRedirect ) { $contentHandler = ContentHandler::getForTitle( $this ); - $redirectContent = $contentHandler->makeRedirectContent( $nt ); + $redirectContent = $contentHandler->makeRedirectContent( $nt, + wfMessage( 'move-redirect-text' )->inContentLanguage()->plain() ); // NOTE: If this page's content model does not support redirects, $redirectContent will be null. } else { diff --git a/includes/content/ContentHandler.php b/includes/content/ContentHandler.php index 2de8408e5f..a8fa9ed4dd 100644 --- a/includes/content/ContentHandler.php +++ b/includes/content/ContentHandler.php @@ -449,10 +449,11 @@ abstract class ContentHandler { * @since 1.21 * * @param Title $destination the page to redirect to. + * @param string $text text to include in the redirect, if possible. * * @return Content */ - public function makeRedirectContent( Title $destination ) { + public function makeRedirectContent( Title $destination, $text = '' ) { return null; } diff --git a/includes/content/WikitextContentHandler.php b/includes/content/WikitextContentHandler.php index 8be85bc7cb..b1b461fbd1 100644 --- a/includes/content/WikitextContentHandler.php +++ b/includes/content/WikitextContentHandler.php @@ -55,10 +55,11 @@ class WikitextContentHandler extends TextContentHandler { * @see ContentHandler::makeRedirectContent * * @param Title $destination the page to redirect to. + * @param string $text text to include in the redirect, if possible. * * @return Content */ - public function makeRedirectContent( Title $destination ) { + public function makeRedirectContent( Title $destination, $text = '' ) { $optionalColon = ''; if ( $destination->getNamespace() == NS_CATEGORY ) { @@ -72,6 +73,9 @@ class WikitextContentHandler extends TextContentHandler { $mwRedir = MagicWord::get( 'redirect' ); $redirectText = $mwRedir->getSynonym( 0 ) . ' [[' . $optionalColon . $destination->getFullText() . ']]'; + if ( $text != '' ) { + $redirectText .= "\n" . $text; + } return new WikitextContent( $redirectText ); } diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 87f729f9a7..d6f1f6a0f7 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -3499,6 +3499,7 @@ Please merge them manually.'''", 'movesubpagetext' => 'This page has $1 {{PLURAL:$1|subpage|subpages}} shown below.', 'movenosubpage' => 'This page has no subpages.', 'movereason' => 'Reason:', +'move-redirect-text' => '', # do not translate or duplicate this message to other languages 'revertmove' => 'revert', 'delete_and_move' => 'Delete and move', 'delete_and_move_text' => '== Deletion required == diff --git a/maintenance/language/messageTypes.inc b/maintenance/language/messageTypes.inc index c153fa7c4a..d47138d7f4 100644 --- a/maintenance/language/messageTypes.inc +++ b/maintenance/language/messageTypes.inc @@ -261,6 +261,7 @@ $wgIgnoredMessages = array( 'redirect-text', 'edithelppage', 'autocomment-prefix', + 'move-redirect-text', ); /** Optional messages, which may be translated only if changed in the target language. */ diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index 65933f3576..e21b3c7d34 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -2448,6 +2448,7 @@ $wgMessageStructure = array( 'movesubpagetext', 'movenosubpage', 'movereason', + 'move-redirect-text', 'revertmove', 'delete_and_move', 'delete_and_move_text',