/**
* 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;
}