3 namespace MediaWiki\Installer
;
5 use MediaWiki\Html\Html
;
6 use MediaWiki\Status\Status
;
11 class DatabaseSettingsForm
extends DatabaseForm
{
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() {
25 * Set variables based on the request array, assuming it was submitted via
26 * the form return by getSettingsForm().
30 public function submit() {
31 return Status
::newGood();
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).
41 protected function getWebUserBox( $noCreateMsg = false ) {
42 $wrapperStyle = $this->getVar( '_SameAccount' ) ?
'display: none' : '';
43 $s = "<span class=\"cdx-card\"><span class=\"cdx-card__text\">" .
46 [ 'class' => 'cdx-card__text__title' ],
47 wfMessage( 'config-db-web-account' )->text()
50 '_SameAccount', 'config-db-web-account-same',
51 [ 'class' => 'hideShowRadio cdx-checkbox__input', 'rel' => 'dbOtherAccount' ]
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' );
58 $s .= Html
::warningBox( wfMessage( $noCreateMsg )->parse(), 'config-warning-box' );
60 $s .= $this->getCheckBox( '_CreateDBAccount', 'config-db-web-create' );
62 $s .= Html
::closeElement( 'div' ) . "</span></span></span>";
68 * Submit the form from getWebUserBox().
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();