Example #1
0
 /**
  * Auto-generate a place-holder for a missing extension using info from
  * database.
  *
  * @param $key
  * @return CRM_Extension_Info|NULL
  */
 public function createInfoFromDB($key)
 {
     $dao = new CRM_Core_DAO_Extension();
     $dao->full_name = $key;
     if ($dao->find(TRUE)) {
         $info = new CRM_Extension_Info($dao->full_name, $dao->type, $dao->name, $dao->label, $dao->file);
         return $info;
     } else {
         return NULL;
     }
 }
Example #2
0
 /**
  * Get a list of all installed modules, including enabled and disabled ones
  *
  * @return array
  *   CRM_Core_Module
  */
 public function getModules()
 {
     $result = array();
     $dao = new CRM_Core_DAO_Extension();
     $dao->type = 'module';
     $dao->find();
     while ($dao->fetch()) {
         $result[] = new CRM_Core_Module($dao->full_name, $dao->is_active);
     }
     return $result;
 }
Example #3
0
 /**
  * Fetch stats about enabled components/extensions
  * Add info to the 'extensions' array
  */
 private function extensionStats()
 {
     // Core components
     $config = CRM_Core_Config::singleton();
     foreach ($config->enableComponents as $comp) {
         $this->stats['extensions'][] = array('name' => 'org.civicrm.component.' . strtolower($comp), 'enabled' => 1, 'version' => $this->stats['version']);
     }
     // Contrib extensions
     $mapper = CRM_Extension_System::singleton()->getMapper();
     $dao = new CRM_Core_DAO_Extension();
     $dao->find();
     while ($dao->fetch()) {
         $info = $mapper->keyToInfo($dao->full_name);
         $this->stats['extensions'][] = array('name' => $dao->full_name, 'enabled' => $dao->is_active, 'version' => isset($info->version) ? $info->version : NULL);
     }
 }
 /**
  * Function to delete an extension
  *
  * @param  int  $id     Id of the extension to be deleted.
  *
  * @return void
  *
  * @access public
  * @static
  */
 static function del($id)
 {
     $extension = new CRM_Core_DAO_Extension();
     $extension->id = $id;
     return $extension->delete();
 }
 private function _createExtensionEntry()
 {
     $dao = new CRM_Core_DAO_Extension();
     $dao->label = $this->label;
     $dao->name = $this->name;
     $dao->full_name = $this->key;
     $dao->type = $this->type;
     $dao->file = $this->file;
     $dao->is_active = 1;
     if ($dao->insert()) {
         $this->id = $dao->id;
         return $this->id;
     }
 }
 /**
  * Searches for and returnes installed extensions.
  *
  * @access private
  *
  * @param boolean $fullInfo provide full info (read XML files) if true, otherwise only DB stored data
  *
  * @return array list of extensions
  */
 private function _discoverInstalled($fullInfo = FALSE)
 {
     $result = array();
     $dao = new CRM_Core_DAO_Extension();
     $dao->find();
     // TODO need bool?
     while ($dao->fetch()) {
         $ext = new CRM_Core_Extensions_Extension($dao->full_name, $dao->type, $dao->name, $dao->label, $dao->file, $dao->is_active);
         $ext->setInstalled();
         $ext->setId((int) $dao->id);
         if ($fullInfo) {
             if ($ext->hasXMLInfo()) {
                 $ext->readXMLInfo();
             } else {
                 $ext->setMissing();
                 CRM_Core_Session::setStatus(ts('The extension %1 (%2) is listed as installed, but expected files(s) including info.xml are missing. Has this site been moved to a different server location?', array(1 => $dao->label, 2 => $dao->full_name)) . '<br/>');
             }
         }
         $result[(int) $dao->id] = $ext;
     }
     return $result;
 }
 /**
  * adds $value['foo_display'] for each $value['foo'] enum from civicrm_extension
  *
  * @param array $values (reference)  the array up for enhancing
  * @return void
  */
 static function addDisplayEnums(&$values)
 {
     $enumFields =& CRM_Core_DAO_Extension::getEnums();
     foreach ($enumFields as $enum) {
         if (isset($values[$enum])) {
             $values[$enum . '_display'] = CRM_Core_DAO_Extension::tsEnum($enum, $values[$enum]);
         }
     }
 }
Example #8
0
 /**
  * Returns the list of fields that can be exported
  *
  * @param bool $prefix
  *
  * @return array
  */
 static function &export($prefix = false)
 {
     if (!self::$_export) {
         self::$_export = array();
         $fields = self::fields();
         foreach ($fields as $name => $field) {
             if (CRM_Utils_Array::value('export', $field)) {
                 if ($prefix) {
                     self::$_export['extension'] =& $fields[$name];
                 } else {
                     self::$_export[$name] =& $fields[$name];
                 }
             }
         }
     }
     return self::$_export;
 }