Back to LanguageField class

Method getOptions

protected array
getOptions
()
Method to get the field options.
Returns
  • array The field option objects.
Since
  • 1.7.0
Class: LanguageField
Project: Joomla

Method getOptions - Source code

/**
 * Method to get the field options.
 *
 * @return  array  The field option objects.
 *
 * @since   1.7.0
 */
protected function getOptions()
{
    // Initialize some field attributes.
    $client = (string) $this->element['client'];
    if ($client !== 'site' && $client !== 'administrator') {
        $client = 'site';
    }
    // Make sure the languages are sorted base on locale instead of random sorting
    $languages = LanguageHelper::createLanguageList($this->value, \constant('JPATH_' . strtoupper($client)), true, true);
    if (\count($languages) > 1) {
        usort($languages, function ($a, $b) {
            return strcmp($a['value'], $b['value']);
        });
    }
    // Merge any additional options in the XML definition.
    $options = array_merge(parent::getOptions(), $languages);
    // Set the default value active language
    if ($langParams = ComponentHelper::getParams('com_languages')) {
        switch ((string) $this->value) {
            case 'site':
            case 'frontend':
            case '0':
                $this->value = $langParams->get('site', 'en-GB');
                break;
            case 'admin':
            case 'administrator':
            case 'backend':
            case '1':
                $this->value = $langParams->get('administrator', 'en-GB');
                break;
            case 'active':
            case 'auto':
                $lang = Factory::getLanguage();
                $this->value = $lang->getTag();
                break;
            default:
                break;
        }
    }
    return $options;
}