getVar( '_ExistingDBSettings' ) ) { return 'skip'; } $r = $this->parent->request; if ( $r->wasPosted() ) { $status = $this->submit(); if ( $status->isGood() ) { $this->setVar( '_UpgradeDone', false ); return 'continue'; } else { $this->parent->showStatusBox( $status ); } } $this->startForm(); $types = ""; $settings = ''; foreach ( $compiledDBs as $type ) { $installer = $this->parent->getDBInstaller( $type ); $types .= ""; $id = "DBType_$type"; $types .= Xml::radio( 'DBType', $type, $type == $defaultType, [ 'id' => $id, 'class' => 'cdx-radio__input dbRadio', 'rel' => "DB_wrapper_$type", ] ) . "\u{00A0}" . Xml::label( $installer->getReadableName(), $id, [ 'class' => 'cdx-radio__label' ] ); $types .= ""; // Messages: config-header-mysql, config-header-postgres, config-header-sqlite $settings .= Html::openElement( 'div', [ 'id' => 'DB_wrapper_' . $type, 'class' => 'dbWrapper' ] ) . Html::element( 'h3', [], wfMessage( 'config-header-' . $type )->text() ) . $installer->getConnectForm( $this->parent )->getHtml() . "\n"; } $types .= "
\n"; $this->addHTML( $this->parent->label( 'config-db-type', false, $types ) . $settings ); $this->endForm(); return null; } /** * @return Status */ public function submit() { $r = $this->parent->request; $type = $r->getVal( 'DBType' ); if ( !$type ) { return Status::newFatal( 'config-invalid-db-type' ); } $this->setVar( 'wgDBtype', $type ); $installer = $this->parent->getDBInstaller( $type ); if ( !$installer ) { return Status::newFatal( 'config-invalid-db-type' ); } return $installer->getConnectForm( $this->parent )->submit(); } }