MediaWiki
REL1_34
WebInstallerLanguage.php
Go to the documentation of this file.
1
<?php
22
class
WebInstallerLanguage
extends
WebInstallerPage
{
23
27
public
function
execute
() {
28
global
$wgLang
;
29
$r = $this->parent->request;
30
$userLang = $r->getVal(
'uselang'
);
31
$contLang = $r->getVal(
'ContLang'
);
32
33
$languages
= Language::fetchLanguageNames(
null
,
'mwfile'
);
34
$lifetime = intval( ini_get(
'session.gc_maxlifetime'
) );
35
if
( !$lifetime ) {
36
$lifetime = 1440;
// PHP default
37
}
38
39
if
( $r->wasPosted() ) {
40
# Do session test
41
if
( $this->parent->getSession(
'test'
) ===
null
) {
42
$requestTime = $r->getVal(
'LanguageRequestTime'
);
43
if
( !$requestTime ) {
44
// The most likely explanation is that the user was knocked back
45
// from another page on POST due to session expiry
46
$msg =
'config-session-expired'
;
47
} elseif ( time() - $requestTime > $lifetime ) {
48
$msg =
'config-session-expired'
;
49
}
else
{
50
$msg =
'config-no-session'
;
51
}
52
$this->parent->showError( $msg,
$wgLang
->formatTimePeriod( $lifetime ) );
53
}
else
{
54
if
( isset(
$languages
[$userLang] ) ) {
55
$this->
setVar
(
'_UserLang'
, $userLang );
56
}
57
if
( isset(
$languages
[$contLang] ) ) {
58
$this->
setVar
(
'wgLanguageCode'
, $contLang );
59
}
60
61
return
'continue'
;
62
}
63
} elseif ( $this->parent->showSessionWarning ) {
64
# The user was knocked back from another page to the start
65
# This probably indicates a session expiry
66
$this->parent->showError(
'config-session-expired'
,
67
$wgLang
->formatTimePeriod( $lifetime ) );
68
}
69
70
$this->parent->setSession(
'test'
,
true
);
71
72
if
( !isset(
$languages
[$userLang] ) ) {
73
$userLang = $this->
getVar
(
'_UserLang'
,
'en'
);
74
}
75
if
( !isset(
$languages
[$contLang] ) ) {
76
$contLang = $this->
getVar
(
'wgLanguageCode'
,
'en'
);
77
}
78
$this->
startForm
();
79
$s
= Html::hidden(
'LanguageRequestTime'
, time() ) .
80
$this->
getLanguageSelector
(
'uselang'
,
'config-your-language'
, $userLang,
81
$this->parent->getHelpBox(
'config-your-language-help'
) ) .
82
$this->
getLanguageSelector
(
'ContLang'
,
'config-wiki-language'
, $contLang,
83
$this->parent->getHelpBox(
'config-wiki-language-help'
) );
84
$this->
addHTML
(
$s
);
85
$this->
endForm
(
'continue'
,
false
);
86
87
return
null
;
88
}
89
100
public
function
getLanguageSelector
( $name, $label, $selectedCode, $helpHtml =
''
) {
101
$output = $helpHtml;
102
103
$select =
new
XmlSelect
( $name, $name, $selectedCode );
104
$select->setAttribute(
'tabindex'
, $this->parent->nextTabIndex() );
105
106
$languages
= Language::fetchLanguageNames(
null
,
'mwfile'
);
107
foreach
(
$languages
as $code =>
$lang
) {
108
$select->addOption(
"$code - $lang"
, $code );
109
}
110
111
$output .= $select->getHTML();
112
return
$this->parent->label( $label, $name, $output );
113
}
114
115
}
$wgLang
$wgLang
Definition
Setup.php:880
WebInstallerLanguage
Definition
WebInstallerLanguage.php:22
WebInstallerLanguage\getLanguageSelector
getLanguageSelector( $name, $label, $selectedCode, $helpHtml='')
Get a "<select>" for selecting languages.
Definition
WebInstallerLanguage.php:100
WebInstallerLanguage\execute
execute()
Definition
WebInstallerLanguage.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
XmlSelect
Class for generating HTML <select> or <datalist> elements.
Definition
XmlSelect.php:26
$s
$s
Definition
mergeMessageFileList.php:185
$lang
if(!isset( $args[0])) $lang
Definition
testCompression.php:33
$languages
switch( $options['output']) $languages
Definition
transstat.php:76
includes
installer
WebInstallerLanguage.php
Generated on Fri Apr 5 2024 23:10:00 for MediaWiki by
1.9.8