mAllowedRedirectParams = []; } /** * @param string|null $subpage * @return Title|bool */ public function getRedirect( $subpage ) { $subpage = intval( $subpage ); if ( $subpage === 0 ) { return false; } $this->mAddedRedirectParams['oldid'] = $subpage; return true; } protected function showNoRedirectPage() { $this->setHeaders(); $this->outputHeader(); $this->showForm(); } private function showForm() { $form = HTMLForm::factory( 'ooui', [ 'revid' => [ 'type' => 'int', 'name' => 'revid', 'label-message' => 'permanentlink-revid', ], ], $this->getContext(), 'permanentlink' ); $form->setSubmitTextMsg( 'permanentlink-submit' ); $form->setSubmitCallback( [ $this, 'onFormSubmit' ] ); $form->show(); } public function onFormSubmit( $formData ) { $revid = $formData['revid']; $title = $this->getPageTitle( $revid ?: null ); $url = $title->getFullUrlForRedirect(); $this->getOutput()->redirect( $url ); } public function isListed() { return true; } protected function getGroupName() { return 'redirects'; } }