X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialPageLanguage.php;h=5322a04fc86cbdbf4fe4d2d704d6db7003e9b261;hb=29906d505b9b3d5f0fd1e6534f077b7fe2c623dc;hp=177c19bc4da9e6044872bf1693859217d95d144f;hpb=6be205fbc5043266e8b1dbabd3a4a8d034058844;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialPageLanguage.php b/includes/specials/SpecialPageLanguage.php index 177c19bc4d..5322a04fc8 100644 --- a/includes/specials/SpecialPageLanguage.php +++ b/includes/specials/SpecialPageLanguage.php @@ -38,6 +38,10 @@ class SpecialPageLanguage extends FormSpecialPage { parent::__construct( 'PageLanguage', 'pagelang' ); } + public function doesWrites() { + return true; + } + protected function preText() { $this->getOutput()->addModules( 'mediawiki.special.pageLanguage' ); } @@ -46,42 +50,44 @@ class SpecialPageLanguage extends FormSpecialPage { // Get default from the subpage of Special page $defaultName = $this->par; - $page = array(); - $page['pagename'] = array( - 'type' => 'text', + $page = []; + $page['pagename'] = [ + 'type' => 'title', 'label-message' => 'pagelang-name', 'default' => $defaultName, - ); + 'autofocus' => $defaultName === null, + 'exists' => true, + ]; // Options for whether to use the default language or select language - $selectoptions = array( + $selectoptions = [ (string)$this->msg( 'pagelang-use-default' )->escaped() => 1, (string)$this->msg( 'pagelang-select-lang' )->escaped() => 2, - ); - $page['selectoptions'] = array( + ]; + $page['selectoptions'] = [ 'id' => 'mw-pl-options', 'type' => 'radio', 'options' => $selectoptions, 'default' => 1 - ); + ]; // Building a language selector $userLang = $this->getLanguage()->getCode(); $languages = Language::fetchLanguageNames( $userLang, 'mwfile' ); ksort( $languages ); - $options = array(); + $options = []; foreach ( $languages as $code => $name ) { $options["$code - $name"] = $code; } - $page['language'] = array( + $page['language'] = [ 'id' => 'mw-pl-languageselector', 'cssclass' => 'mw-languageselector', 'type' => 'select', 'options' => $options, 'label-message' => 'pagelang-language', 'default' => $this->getConfig()->get( 'LanguageCode' ), - ); + ]; return $page; } @@ -98,7 +104,8 @@ class SpecialPageLanguage extends FormSpecialPage { } public function alterForm( HTMLForm $form ) { - Hooks::run( 'LanguageSelector', array( $this->getOutput(), 'mw-languageselector' ) ); + Hooks::run( 'LanguageSelector', [ $this->getOutput(), 'mw-languageselector' ] ); + $form->setSubmitTextMsg( 'pagelang-submit' ); } /** @@ -115,8 +122,7 @@ class SpecialPageLanguage extends FormSpecialPage { } // Get the default language for the wiki - // Returns the default since the page is not loaded from DB - $defLang = $title->getPageLanguage()->getCode(); + $defLang = $this->getConfig()->get( 'LanguageCode' ); $pageId = $title->getArticleID(); @@ -130,7 +136,7 @@ class SpecialPageLanguage extends FormSpecialPage { $langOld = $dbw->selectField( 'page', 'page_lang', - array( 'page_id' => $pageId ), + [ 'page_id' => $pageId ], __METHOD__ ); @@ -157,11 +163,11 @@ class SpecialPageLanguage extends FormSpecialPage { $dbw = wfGetDB( DB_MASTER ); $dbw->update( 'page', - array( 'page_lang' => $langNew ), - array( + [ 'page_lang' => $langNew ], + [ 'page_id' => $pageId, 'page_lang' => $langOld - ), + ], __METHOD__ ); @@ -170,10 +176,10 @@ class SpecialPageLanguage extends FormSpecialPage { } // Logging change of language - $logParams = array( + $logParams = [ '4::oldlanguage' => $logOld, '5::newlanguage' => $logNew - ); + ]; $entry = new ManualLogEntry( 'pagelang', 'pagelang' ); $entry->setPerformer( $this->getUser() ); $entry->setTarget( $title ); @@ -198,6 +204,18 @@ class SpecialPageLanguage extends FormSpecialPage { return $out1 . $out2; } + /** + * Return an array of subpages beginning with $search that this special page will accept. + * + * @param string $search Prefix to search for + * @param int $limit Maximum number of results to return (usually 10) + * @param int $offset Number of results to skip (usually 0) + * @return string[] Matching subpages + */ + public function prefixSearchSubpages( $search, $limit, $offset ) { + return $this->prefixSearchString( $search, $limit, $offset ); + } + protected function getGroupName() { return 'pagetools'; }