X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;ds=inline;f=includes%2Fspecials%2FSpecialPageLanguage.php;h=2943fd4e3d697cc75056ae07c9140e3ff02ac422;hb=424251a2cb5842727756d96f877c787c443ea056;hp=55ae69262156720e5a560f97dfe88df26617f81f;hpb=df8f5cf4b16cf4a0590999d417e07a730e55fe1a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialPageLanguage.php b/includes/specials/SpecialPageLanguage.php index 55ae692621..2943fd4e3d 100644 --- a/includes/specials/SpecialPageLanguage.php +++ b/includes/specials/SpecialPageLanguage.php @@ -89,6 +89,12 @@ class SpecialPageLanguage extends FormSpecialPage { 'default' => $this->getConfig()->get( 'LanguageCode' ), ]; + // Allow user to enter a comment explaining the change + $page['reason'] = [ + 'type' => 'text', + 'label-message' => 'pagelang-reason' + ]; + return $page; } @@ -130,20 +136,28 @@ class SpecialPageLanguage extends FormSpecialPage { } // Url to redirect to after the operation - $this->goToUrl = $title->getFullURL(); + $this->goToUrl = $title->getFullUrlForRedirect( + $title->isRedirect() ? [ 'redirect' => 'no' ] : [] + ); - return self::changePageLanguage( $this->getContext(), $title, $newLanguage ); + return self::changePageLanguage( + $this->getContext(), + $title, + $newLanguage, + $data['reason'] === null ? '' : $data['reason'] + ); } /** * @param IContextSource $context * @param Title $title * @param string $newLanguage Language code + * @param string $reason Reason for the change * @param array $tags Change tags to apply to the log entry * @return Status */ public static function changePageLanguage( IContextSource $context, Title $title, - $newLanguage, array $tags = [] ) { + $newLanguage, $reason, array $tags = [] ) { // Get the default language for the wiki $defLang = $context->getConfig()->get( 'LanguageCode' ); @@ -175,10 +189,13 @@ class SpecialPageLanguage extends FormSpecialPage { if ( $newLanguage === $oldLanguage ) { // Check if old language does not exist if ( !$oldLanguage ) { - return Status::newFatal( - 'pagelang-unchanged-language-default', - wfEscapeWikiText( $title->getPrefixedText() ) - ); + return Status::newFatal( ApiMessage::create( + [ + 'pagelang-unchanged-language-default', + wfEscapeWikiText( $title->getPrefixedText() ) + ], + 'pagelang-unchanged-language' + ) ); } return Status::newFatal( 'pagelang-unchanged-language', @@ -215,6 +232,7 @@ class SpecialPageLanguage extends FormSpecialPage { $entry->setPerformer( $context->getUser() ); $entry->setTarget( $title ); $entry->setParameters( $logParams ); + $entry->setComment( $reason ); $entry->setTags( $tags ); $logid = $entry->insert();