16 private bool $useCodex =
false;
18 private array $languages = [];
25 $this->useCodex = $params[
'useCodex'] ??
false;
26 parent::__construct( $params );
28 if ( $this->mParent instanceof
HTMLForm ) {
29 $config = $this->mParent->getConfig();
37 if ( isset( $params[
'languages'] ) && is_array( $params[
'languages'] ) ) {
38 $this->languages = $params[
'languages'];
41 ->getLanguageNameUtils()
47 if ( !array_key_exists( $languageCode, $this->languages ) ) {
48 $this->languages[$languageCode] = $languageCode;
51 ksort( $this->languages );
53 foreach ( $this->languages as $code => $name ) {
54 $this->
mParams[
'options'][$code .
' - ' . $name] = $code;
57 $this->
mParams[
'default'] ??= $languageCode;
65 if ( $this->useCodex ) {
68 return parent::getInputOOUI( $value );
77 $this->mParent->getOutput()->addModules(
'mediawiki.widgets.LanguageSelectWidget' );
79 $standardAttribs = $this->
getAttributes( [
'disabled',
'required',
'multiple' ] );
82 'languages' => $this->languages,
83 'name' => $this->mName,
84 'value' => $value !==
null && $value !==
'' ? $value : ( $this->
mParams[
'default'] ?? null ),
86 'cssclass' => trim( $this->mClass .
' cdx-text-input__input' ),
87 ] + $standardAttribs );
94class_alias( HTMLSelectLanguageField::class,
'HTMLSelectLanguageField' );
A class containing constants representing the names of configuration variables.
const LanguageCode
Name constant for the LanguageCode setting, for use with Config::get()