MediaWiki
REL1_37
HTMLTextAreaField.php
Go to the documentation of this file.
1
<?php
2
3
/*
4
* @stable to extend
5
*/
6
class
HTMLTextAreaField
extends
HTMLFormField
{
7
protected
const
DEFAULT_COLS
= 80;
8
protected
const
DEFAULT_ROWS
= 25;
9
10
protected
$mPlaceholder
=
''
;
11
protected
$mUseEditFont
=
false
;
12
22
public
function
__construct
( $params ) {
23
parent::__construct( $params );
24
25
if
( isset( $params[
'placeholder-message'
] ) ) {
26
$this->mPlaceholder = $this->
getMessage
( $params[
'placeholder-message'
] )->text();
27
} elseif ( isset( $params[
'placeholder'
] ) ) {
28
$this->mPlaceholder = $params[
'placeholder'
];
29
}
30
31
if
( isset( $params[
'useeditfont'
] ) ) {
32
$this->mUseEditFont = $params[
'useeditfont'
];
33
}
34
}
35
36
public
function
getCols
() {
37
return
$this->mParams[
'cols'
] ?? static::DEFAULT_COLS;
38
}
39
40
public
function
getRows
() {
41
return
$this->mParams[
'rows'
] ?? static::DEFAULT_ROWS;
42
}
43
44
public
function
getSpellCheck
() {
45
$val = $this->mParams[
'spellcheck'
] ??
null
;
46
if
( is_bool( $val ) ) {
47
// "spellcheck" attribute literally requires "true" or "false" to work.
48
return
$val ?
'true'
:
'false'
;
49
}
50
return
null
;
51
}
52
57
public
function
getInputHTML
( $value ) {
58
$classes = [];
59
60
$attribs = [
61
'id'
=>
$this->mID
,
62
'cols'
=> $this->
getCols
(),
63
'rows'
=> $this->
getRows
(),
64
'spellcheck'
=> $this->
getSpellCheck
(),
65
] + $this->
getTooltipAndAccessKey
();
66
67
if
( $this->mClass !==
''
) {
68
array_push( $classes, $this->mClass );
69
}
70
if
( $this->mUseEditFont ) {
71
// The following classes can be used here:
72
// * mw-editfont-monospace
73
// * mw-editfont-sans-serif
74
// * mw-editfont-serif
75
array_push(
76
$classes,
77
'mw-editfont-'
. $this->mParent->getUser()->getOption(
'editfont'
)
78
);
79
$this->mParent->getOutput()->addModuleStyles(
'mediawiki.editfont.styles'
);
80
}
81
if
( $this->mPlaceholder !==
''
) {
82
$attribs[
'placeholder'
] =
$this->mPlaceholder
;
83
}
84
if
( $classes ) {
85
$attribs[
'class'
] = $classes;
86
}
87
88
$allowedParams = [
89
'tabindex'
,
90
'disabled'
,
91
'readonly'
,
92
'required'
,
93
'autofocus'
94
];
95
96
$attribs += $this->
getAttributes
( $allowedParams );
97
return
Html::textarea( $this->mName, $value, $attribs );
98
}
99
104
public
function
getInputOOUI
( $value ) {
105
$classes = [];
106
107
if
( isset( $this->mParams[
'cols'
] ) ) {
108
throw
new
Exception(
"OOUIHTMLForm does not support the 'cols' parameter for textareas"
);
109
}
110
111
$attribs = $this->
getTooltipAndAccessKeyOOUI
();
112
113
if
( $this->mClass !==
''
) {
114
array_push( $classes, $this->mClass );
115
}
116
if
( $this->mUseEditFont ) {
117
// The following classes can be used here:
118
// * mw-editfont-monospace
119
// * mw-editfont-sans-serif
120
// * mw-editfont-serif
121
array_push(
122
$classes,
123
'mw-editfont-'
. $this->mParent->getUser()->getOption(
'editfont'
)
124
);
125
$this->mParent->getOutput()->addModuleStyles(
'mediawiki.editfont.styles'
);
126
}
127
if
( $this->mPlaceholder !==
''
) {
128
$attribs[
'placeholder'
] =
$this->mPlaceholder
;
129
}
130
if
( count( $classes ) ) {
131
$attribs[
'classes'
] = $classes;
132
}
133
134
$allowedParams = [
135
'tabindex'
,
136
'disabled'
,
137
'readonly'
,
138
'required'
,
139
'autofocus'
,
140
];
141
142
$attribs += OOUI\Element::configFromHtmlAttributes(
143
$this->
getAttributes
( $allowedParams )
144
);
145
146
return
new
OOUI\MultilineTextInputWidget( [
147
'id'
=> $this->mID,
148
'name'
=> $this->mName,
149
'value'
=> $value,
150
'rows'
=> $this->
getRows
(),
151
] + $attribs );
152
}
153
}
HTMLFormField
The parent class to generate form fields.
Definition
HTMLFormField.php:9
HTMLFormField\$mID
$mID
Definition
HTMLFormField.php:18
HTMLFormField\getMessage
getMessage( $value)
Turns a *-message parameter (which could be a MessageSpecifier, or a message name,...
Definition
HTMLFormField.php:1212
HTMLFormField\getTooltipAndAccessKeyOOUI
getTooltipAndAccessKeyOOUI()
Returns the attributes required for the tooltip and accesskey, for OOUI widgets' config.
Definition
HTMLFormField.php:1033
HTMLFormField\getAttributes
getAttributes(array $list)
Returns the given attributes from the parameters.
Definition
HTMLFormField.php:1051
HTMLFormField\getTooltipAndAccessKey
getTooltipAndAccessKey()
Returns the attributes required for the tooltip and accesskey, for Html::element() etc.
Definition
HTMLFormField.php:1020
HTMLTextAreaField
Definition
HTMLTextAreaField.php:6
HTMLTextAreaField\getInputHTML
getInputHTML( $value)
This function must be implemented to return the HTML to generate the input object itself....
Definition
HTMLTextAreaField.php:57
HTMLTextAreaField\__construct
__construct( $params)
Definition
HTMLTextAreaField.php:22
HTMLTextAreaField\$mUseEditFont
$mUseEditFont
Definition
HTMLTextAreaField.php:11
HTMLTextAreaField\DEFAULT_ROWS
const DEFAULT_ROWS
Definition
HTMLTextAreaField.php:8
HTMLTextAreaField\getCols
getCols()
Definition
HTMLTextAreaField.php:36
HTMLTextAreaField\getRows
getRows()
Definition
HTMLTextAreaField.php:40
HTMLTextAreaField\DEFAULT_COLS
const DEFAULT_COLS
Definition
HTMLTextAreaField.php:7
HTMLTextAreaField\getInputOOUI
getInputOOUI( $value)
Same as getInputHTML, but returns an OOUI object.Defaults to false, which getOOUI will interpret as "...
Definition
HTMLTextAreaField.php:104
HTMLTextAreaField\getSpellCheck
getSpellCheck()
Definition
HTMLTextAreaField.php:44
HTMLTextAreaField\$mPlaceholder
$mPlaceholder
Definition
HTMLTextAreaField.php:10
includes
htmlform
fields
HTMLTextAreaField.php
Generated on Fri Apr 5 2024 23:40:20 for MediaWiki by
1.9.8