MediaWiki REL1_34
SpecialNewSection.php
Go to the documentation of this file.
1<?php
24 public function __construct() {
25 parent::__construct( 'NewSection' );
26 $this->mAllowedRedirectParams = [ 'preloadtitle', 'nosummary', 'editintro',
27 'preload', 'preloadparams', 'summary' ];
28 }
29
33 public function getRedirect( $subpage ) {
34 if ( $subpage === null || $subpage === '' ) {
35 return false;
36 }
37 $this->mAddedRedirectParams['title'] = $subpage;
38 $this->mAddedRedirectParams['action'] = 'edit';
39 $this->mAddedRedirectParams['section'] = 'new';
40 return true;
41 }
42
43 protected function showNoRedirectPage() {
44 $this->setHeaders();
45 $this->outputHeader();
46 $this->addHelpLink( 'Help:New section' );
47 $this->showForm();
48 }
49
50 private function showForm() {
51 $form = HTMLForm::factory( 'ooui', [
52 'page' => [
53 'type' => 'text',
54 'name' => 'page',
55 'label-message' => 'newsection-page',
56 'required' => true,
57 ],
58 ], $this->getContext(), 'newsection' );
59 $form->setSubmitTextMsg( 'newsection-submit' );
60 $form->setSubmitCallback( [ $this, 'onFormSubmit' ] );
61 $form->show();
62 }
63
64 public function onFormSubmit( $formData ) {
65 $title = $formData['page'];
66 try {
67 $page = Title::newFromTextThrow( $title );
68 } catch ( MalformedTitleException $e ) {
69 return Status::newFatal( $e->getMessageObject() );
70 }
71 $query = [ 'action' => 'edit', 'section' => 'new' ];
72 $url = $page->getFullUrlForRedirect( $query );
73 $this->getOutput()->redirect( $url );
74 }
75
76 public function isListed() {
77 return true;
78 }
79
80 protected function getGroupName() {
81 return 'redirects';
82 }
83}
MalformedTitleException is thrown when a TitleParser is unable to parse a title string.
Shortcut to construct a special page alias.
getGroupName()
Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-gro...
getRedirect( $subpage)
If the special page is a redirect, then get the Title object it redirects to.False otherwise....
isListed()
Whether this special page is listed in Special:SpecialPages.
outputHeader( $summaryMessageKey='')
Outputs a summary message on top of special pages Per default the message key is the canonical name o...
setHeaders()
Sets headers - this should be called from the execute() method of all derived classes!
getOutput()
Get the OutputPage being used for this instance.
getContext()
Gets the context this SpecialPage is executed in.
addHelpLink( $to, $overrideBaseUrl=false)
Adds help link with an icon via page indicators.