getOutput(); $this->setHeaders(); if ( !$this->getConfig()->get( 'UseDatabaseMessages' ) ) { $out->addWikiMsg( 'allmessages-not-supported-database' ); return; } $out->addModuleStyles( 'mediawiki.special' ); $this->addHelpLink( 'Help:System message' ); $contLang = MediaWikiServices::getInstance()->getContentLanguage()->getCode(); $lang = $this->getLanguage(); $opts = new FormOptions(); $opts->add( 'prefix', '' ); $opts->add( 'filter', 'all' ); $opts->add( 'lang', $contLang ); $opts->add( 'limit', 50 ); $opts->fetchValuesFromRequest( $this->getRequest() ); $opts->validateIntBounds( 'limit', 0, 5000 ); $pager = new AllMessagesTablePager( $this->getContext(), $opts ); $formDescriptor = [ 'prefix' => [ 'type' => 'text', 'name' => 'prefix', 'label-message' => 'allmessages-prefix', ], 'filter' => [ 'type' => 'radio', 'name' => 'filter', 'label-message' => 'allmessages-filter', 'options-messages' => [ 'allmessages-filter-unmodified' => 'unmodified', 'allmessages-filter-all' => 'all', 'allmessages-filter-modified' => 'modified', ], 'default' => 'all', 'flatlist' => true, ], 'lang' => [ 'type' => 'language', 'name' => 'lang', 'label-message' => 'allmessages-language', 'default' => $opts->getValue( 'lang' ), ], 'limit' => [ 'type' => 'limitselect', 'name' => 'limit', 'label-message' => 'table_pager_limit_label', 'options' => [ $lang->formatNum( 20 ) => 20, $lang->formatNum( 50 ) => 50, $lang->formatNum( 100 ) => 100, $lang->formatNum( 250 ) => 250, $lang->formatNum( 500 ) => 500, $lang->formatNum( 5000 ) => 5000, ], 'default' => $opts->getValue( 'limit' ), ], ]; $htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() ); $htmlForm ->setMethod( 'get' ) ->setIntro( $this->msg( 'allmessagestext' ) ) ->setWrapperLegendMsg( 'allmessages' ) ->setSubmitTextMsg( 'allmessages-filter-submit' ) ->prepareForm() ->displayForm( false ); $out->addParserOutputContent( $pager->getFullOutput() ); } protected function getGroupName() { return 'wiki'; } }