Back to ContenttypeField class

Method getOptions

protected array
getOptions
()
Method to get a list of content types
Returns
  • array The field option objects.
Since
  • 3.1

Method getOptions - Source code

/**
 * Method to get a list of content types
 *
 * @return  array  The field option objects.
 *
 * @since   3.1
 */
protected function getOptions()
{
    $lang = Factory::getLanguage();
    $db = Factory::getDbo();
    $query = $db->getQuery(true)->select([$db->quoteName('a.type_id', 'value'), $db->quoteName('a.type_title', 'text'), $db->quoteName('a.type_alias', 'alias')])->from($db->quoteName('#__content_types', 'a'))->order($db->quoteName('a.type_title') . ' ASC');
    // Get the options.
    $db->setQuery($query);
    try {
        $options = $db->loadObjectList();
    } catch (\RuntimeException $e) {
        return array();
    }
    foreach ($options as $option) {
        // Make up the string from the component sys.ini file
        $parts = explode('.', $option->alias);
        $comp = array_shift($parts);
        // Make sure the component sys.ini is loaded
        $lang->load($comp . '.sys', JPATH_ADMINISTRATOR) || $lang->load($comp . '.sys', JPATH_ADMINISTRATOR . '/components/' . $comp);
        $option->string = implode('_', $parts);
        $option->string = $comp . '_CONTENT_TYPE_' . $option->string;
        if ($lang->hasKey($option->string)) {
            $option->text = Text::_($option->string);
        }
    }
    // Merge any additional options in the XML definition.
    $options = array_merge(parent::getOptions(), $options);
    return $options;
}