예제 #1
0
 /**
  * @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;
 }