Back to FrontendlanguageField class

Method getOptions

protected array
getOptions
()
Method to get the field options for frontend published content languages with homes.
Returns
  • array The options the field is going to show.
Since
  • 3.5

Method getOptions - Source code

/**
 * Method to get the field options for frontend published content languages with homes.
 *
 * @return  array  The options the field is going to show.
 *
 * @since   3.5
 */
protected function getOptions()
{
    // Get the database object and a new query object.
    $db = Factory::getDbo();
    $query = $db->getQuery(true);
    $query->select('a.lang_code AS value, a.title AS text')->from($db->quoteName('#__languages') . ' AS a')->where('a.published = 1')->order('a.title');
    // Select the language home pages.
    $query->select('l.home, l.language')->innerJoin($db->quoteName('#__menu') . ' AS l ON l.language=a.lang_code AND l.home=1 AND l.published=1 AND l.language <> ' . $db->quote('*'))->innerJoin($db->quoteName('#__extensions') . ' AS e ON e.element = a.lang_code')->where('e.client_id = 0')->where('e.enabled = 1')->where('e.state = 0');
    $db->setQuery($query);
    try {
        $languages = $db->loadObjectList();
    } catch (\RuntimeException $e) {
        $languages = array();
        if (Factory::getUser()->authorise('core.admin')) {
            Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
        }
    }
    // Merge any additional options in the XML definition.
    return array_merge(parent::getOptions(), $languages);
}