getQuery(true) ->select('element') ->from('#__extensions') ->where('type = ' . $db->quote('component')) ->where('enabled = 1'); $db->setQuery($query); $result = $db->loadColumn(); return $result; } /** * Returns true if the component has configuration options. * * @param string $component Component name * * @return boolean * * @since 3.0 */ public static function hasComponentConfig($component) { return is_file(JPATH_ADMINISTRATOR . '/components/' . $component . '/config.xml'); } /** * Returns an array of all components with configuration options. * Optionally return only those components for which the current user has 'core.manage' rights. * * @param boolean $authCheck True to restrict to components where current user has 'core.manage' rights. * * @return array * * @since 3.0 */ public static function getComponentsWithConfig($authCheck = true) { $result = array(); $components = self::getAllComponents(); $user = JFactory::getUser(); // Remove com_config from the array as that may have weird side effects $components = array_diff($components, array('com_config')); foreach ($components as $component) { if (self::hasComponentConfig($component) && (!$authCheck || $user->authorise('core.manage', $component))) { $result[] = $component; } } return $result; } /** * Load the sys language for the given component. * * @param array $components Array of component names. * * @return void * * @since 3.0 */ public static function loadLanguageForComponents($components) { $lang = JFactory::getLanguage(); foreach ($components as $component) { if (!empty($component)) { // Load the core file then // Load extension-local file. $lang->load($component . '.sys', JPATH_BASE, null, false, true) || $lang->load($component . '.sys', JPATH_ADMINISTRATOR . '/components/' . $component, null, false, true); } } } }