Merge ".mailmap: Correct two contributor names"
[mediawiki.git] / includes / installer / DatabaseSettingsForm.php
blob4f325333fb9f822553ee29c87e1c63b668d5c676
1 <?php
3 namespace MediaWiki\Installer;
5 use MediaWiki\Html\Html;
6 use MediaWiki\Status\Status;
8 /**
9 * @internal
11 class DatabaseSettingsForm extends DatabaseForm {
13 /**
14 * Get HTML for a web form that retrieves settings used for installation.
15 * $this->parent can be assumed to be a WebInstaller.
16 * If the DB type has no settings beyond those already configured with
17 * getConnectForm(), this should return false.
18 * @return string|false
20 public function getHtml() {
21 return false;
24 /**
25 * Set variables based on the request array, assuming it was submitted via
26 * the form return by getSettingsForm().
28 * @return Status
30 public function submit() {
31 return Status::newGood();
34 /**
35 * Get a standard web-user fieldset
36 * @param string|false $noCreateMsg Message to display instead of the creation checkbox.
37 * Set this to false to show a creation checkbox (default).
39 * @return string
41 protected function getWebUserBox( $noCreateMsg = false ) {
42 $wrapperStyle = $this->getVar( '_SameAccount' ) ? 'display: none' : '';
43 $s = "<span class=\"cdx-card\"><span class=\"cdx-card__text\">" .
44 Html::element(
45 'span',
46 [ 'class' => 'cdx-card__text__title' ],
47 wfMessage( 'config-db-web-account' )->text()
48 ) .
49 $this->getCheckBox(
50 '_SameAccount', 'config-db-web-account-same',
51 [ 'class' => 'hideShowRadio cdx-checkbox__input', 'rel' => 'dbOtherAccount' ]
52 ) .
53 Html::openElement( 'div', [ 'id' => 'dbOtherAccount', 'style' => $wrapperStyle ] ) .
54 $this->getTextBox( 'wgDBuser', 'config-db-username' ) .
55 $this->getPasswordBox( 'wgDBpassword', 'config-db-password' ) .
56 $this->webInstaller->getHelpBox( 'config-db-web-help' );
57 if ( $noCreateMsg ) {
58 $s .= Html::warningBox( wfMessage( $noCreateMsg )->parse(), 'config-warning-box' );
59 } else {
60 $s .= $this->getCheckBox( '_CreateDBAccount', 'config-db-web-create' );
62 $s .= Html::closeElement( 'div' ) . "</span></span></span>";
64 return $s;
67 /**
68 * Submit the form from getWebUserBox().
70 * @return Status
72 public function submitWebUserBox() {
73 $this->setVarsFromRequest(
74 [ 'wgDBuser', 'wgDBpassword', '_SameAccount', '_CreateDBAccount' ]
77 if ( $this->getVar( '_SameAccount' ) ) {
78 $this->setVar( 'wgDBuser', $this->getVar( '_InstallUser' ) );
79 $this->setVar( 'wgDBpassword', $this->getVar( '_InstallPassword' ) );
82 if ( $this->getVar( '_CreateDBAccount' ) && strval( $this->getVar( 'wgDBpassword' ) ) == '' ) {
83 return Status::newFatal( 'config-db-password-empty', $this->getVar( 'wgDBuser' ) );
86 return Status::newGood();