コード例 #1
0
ファイル: Extension.php プロジェクト: nielosz/civicrm-core
/**
 * 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());
}
コード例 #2
0
ファイル: Extensions.php プロジェクト: nielosz/civicrm-core
 /**
  * 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);
 }