/**
* Get information about extension.
*
* @param string Extension element (com_cpanel, com_admin, ...)
* @param string Extension type (component, plugin, module, ...)
* @param string Folder type (content, editors, search, ...)
*
* @return int ( 0 ... extension not installed
* 1 ... extension installed and enabled
* 2 ... extension installed but not enabled )
*/
public static function getExtensionInfo($element = null, $type = 'component', $folder = '')
{
$elementFolder = $element . $folder;
if (is_null($element)) {
throw new Exception('Function Error: No element added', 500);
return false;
}
if (!array_key_exists($elementFolder, self::$extension)) {
$db = Factory::getDbo();
$query = $db->getQuery(true);
if ($type == 'component') {
$query->select('extension_id AS id, element AS "option", params, enabled');
} else {
$query->select('extension_id AS "id", element AS "element", params, enabled');
}
$query->from('#__extensions');
$query->where('`type` = ' . $db->quote($type));
if ($folder != '') {
$query->where('`folder` = ' . $db->quote($folder));
}
$query->where('`element` = ' . $db->quote($element));
$db->setQuery($query);
$cache = Factory::getCache('_system', 'callback');
$extensionData = $cache->get(array($db, 'loadObject'), null, $element, false);
if (isset($extensionData->enabled) && $extensionData->enabled == 1) {
self::$extension[$elementFolder] = 1;
} else {
if (isset($extensionData->enabled) && $extensionData->enabled == 0) {
self::$extension[$elementFolder] = 2;
} else {
self::$extension[$elementFolder] = 0;
}
}
}
return self::$extension[$elementFolder];
}