blob: cedf2edcb23b78ea66e54d3dcc4e0f6452ec0a07 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
<?php
namespace MediaWiki\HTMLForm\Field;
use Closure;
use MediaWiki\HTMLForm\HTMLFormField;
/**
* An information field (text blob), not a proper input.
* @stable to extend
*/
class HTMLInfoField extends HTMLFormField {
/**
* @stable to call
*
* @param array $info
* In addition to the usual HTMLFormField parameters, this can take the following fields:
* - default: the value (text) of the field. Unlike other form field types, HTMLInfoField can
* take a closure as a default value, which will be evaluated with $info as its only parameter.
* - raw: if true, the value won't be escaped.
* - rawrow: if true, the usual wrapping of form fields (e.g. into a table row + cell when
* display mode is table) will not happen and the value must contain it already.
*/
public function __construct( $info ) {
$info['nodata'] = true;
parent::__construct( $info );
}
/**
* @inheritDoc
* @stable to override
*/
public function getDefault() {
$default = parent::getDefault();
if ( $default instanceof Closure ) {
$default = $default( $this->mParams );
}
return $default;
}
/**
* @inheritDoc
* @stable to override
*/
public function getInputHTML( $value ) {
return !empty( $this->mParams['raw'] ) ? $value : htmlspecialchars( $value );
}
/**
* @inheritDoc
* @stable to override
*/
public function getInputOOUI( $value ) {
if ( !empty( $this->mParams['raw'] ) ) {
$value = new \OOUI\HtmlSnippet( $value );
}
return new \OOUI\LabelWidget( [
'label' => $value,
'id' => $this->mID
] );
}
/**
* @inheritDoc
* @stable to override
*/
public function getTableRow( $value ) {
if ( !empty( $this->mParams['rawrow'] ) ) {
return $value;
}
return parent::getTableRow( $value );
}
/**
* @stable to override
* @param string $value
* @return string
* @since 1.20
*/
public function getDiv( $value ) {
if ( !empty( $this->mParams['rawrow'] ) ) {
return $value;
}
return parent::getDiv( $value );
}
/**
* @stable to override
* @param string $value
* @return string
* @since 1.20
*/
public function getRaw( $value ) {
if ( !empty( $this->mParams['rawrow'] ) ) {
return $value;
}
return parent::getRaw( $value );
}
/**
* @stable to override
* @param mixed $value If not FieldLayout or subclass has been deprecated.
* @return \OOUI\FieldLayout
* @since 1.32
*/
public function getOOUI( $value ) {
if ( !empty( $this->mParams['rawrow'] ) ) {
if ( !( $value instanceof \OOUI\FieldLayout ) ) {
wfDeprecatedMsg( __METHOD__ . ": 'default' parameter as a string when using " .
"'rawrow' was deprecated in MediaWiki 1.32 (must be a FieldLayout or subclass)",
'1.32' );
}
return $value;
}
return parent::getOOUI( $value );
}
public function getCodex( $value ) {
if ( !empty( $this->mParams['rawrow'] ) ) {
return $value;
}
return parent::getCodex( $value );
}
/**
* @inheritDoc
* @stable to override
*/
protected function needsLabel() {
return false;
}
}
/** @deprecated class alias since 1.42 */
class_alias( HTMLInfoField::class, 'HTMLInfoField' );
|