MediaWiki
REL1_34
WebInstallerDBConnect.php
Go to the documentation of this file.
1
<?php
22
class
WebInstallerDBConnect
extends
WebInstallerPage
{
23
27
public
function
execute
() {
28
if
( $this->
getVar
(
'_ExistingDBSettings'
) ) {
29
return
'skip'
;
30
}
31
32
$r = $this->parent->request;
33
if
( $r->wasPosted() ) {
34
$status = $this->
submit
();
35
36
if
( $status->isGood() ) {
37
$this->
setVar
(
'_UpgradeDone'
,
false
);
38
39
return
'continue'
;
40
}
else
{
41
$this->parent->showStatusBox( $status );
42
}
43
}
44
45
$this->
startForm
();
46
47
$types =
"<ul class=\"config-settings-block\">\n"
;
48
$settings =
''
;
49
$defaultType = $this->
getVar
(
'wgDBtype'
);
50
51
// Messages: config-dbsupport-mysql, config-dbsupport-postgres, config-dbsupport-sqlite
52
$dbSupport =
''
;
53
foreach
(
Installer::getDBTypes
() as
$type
) {
54
$dbSupport .=
wfMessage
(
"config-dbsupport-$type"
)->plain() .
"\n"
;
55
}
56
$this->
addHTML
( $this->parent->getInfoBox(
57
wfMessage
(
'config-support-info'
, trim( $dbSupport ) )->plain() ) );
58
59
// It's possible that the library for the default DB type is not compiled in.
60
// In that case, instead select the first supported DB type in the list.
61
$compiledDBs = $this->parent->getCompiledDBs();
62
if
( !in_array( $defaultType, $compiledDBs ) ) {
63
$defaultType = $compiledDBs[0];
64
}
65
66
foreach
( $compiledDBs as
$type
) {
67
$installer = $this->parent->getDBInstaller(
$type
);
68
$types .=
69
'<li>'
.
70
Xml::radioLabel(
71
$installer->getReadableName(),
72
'DBType'
,
73
$type
,
74
"DBType_$type"
,
75
$type
== $defaultType,
76
[
'class'
=>
'dbRadio'
,
'rel'
=>
"DB_wrapper_$type"
]
77
) .
78
"</li>\n"
;
79
80
// Messages: config-header-mysql, config-header-postgres, config-header-sqlite
81
$settings .= Html::openElement(
82
'div'
,
83
[
84
'id'
=>
'DB_wrapper_'
.
$type
,
85
'class'
=>
'dbWrapper'
86
]
87
) .
88
Html::element(
'h3'
, [],
wfMessage
(
'config-header-'
.
$type
)->text() ) .
89
$installer->getConnectForm() .
90
"</div>\n"
;
91
}
92
93
$types .=
"</ul><br style=\"clear: left\"/>\n"
;
94
95
$this->
addHTML
( $this->parent->label(
'config-db-type'
,
false
, $types ) . $settings );
96
$this->
endForm
();
97
98
return
null
;
99
}
100
104
public
function
submit
() {
105
$r = $this->parent->request;
106
$type
= $r->getVal(
'DBType'
);
107
if
( !
$type
) {
108
return
Status::newFatal(
'config-invalid-db-type'
);
109
}
110
$this->
setVar
(
'wgDBtype'
,
$type
);
111
$installer = $this->parent->getDBInstaller(
$type
);
112
if
( !$installer ) {
113
return
Status::newFatal(
'config-invalid-db-type'
);
114
}
115
116
return
$installer->submitConnectForm();
117
}
118
119
}
wfMessage
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
Definition
GlobalFunctions.php:1263
Installer\getDBTypes
static getDBTypes()
Get a list of known DB types.
Definition
Installer.php:470
WebInstallerDBConnect
Definition
WebInstallerDBConnect.php:22
WebInstallerDBConnect\submit
submit()
Definition
WebInstallerDBConnect.php:104
WebInstallerDBConnect\execute
execute()
Definition
WebInstallerDBConnect.php:27
WebInstallerPage
Abstract class to define pages for the web installer.
Definition
WebInstallerPage.php:30
WebInstallerPage\startForm
startForm()
Definition
WebInstallerPage.php:69
WebInstallerPage\setVar
setVar( $name, $value)
Definition
WebInstallerPage.php:160
WebInstallerPage\endForm
endForm( $continue='continue', $back='back')
Definition
WebInstallerPage.php:86
WebInstallerPage\addHTML
addHTML( $html)
Definition
WebInstallerPage.php:65
WebInstallerPage\getVar
getVar( $var, $default=null)
Definition
WebInstallerPage.php:152
$type
$type
Definition
testCompression.php:48
includes
installer
WebInstallerDBConnect.php
Generated on Mon Nov 25 2024 16:05:13 for MediaWiki by
1.10.0