41 $r = $this->parent->request;
42 if ( $r->wasPosted() && $this->submit() ) {
52 if ( $this->
getVar(
'wgSitename' ) ==
'MediaWiki' ) {
53 $this->
setVar(
'wgSitename',
'' );
58 $metaNS = $this->
getVar(
'wgMetaNamespace' );
61 wfMessage(
'config-ns-other-default' )->inContentLanguage()->text()
73 $this->parent->getTextBox( [
75 'label' =>
'config-server',
76 'help' => $this->parent->getHelpBox(
'config-server-help' )
78 $this->parent->getTextBox( [
79 'var' =>
'wgSitename',
80 'label' =>
'config-site-name',
81 'help' => $this->parent->getHelpBox(
'config-site-name-help' )
86 $this->parent->getRadioSet( [
87 'var' =>
'_NamespaceType',
88 'label' =>
'config-project-namespace',
89 'itemLabelPrefix' =>
'config-ns-',
90 'values' => [
'site-name',
'generic',
'other' ],
91 'commonAttribs' => [
'class' =>
'enableForOther',
92 'rel' =>
'config_wgMetaNamespace' ],
93 'help' => $this->parent->getHelpBox(
'config-project-namespace-help' )
95 $this->parent->getTextBox( [
96 'var' =>
'wgMetaNamespace',
98 'attribs' => [
'class' =>
'enabledByOther' ]
100 $this->getFieldsetStart(
'config-admin-box' ) .
101 $this->parent->getTextBox( [
102 'var' =>
'_AdminName',
103 'label' =>
'config-admin-name',
104 'help' => $this->parent->getHelpBox(
'config-admin-help' )
106 $this->parent->getPasswordBox( [
107 'var' =>
'_AdminPassword',
108 'label' =>
'config-admin-password',
110 $this->parent->getPasswordBox( [
111 'var' =>
'_AdminPasswordConfirm',
112 'label' =>
'config-admin-password-confirm'
114 $this->parent->getTextBox( [
115 'var' =>
'_AdminEmail',
119 'label' =>
'config-admin-email',
120 'help' => $this->parent->getHelpBox(
'config-admin-email-help' )
122 $this->parent->getCheckBox( [
123 'var' =>
'_Subscribe',
124 'label' =>
'config-subscribe',
125 'help' => $this->parent->getHelpBox(
'config-subscribe-help' )
127 $this->parent->getCheckBox( [
128 'var' =>
'wgPingback',
129 'label' =>
'config-pingback',
130 'help' => $this->parent->getHelpBox(
131 'config-pingback-help',
132 FormatJson::encode( $pingbackInfo,
true )
136 $this->getFieldsetEnd() .
137 $this->parent->getInfoBox(
wfMessage(
'config-almost-done' )->plain() ) .
141 $this->parent->getRadioSet( [
142 'var' =>
'_SkipOptional',
143 'itemLabelPrefix' =>
'config-optional-',
144 'values' => [
'continue',
'skip' ]
149 $this->
setVar(
'wgMetaNamespace', $metaNS );
163 $this->parent->setVarsFromRequest( [
'wgServer',
'wgSitename',
'_NamespaceType',
164 '_AdminName',
'_AdminPassword',
'_AdminPasswordConfirm',
'_AdminEmail',
165 '_Subscribe',
'_SkipOptional',
'wgMetaNamespace',
'wgPingback' ] );
168 if ( strval( $this->
getVar(
'wgSitename' ) ) ===
'' ) {
169 $this->parent->showError(
'config-site-name-blank' );
174 $nsType = $this->
getVar(
'_NamespaceType' );
175 if ( $nsType ==
'site-name' ) {
176 $name = $this->
getVar(
'wgSitename' );
179 $name = preg_replace(
'/[\[\]\{\}|#<>%+? ]/',
'_', $name );
180 $name = str_replace(
'&',
'&', $name );
181 $name = preg_replace(
'/__+/',
'_', $name );
182 $name = ucfirst( trim( $name,
'_' ) );
183 } elseif ( $nsType ==
'generic' ) {
184 $name =
wfMessage(
'config-ns-generic' )->text();
186 $name = $this->
getVar(
'wgMetaNamespace' );
190 if ( strpos( $name,
':' ) !==
false ) {
194 $title = Title::newFromText( $name );
196 $good = $nsType ==
'site-name';
198 $name = $title->getDBkey();
203 $this->parent->showError(
'config-ns-invalid', $name );
209 if ( $nsIndex !==
false && $nsIndex !==
NS_PROJECT ) {
210 $this->parent->showError(
'config-ns-conflict', $name );
214 $this->
setVar(
'wgMetaNamespace', $name );
217 $name = $this->
getVar(
'_AdminName' );
218 if ( strval( $name ) ===
'' ) {
219 $this->parent->showError(
'config-admin-name-blank' );
224 $cname = $userNameUtils->getCanonical( $name, UserRigorOptions::RIGOR_CREATABLE );
225 if ( $cname ===
false ) {
226 $this->parent->showError(
'config-admin-name-invalid', $name );
229 $this->
setVar(
'_AdminName', $cname );
235 $pwd = $this->
getVar(
'_AdminPassword' );
236 $user = User::newFromName( $cname );
242 $status = $upp->checkUserPasswordForGroups(
245 [
'bureaucrat',
'sysop',
'interface-admin' ]
247 $valid = $status->isGood() ? true : $status->getMessage();
249 $valid =
'config-admin-name-invalid';
251 if ( strval( $pwd ) ===
'' ) {
253 $msg =
'config-admin-password-blank';
254 } elseif ( $pwd !== $this->
getVar(
'_AdminPasswordConfirm' ) ) {
255 $msg =
'config-admin-password-mismatch';
256 } elseif ( $valid !==
true ) {
259 if ( $msg !==
false ) {
260 $this->parent->showError( $msg );
261 $this->
setVar(
'_AdminPassword',
'' );
262 $this->
setVar(
'_AdminPasswordConfirm',
'' );
267 $email = $this->
getVar(
'_AdminEmail' );
268 if ( $email && !Sanitizer::validateEmail( $email ) ) {
269 $this->parent->showError(
'config-admin-error-bademail' );
274 if ( !$email && $this->
getVar(
'_Subscribe' ) ) {
275 $this->parent->showError(
'config-subscribe-noemail' );