From 870831d40c9f64bf18f6897bbfa1310c972ff04d Mon Sep 17 00:00:00 2001 From: SamanthaNguyen Date: Mon, 21 Jan 2019 21:35:32 -0600 Subject: 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 --- .../htmlform/fields/HTMLSelectLanguageField.php | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 includes/htmlform/fields/HTMLSelectLanguageField.php (limited to 'includes/htmlform/fields/HTMLSelectLanguageField.php') 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 @@ +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; + } + } +} -- cgit v1.2.3