/** * @return array|null */ public static function getExtensions() { if (is_null(self::$extensions)) { $db = JFactory::getDbo(); // init as array so this method called be only once self::$extensions = array(); $query = $db->getQuery(true)->select('e.element')->select('e.folder')->select('e.params')->from('#__extensions AS e')->where('e.folder = ' . $db->quote('xmap'))->where('e.enabled = ' . $db->quote(1)); $db->setQuery($query); try { $extensions = $db->loadObjectList('element'); } catch (RuntimeException $e) { return self::$extensions; } if (empty($extensions)) { return self::$extensions; } foreach ($extensions as $element => $extension) { // file_exists should be not required if extension marked as enabled?! if (JFile::exists(JPATH_PLUGINS . '/' . $extension->folder . '/' . $element . '/' . $element . '.php')) { require_once JPATH_PLUGINS . '/' . $extension->folder . '/' . $element . '/' . $element . '.php'; $params = new Registry($extension->params); $extension->params = $params->toArray(); } } self::$extensions = $extensions; } return self::$extensions; }