Example #1
0
 /**
  * Returns the manifest of a given extension ID.
  *
  * @static
  * @param string $extension_id
  * @param boolean $as_instance
  * @return DevblocksExtensionManifest
  */
 static function getExtension($extension_id, $as_instance = false, $ignore_acl = false)
 {
     $result = null;
     $extensions = DevblocksPlatform::getExtensionRegistry($ignore_acl);
     if (is_array($extensions)) {
         foreach ($extensions as $extension) {
             /* @var $extension DevblocksExtensionManifest */
             if ($extension->id == $extension_id) {
                 $result = $extension;
                 break;
             }
         }
     }
     if ($as_instance && !is_null($result)) {
         return $result->createInstance();
     }
     return $result;
 }
Example #2
0
 static function getExtensionPoints()
 {
     $cache = self::getCacheService();
     if (false !== ($points = $cache->load(self::CACHE_POINTS))) {
         return $points;
     }
     $extensions = DevblocksPlatform::getExtensionRegistry();
     foreach ($extensions as $extension) {
         /* @var $extension DevblocksExtensionManifest */
         $point = $extension->point;
         if (!isset($points[$point])) {
             $p = new DevblocksExtensionPoint();
             $p->id = $point;
             $points[$point] = $p;
         }
         $points[$point]->extensions[$extension->id] = $extension;
     }
     $cache->save($points, self::CACHE_POINTS);
     return $points;
 }
Example #3
0
 static function getAll()
 {
     $extensions = DevblocksPlatform::getExtensionRegistry(true);
     $cache = DevblocksPlatform::getCacheService();
     if (null == ($params = $cache->load(self::_CACHE_ALL))) {
         $db = DevblocksPlatform::getDatabaseService();
         $prefix = APP_DB_PREFIX != '' ? APP_DB_PREFIX . '_' : '';
         // [TODO] Cleanup
         $params = array();
         // Add manifest params as our initial params
         foreach ($extensions as $extension) {
             /* @var $extension DevblocksExtensionManifest */
             $params[$extension->id] = $extension->params;
         }
         // Now load the DB params on top of them
         $sql = sprintf("SELECT extension_id, property, value " . "FROM %sproperty_store ", $prefix);
         $results = $db->GetArray($sql);
         foreach ($results as $row) {
             $params[$row['extension_id']][$row['property']] = $row['value'];
         }
         $cache->save($params, self::_CACHE_ALL);
     }
     return $params;
 }