Back to AliastagField class

Method getOptions

protected array
getOptions
()
Method to get a list of options for a list input.
Returns
  • array An array of JHtml options.
Since
  • 3.6
Class: AliastagField
Project: Joomla

Method getOptions - Source code

/**
 * Method to get a list of options for a list input.
 *
 * @return	array  An array of JHtml options.
 *
 * @since   3.6
 */
protected function getOptions()
{
    // Get list of tag type alias
    $db = Factory::getDbo();
    $query = $db->getQuery(true)->select(['DISTINCT ' . $db->quoteName('type_alias', 'value'), $db->quoteName('type_alias', 'text')])->from($db->quoteName('#__contentitem_tag_map'));
    $db->setQuery($query);
    $options = $db->loadObjectList();
    $lang = Factory::getLanguage();
    foreach ($options as $i => $item) {
        $parts = explode('.', $item->value);
        $extension = $parts[0];
        $lang->load($extension . '.sys', JPATH_ADMINISTRATOR) || $lang->load($extension, Path::clean(JPATH_ADMINISTRATOR . '/components/' . $extension));
        $options[$i]->text = Text::_(strtoupper($extension) . '_TAGS_' . strtoupper($parts[1]));
    }
    // Merge any additional options in the XML definition.
    $options = array_merge(parent::getOptions(), $options);
    // Sort by language value
    usort($options, function ($a, $b) {
        return strcmp($a->text, $b->text);
    });
    return $options;
}