/** * Get a list of available extensions. * * @param array $params * * @return array * API result */ function civicrm_api3_extension_get($params) { $statuses = CRM_Extension_System::singleton()->getManager()->getStatuses(); $mapper = CRM_Extension_System::singleton()->getMapper(); $result = array(); $id = 0; foreach ($statuses as $key => $status) { try { $obj = $mapper->keyToInfo($key); } catch (CRM_Extension_Exception $ex) { CRM_Core_Session::setStatus(ts('Failed to read extension (%1). Please refresh the extension list.', array(1 => $key))); continue; } $info = CRM_Extension_System::createExtendedInfo($obj); $info['id'] = $id++; // backward compatibility with indexing scheme $result[] = $info; } return _civicrm_api3_basic_array_get('Extension', $params, $result, 'id', array()); }
/** * Take an extension's raw XML info and add information about the * extension's status on the local system. * * The result format resembles the old CRM_Core_Extensions_Extension. * * @param CRM_Extension_Info $obj * * @return array */ public static function createExtendedInfo(CRM_Extension_Info $obj) { return CRM_Extension_System::createExtendedInfo($obj); }