diff options
author | SamanthaNguyen <samanthanguyen1116@gmail.com> | 2019-01-21 21:35:32 -0600 |
---|---|---|
committer | Krinkle <krinklemail@gmail.com> | 2019-01-22 04:56:44 +0000 |
commit | 870831d40c9f64bf18f6897bbfa1310c972ff04d (patch) | |
tree | d1795061e3e1e112e8ade41d1cf123a46c03a034 /includes/htmlform/fields/HTMLSelectLanguageField.php | |
parent | 2fabe2b8801a01ed56cfa8fad4fa20075ae8c3a3 (diff) | |
download | mediawikicore-870831d40c9f64bf18f6897bbfa1310c972ff04d.tar.gz mediawikicore-870831d40c9f64bf18f6897bbfa1310c972ff04d.zip |
htmlform: Move HTMLSelectLanguageField into includes/htmlform/fields
This was originally directly under includes/htmlform. This is
a specific type of field, so it should go here instead.
Follows-up d0c31ac988888764.
Change-Id: Iac196068ce2cbca063948bc78d21913482717d9a
Diffstat (limited to 'includes/htmlform/fields/HTMLSelectLanguageField.php')
-rw-r--r-- | includes/htmlform/fields/HTMLSelectLanguageField.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/includes/htmlform/fields/HTMLSelectLanguageField.php b/includes/htmlform/fields/HTMLSelectLanguageField.php new file mode 100644 index 000000000000..98cf3b19c453 --- /dev/null +++ b/includes/htmlform/fields/HTMLSelectLanguageField.php @@ -0,0 +1,36 @@ +<?php + +/** + * Language select field. + */ +class HTMLSelectLanguageField extends HTMLSelectField { + public function __construct( $params ) { + parent::__construct( $params ); + + if ( $this->mParent instanceof HTMLForm ) { + $config = $this->mParent->getConfig(); + $languageCode = $config->get( 'LanguageCode' ); + } else { + global $wgLanguageCode; + $languageCode = $wgLanguageCode; + } + + $languages = Language::fetchLanguageNames( null, 'mw' ); + + // Make sure the site language is in the list; + // a custom language code might not have a defined name⦠+ if ( !array_key_exists( $languageCode, $languages ) ) { + $languages[$languageCode] = $languageCode; + } + + ksort( $languages ); + + foreach ( $languages as $code => $name ) { + $this->mParams['options'][$code . ' - ' . $name] = $code; + } + + if ( !array_key_exists( 'default', $params ) ) { + $this->mParams['default'] = $languageCode; + } + } +} |