Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
Constants | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | namespace MediaWiki\Skins\Vector; |
3 | |
4 | use FatalError; |
5 | |
6 | /** |
7 | * A namespace for Vector constants for internal Vector usage only. **Do not rely on this file as an |
8 | * API as it may change without warning at any time.** |
9 | * @package Vector |
10 | * @internal |
11 | */ |
12 | final class Constants { |
13 | /** |
14 | * This is tightly coupled to the ValidSkinNames field in skin.json. |
15 | * @var string |
16 | */ |
17 | public const SKIN_NAME_MODERN = 'vector-2022'; |
18 | |
19 | /** |
20 | * This is tightly coupled to the ValidSkinNames field in skin.json. |
21 | * @var string |
22 | */ |
23 | public const SKIN_NAME_LEGACY = 'vector'; |
24 | |
25 | // These are used to provide different default skin for new users. |
26 | /** |
27 | * @var string |
28 | */ |
29 | public const SKIN_VERSION_LEGACY = '1'; |
30 | /** |
31 | * @var string |
32 | */ |
33 | public const SKIN_VERSION_LATEST = '2'; |
34 | |
35 | // These are tightly coupled to skin.json's configs. See skin.json for documentation. |
36 | /** |
37 | * @var string |
38 | */ |
39 | public const CONFIG_KEY_DEFAULT_SKIN_VERSION_FOR_NEW_ACCOUNTS = |
40 | 'VectorDefaultSkinVersionForNewAccounts'; |
41 | |
42 | /** |
43 | * @var string |
44 | */ |
45 | public const PREF_KEY_SKIN = 'skin'; |
46 | |
47 | // These are used in the Feature Management System. |
48 | /** |
49 | * Also known as `$wgFullyInitialised`. Set to true in core/includes/Setup.php. |
50 | * @var string |
51 | */ |
52 | public const CONFIG_KEY_FULLY_INITIALISED = 'FullyInitialised'; |
53 | |
54 | /** |
55 | * @var string |
56 | */ |
57 | public const REQUIREMENT_FULLY_INITIALISED = 'FullyInitialised'; |
58 | |
59 | /** |
60 | * @var string |
61 | */ |
62 | public const REQUIREMENT_LOGGED_IN = 'LoggedIn'; |
63 | |
64 | /** |
65 | * @var string |
66 | */ |
67 | public const FEATURE_LANGUAGE_IN_HEADER = 'LanguageInHeader'; |
68 | |
69 | /** |
70 | * @var string |
71 | */ |
72 | public const CONFIG_KEY_LANGUAGE_IN_HEADER = 'VectorLanguageInHeader'; |
73 | |
74 | /** |
75 | * @var string |
76 | */ |
77 | public const REQUIREMENT_LANGUAGE_IN_HEADER = 'LanguageInHeader'; |
78 | |
79 | /** |
80 | * Defines whether an A/B test is running. |
81 | * |
82 | * @var string |
83 | */ |
84 | public const CONFIG_WEB_AB_TEST_ENROLLMENT = 'VectorWebABTestEnrollment'; |
85 | |
86 | /** |
87 | * The `mediawiki.searchSuggest` protocol piece of the SearchSatisfaction instrumention reads |
88 | * the value of an element with the "data-search-loc" attribute and set the event's |
89 | * `inputLocation` property accordingly. |
90 | * |
91 | * When the search widget is moved as part of the "Search 1: Search widget move" feature, the |
92 | * "data-search-loc" attribute is set to this value. |
93 | * |
94 | * See also: |
95 | * - https://www.mediawiki.org/wiki/Reading/Web/Desktop_Improvements/Features#Search_1:_Search_widget_move |
96 | * - https://phabricator.wikimedia.org/T261636 and https://phabricator.wikimedia.org/T256100 |
97 | * - https://gerrit.wikimedia.org/g/mediawiki/core/+/61d36def2d7adc15c88929c824b444f434a0511a/resources/src/mediawiki.searchSuggest/searchSuggest.js#106 |
98 | * |
99 | * @var string |
100 | */ |
101 | public const SEARCH_BOX_INPUT_LOCATION_MOVED = 'header-moved'; |
102 | |
103 | /** |
104 | * Similar to `Constants::SEARCH_BOX_INPUT_LOCATION_MOVED`, when the search widget hasn't been |
105 | * moved, the "data-search-loc" attribute is set to this value. |
106 | * |
107 | * @var string |
108 | */ |
109 | public const SEARCH_BOX_INPUT_LOCATION_DEFAULT = 'header-navigation'; |
110 | |
111 | /** |
112 | * @var string |
113 | */ |
114 | public const REQUIREMENT_IS_MAIN_PAGE = 'IsMainPage'; |
115 | |
116 | /** |
117 | * @var string |
118 | */ |
119 | public const REQUIREMENT_LANGUAGE_IN_MAIN_PAGE_HEADER = 'LanguageInMainPageHeader'; |
120 | |
121 | /** |
122 | * @var string |
123 | */ |
124 | public const CONFIG_LANGUAGE_IN_MAIN_PAGE_HEADER = 'VectorLanguageInMainPageHeader'; |
125 | |
126 | /** |
127 | * @var string |
128 | */ |
129 | public const FEATURE_LANGUAGE_IN_MAIN_PAGE_HEADER = 'LanguageInMainPageHeader'; |
130 | |
131 | /** |
132 | * @var string |
133 | */ |
134 | public const WEB_AB_TEST_ARTICLE_ID_FACTORY_SERVICE = 'WikimediaEvents.WebABTestArticleIdFactory'; |
135 | |
136 | /** |
137 | * @var string |
138 | */ |
139 | public const FEATURE_PAGE_TOOLS_PINNED = 'PageToolsPinned'; |
140 | |
141 | /** |
142 | * @var string |
143 | */ |
144 | public const REQUIREMENT_PAGE_TOOLS_PINNED = 'PageToolsPinned'; |
145 | |
146 | /** |
147 | * @var string |
148 | */ |
149 | public const PREF_KEY_PAGE_TOOLS_PINNED = 'vector-page-tools-pinned'; |
150 | |
151 | /** |
152 | * @var string |
153 | */ |
154 | public const REQUIREMENT_TOC_PINNED = 'TOCPinned'; |
155 | |
156 | /** |
157 | * @var string |
158 | */ |
159 | public const PREF_KEY_TOC_PINNED = 'vector-toc-pinned'; |
160 | |
161 | /** |
162 | * @var string |
163 | */ |
164 | public const FEATURE_TOC_PINNED = 'TOCPinned'; |
165 | |
166 | /** |
167 | * @var string |
168 | */ |
169 | public const FEATURE_MAIN_MENU_PINNED = 'MainMenuPinned'; |
170 | |
171 | /** |
172 | * @var string |
173 | */ |
174 | public const REQUIREMENT_MAIN_MENU_PINNED = 'MainMenuPinned'; |
175 | |
176 | /** |
177 | * @var string |
178 | */ |
179 | public const PREF_KEY_MAIN_MENU_PINNED = 'vector-main-menu-pinned'; |
180 | |
181 | /** |
182 | * @var string |
183 | */ |
184 | public const FEATURE_LIMITED_WIDTH = 'LimitedWidth'; |
185 | |
186 | /** |
187 | * @var string |
188 | */ |
189 | public const REQUIREMENT_LIMITED_WIDTH = 'LimitedWidth'; |
190 | |
191 | /** |
192 | * @var string |
193 | */ |
194 | public const PREF_KEY_LIMITED_WIDTH = 'vector-limited-width'; |
195 | |
196 | /** |
197 | * @var string |
198 | */ |
199 | public const FEATURE_LIMITED_WIDTH_CONTENT = 'LimitedWidthContent'; |
200 | |
201 | /** |
202 | * @var string |
203 | */ |
204 | public const REQUIREMENT_LIMITED_WIDTH_CONTENT = 'LimitedWidthContent'; |
205 | |
206 | /** |
207 | * @var bool |
208 | */ |
209 | public const CONFIG_DEFAULT_LIMITED_WIDTH = 1; |
210 | |
211 | /** |
212 | * @var string |
213 | */ |
214 | public const PREF_KEY_FONT_SIZE = 'vector-font-size'; |
215 | |
216 | /** |
217 | * @var string |
218 | */ |
219 | public const FEATURE_FONT_SIZE = 'CustomFontSize'; |
220 | |
221 | /** |
222 | * @var string |
223 | */ |
224 | public const REQUIREMENT_FONT_SIZE = 'CustomFontSize'; |
225 | |
226 | /** |
227 | * @var string |
228 | */ |
229 | public const FEATURE_APPEARANCE_PINNED = 'AppearancePinned'; |
230 | |
231 | /** |
232 | * @var string |
233 | */ |
234 | public const REQUIREMENT_APPEARANCE_PINNED = 'AppearancePinned'; |
235 | |
236 | /** |
237 | * @var string |
238 | */ |
239 | public const PREF_KEY_APPEARANCE_PINNED = 'vector-appearance-pinned'; |
240 | |
241 | /** |
242 | * @var string |
243 | */ |
244 | public const CONFIG_KEY_NIGHT_MODE = 'VectorNightMode'; |
245 | |
246 | /** |
247 | * @var string |
248 | */ |
249 | public const FEATURE_NIGHT_MODE = 'NightMode'; |
250 | |
251 | /** |
252 | * @var string |
253 | */ |
254 | public const REQUIREMENT_NIGHT_MODE = 'NightMode'; |
255 | |
256 | /** |
257 | * @var string |
258 | */ |
259 | public const PREF_KEY_NIGHT_MODE = 'vector-theme'; |
260 | |
261 | /** |
262 | * @var string |
263 | */ |
264 | public const REQUIREMENT_PREF_NIGHT_MODE = 'PrefNightMode'; |
265 | |
266 | /** |
267 | * @var string |
268 | */ |
269 | public const PREF_NIGHT_MODE = 'PrefNightMode'; |
270 | |
271 | /** |
272 | * @var string |
273 | */ |
274 | public const VECTOR_2022_BETA_KEY = 'vector-2022-beta-feature'; |
275 | |
276 | /** |
277 | * @var array |
278 | */ |
279 | public const VECTOR_BETA_FEATURES = [ |
280 | self::CONFIG_KEY_NIGHT_MODE, |
281 | ]; |
282 | |
283 | /** |
284 | * This class is for namespacing constants only. Forbid construction. |
285 | * @throws FatalError |
286 | * @return never |
287 | */ |
288 | private function __construct() { |
289 | throw new FatalError( "Cannot construct a utility class." ); |
290 | } |
291 | } |