/** * 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; } }
/** * 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; }
/** * 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]); } } }
/** * 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; }